Shadance Опубликовано 28 ноября, 2012 · Жалоба Посидел на досуге и дописал модуль RAWNAT для xtables-extensions, с целью улучшения работы 1-to-1 ната. Теперь можно создать пару правил SNAT/DNAT, а сопоставления IP заносить в отдельные таблицы, хранящиеся в памяти модуля, через специальную userspace-утилиту. Это гораздо удобнее, чем создавать миллион правил для всех подключенных клиентских IP. Пишу здесь, т.к. именно это и делает lisg. Результат - при трафике 2 гигабита и 4-х ядрах самое загруженное ядро - 20%. Можно на десятку теперь переходить. Если кому интересно, могу выложить патч здесь. К lisg нужно будет прикручивать отдельно, т.к. у нас другое решение, но там не должно быть ничего сложного. А есть у кого этот патч попробовать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 29 ноября, 2012 · Жалоба Abram, в check_sessions небольшой косяк Если ищем ип 1.1.1.1, в списке его нет, но есть, например, 1.1.1.11 или 1.1.1.115, скрипт решит, что всё ок нужно грепать с аргументом -x Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 29 ноября, 2012 · Жалоба Wingman, Спасибо :). Я подозревал, но не мог отловить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kamae1ka Опубликовано 1 декабря, 2012 · Жалоба kernel: ipt_ISG: Lost packet during sending data to listener (err=-11) пролетает в логах, что это ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 2 декабря, 2012 · Жалоба Читайте реадми и применяйте сисцтл которые там рекомендованы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kamae1ka Опубликовано 2 декабря, 2012 (изменено) · Жалоба To enable reliable communications between userspace and kernel, do: echo "1048576" > /proc/sys/net/core/rmem_max Otherwise there will be some problems printing long session lists. спасибо за пинок =) к сожалению ситуация такая же =\ Изменено 2 декабря, 2012 пользователем kamae1ka Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 3 декабря, 2012 · Жалоба Увеличте ещё в 10 раз. Если останется - то см исходники на предмет условий генерации сообщения Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kamae1ka Опубликовано 4 декабря, 2012 · Жалоба поставил 10 миллионов, ночью проверю, если останется - буду ставить lisg поновее Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Founder Опубликовано 18 декабря, 2012 (изменено) · Жалоба Очень плохо что такой проект забросили. сейчас собираюсь ставить это чудо в продакшн, в плане перевести 17к онлайна на lISG. В тестовых условиях всё пока отлично. плохо что так и не реализован L4 редирект в ядре. Abram, ты ещё общаешься с Олегом? собирается он возвращаться к проекту? было бы ещё прикольно иметь возможность хранить связку класс_трафика-скорость в базе радиуса и иметь возможность по CoA изменить скорость на определённый класс. пример: юзер под своей учёткой может авторизовывать сколько угодно IP и может сам задавать (прямо в битах/с) полосу для каждого из ипов так, чтобы суммарно всё уложилось в его тарифный план. грубо говоря можно было бы дать возможность юзеру в процентном соотношении от тарифного плана задать скорость на определённый адрес. проблема заключается в том, что есть ещё и локальные ресурсы, которые не надо полисить по другим принципам. соответственно совсем от сервисов не откажешься. а назначать скорость на класс трафика считаю даже более удобным, чем забивать его жестко в сервисе в конфиге isg. ведь для реализации подобной идеи хотя бы с приблежением, нужно наплодить уйму сервисов. есть сторонники? или я чего то не понимаю? Изменено 18 декабря, 2012 пользователем Founder Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 18 декабря, 2012 · Жалоба Вы же не на L2 юзеров на тазике терминируете? Локальные ресурсы можно роутить до ISG Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Shiva Опубликовано 18 декабря, 2012 · Жалоба при 17к можно Олега и нанять на доработки и поддержку :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Founder Опубликовано 19 декабря, 2012 (изменено) · Жалоба я для примера привёл. суть в том что в любом случае остаются классы трафика, которые надо полисить на других скоростях. да и локальную маршрутизацию на свитчи переложить я пока не готов. мы используем к сожалению длинки, и сейчас например в dgs-3620 наблюдается стойкая утечка памяти: раз в два месяца полностью отваливается L3 на свитче с сохранением L2 коммутации. поэтому пока что критический трафик роутят в ядре крутые фряшные серваки. вообще ведётся перевод на L3 свитчинг, но ввиду того что длинк не является каталистом, сделать всё как хочется не получится сразу. сейчас всё работает на PPPoE и влан на район с 1к абонентами, хочу всё сделать по нормальному. на каждом районе уже стоит L3 свитч. а от платной поддержки Олегом этого проекта, при выпуске его в продакшн, я не думаю что моё начальство отказалось бы. сам я увы на перле пишу мало и модули ядра не писал, а времени разбираться нету. Изменено 19 декабря, 2012 пользователем Founder Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Shiva Опубликовано 19 декабря, 2012 · Жалоба Мы бы тоже денег заплатили, если бы функционал устраивал :) З.Ы. 3620 с прошивкой 1.2 или 2.0? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 19 декабря, 2012 · Жалоба Abram, ты ещё общаешься с Олегом? собирается он возвращаться к проекту? Давно уже не разговаривал. Попробуй оставить тикет с фичреквестом на bitbucket-е - он время от времени туды заглядывает. На крайняк можно дописать еще один радиус атрибут, который будет создавать класс. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Founder Опубликовано 19 декабря, 2012 · Жалоба З.Ы. 3620 с прошивкой 1.2 или 2.0? 2.00.B037 / B041 боремся сейчас с техподдержкой длинка. раз в два месяца высылаю им запрошенный дебаг и дампы памяти свитча Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Shiva Опубликовано 19 декабря, 2012 · Жалоба Ставьте 1.2, там MPLS, и полвина CLI от цыски... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Founder Опубликовано 21 декабря, 2012 (изменено) · Жалоба в данный момент меня интересует OSPF и PIM-SM они на этой прошивке работают стабильно? вышлите пожалуйста прошивку если не сложно Изменено 21 декабря, 2012 пользователем Founder Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mcym Опубликовано 27 декабря, 2012 · Жалоба Интересует вопрс, ip6 isgd поддерживает ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 27 декабря, 2012 · Жалоба Интересует вопрс, ip6 isgd поддерживает ? Нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sqoundrell Опубликовано 20 января, 2013 · Жалоба Помогите разобраться. Стенд - Debian 6, две сетевые карты интеловские, все собрано по инструкции, для удобства теста установил радиус на этой же тачке. Скорости задаю напрямую, не по сервисам: Sending Access-Request of id 100 to 10.20.0.105 port 18012 User-Name = "10.20.0.108" User-Password = "10.20.0.108" NAS-IP-Address = 127.0.1.1 NAS-Port = 1 rad_recv: Access-Accept packet from host 10.200.0.105 port 18012, id=100, length=64 Cisco-Account-Info = "QU;6291456;1179648;D;6291456;1179648" Сессия поднимается, показывается в консоли: User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags 10.20.0.108 0.0.0.0 Virtual1 49F2DA1291D5093C 905 40497819 30350407 6291456 6291456 Undefined A А вот дальше идут совсем непонятки. Тот же самый SpeedTest.net на прием показывает 6 М/с а вот на передачу - от 8 до 30 М/с... Сначала были мысли что чтото намудрил с правилами iptables, но в них пока только 3 строчки: #!/bin/bash #shutdown -r +20 IPTABLES='iptables' # Определяем интерфейсы EXTIF='eth0' # Включаем форвардинг ip в ядре. /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # Сбросить правила и удалить цепочки $IPTABLES -F $IPTABLES --flush $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -X $IPTABLES -t nat -X $IPTABLES -t mangle -X # Включаем маскарадинг для разрешения доступа в интернет $IPTABLES -t nat -A POSTROUTING -o $EXTIF -s 10.20.0.0/24 -j MASQUERADE $IPTABLES -A FORWARD -s 10.20.0.0/24 -j ISG --session-init $IPTABLES -A FORWARD -d 10.20.0.0/24 -j ISG Рядом стоит шейпер на FreeBSD - тот же тестовый комп показывает через него все четко, 6/6 мегабит... Танцы с бубном показывают, что если руками подбирать значение burst то добиться хотя бы более менее вменяемых результатов можно, но строчка в rеаdme: Cisco recommended value for burst = cir / 8 * 1.5 заставляет сомневаться в разумности такого подхода... Подскажите куда копать? Или что я делаю не так? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
arni Опубликовано 23 января, 2013 · Жалоба # Включаем маскарадинг для разрешения доступа в интернет $IPTABLES -t nat -A POSTROUTING -o $EXTIF -s 10.20.0.0/24 -j MASQUERADE $IPTABLES -A FORWARD -s 10.20.0.0/24 -j ISG --session-init $IPTABLES -A FORWARD -d 10.20.0.0/24 -j ISG попробуйте в последней строке добавить --init-mode dst по-умолчанию --init-mode src подставляется Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Sqoundrell Опубликовано 27 января, 2013 · Жалоба попробуйте в последней строке добавить --init-mode dst по-умолчанию --init-mode src подставляется Пробовал, но --init-mode dst нужен если сначала будет запрос из мира на комп - а по моим правилам сессия должна подняться при запросе С компьютера. Автор подсказал что для скоростей > 2 Мбит/с для burst лучше использовать коэффициент не 1,5 а 0,25. Ну и подразобравшись в различиях понятий шейпинг и полисер в общем то пришел к тому что шейпинг - он скорость показывает более четко, чем полисер, по показаниям по крайней мере speedtest.net. Но при этом шейпинг более ресурсоемкий вариант котроля скорости чем полисер. ДА! автор использует СВОЙ вариант (точнее - вариант полисера по RFC "с одним ведром") полисера, а не то что встроено в ядро, поэтому тема, что режеться только исходящая скорость НЕ ПРИМЕНИМА к Linux ISG (Это для тех случаев когда полисер расположен там же где NAT и возникают вдруг какие то непонятки) Так вот, он (isg полисер) работает не так "красиво" как стандарные линуховские решения, зато в силу своей простоты позволяет резать больше сессий и шире полосу пропускания - короче (цитирую смотрите выше в форуме) - масс полисинг. :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
arni Опубликовано 28 января, 2013 · Жалоба Пробовал, но --init-mode dst нужен если сначала будет запрос из мира на комп - а по моим правилам сессия должна подняться при запросе С компьютера. За создание сессии отвечает как раз --session-init. А вот --init-mode как раз задает, по src или по dst нужно искать сессию. не укажите --init-mode dst - в dst полисер трафик не попадет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bigstikk Опубликовано 20 февраля, 2013 · Жалоба Здравствуйте! Подскажите как правильно прописать сервис в lISG - описываю сервис в конфиге: $cfg{srv}{Speed2Mb}{rate_info} = "QD;2048000;384000;U;2048000;384000"; $cfg{srv}{Speed2Mb}{traffic_classes} = [ "test_net" ]; $cfg{srv}{Speed10Mb}{rate_info} = "QD;10240000;1600000;U;10240000;1600000"; $cfg{srv}{Speed10Mb}{traffic_classes} = [ "test_net" ]; авторизация проходит User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags 91.xx.yy.254 0.0.0.0 Virtual1 7F6DB771E0C8F1D2 577 0 0 0 0 Undefined A но сервис к сессии не применяется, хотя в самой системе он есть. root@Router:/usr/local/ISG/bin# ./ISG.pl show_services Virtual1 User IP-address NAT IP-address Port number Uniq. Identifier Durat. Octets-in Octets-out Rate-in Rate-out Service name Flags 91.xx.yy.254 0.0.0.0 Virtual1 4804D37FD0E238B5 0 0 0 2048000 2048000 Speed2Mb SO 91.xx.yy.254 0.0.0.0 Virtual1 C842F7A0C10B994E 0 0 0 10240000 10240000 Speed10Mb S Если передавать параметры скорости напрямую, не через сервисы, все работает нормально. Подскажите в какую сторону копать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bigstikk Опубликовано 20 февраля, 2013 · Жалоба Вопрос снят, неправильно описал сервис, указав только локальные адреса. Заработало вот так: $cfg{srv}{Speed2Mb}{rate_info} = "QD;2048000;384000;U;2048000;384000"; $cfg{srv}{Speed2Mb}{traffic_classes} = [ "test_net", "global" ]; $cfg{srv}{Speed10Mb}{rate_info} = "QD;10240000;1600000;U;10240000;1600000"; $cfg{srv}{Speed10Mb}{traffic_classes} = [ "test_net", "global" ]; где global 0.0.0.0/0 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...