суббота, 6 июня 2009 г.

Decker, Vard. Настройка Acorp Lan120/420/122/422/W422G. Мануал. Настройка двух соединений в режиме роутера.

NB! Что я хотел сказать про W422G... сейчас их продают в двух версиях... v2 и v3... все что описано в данной инструкции относится к моделям второй версии (!), третий же релиз модемов по прошивкам аналогичен LAN 110/410 (!) и имеет немного другой дизайн, даже внешне. Покупать его лично я не советую, как и 110/410-е железки. По сравнению с предшественниками прошивки отвратительные (!), два соединения поднимаются, да, но без плясок с бубном не обойтись. Т.е. приходится сбрасывать настройки, настраивать по новой, следить за тем, чтобы два сразу поднялись и только потом оно заработает. Без сброса настроек у меня упорно поднималось только одно, хотя второе было создано, при этом логи были девственно чисты. Вообщем в LAN 122/422/W422G v2 вкусностей и приятностей гораздо больше чем в LAN 110/410/W422G v3. К тому же первые можно использовать и как роутеры для FTTB и как роутер для Корбины... модели же LAN 110/410/W422G v3 не особенно подходят под эти цели, поэтому покупать их стоит только в крайних случаях.

Итак, большое количество постов с просьбами о помощи в настройки двух соединений сподвигли меня написать этот небольшой мануал. Здесь мы узнаем как настроить Acorp'овский модем в режиме роутера на два соединения (интернет + /local в режиме роутера), также научимся настраивать WiFi сеть (для модели W422G) и Port Forwarding для работы DC клиента в активном режиме и нормальной работы Torrent клиента. Собственно писаться все это будет частями, т.к. времени мало, поэтому если вы на каком-то этапе увидите <продолжение следует> значит так оно и будет. Рассказывать как войти в модем и о дефолтных логине и пароле (Admin / Admin) я пожалуй не буду. Приступим непосредственно к настройке.

Часть первая. Создаем два соединения.

1. Удаляем все ранее созданные соединения из пункта меню Setup в модеме, так сказать во избежание. Затем настраиваем все как на скрине:


Т.е. в имени соединения прописываем dml-internet (назвать можно так как вам нравится, но так оно нагляднее), в типе выставляем PPPoE, Sharing устанавливаем в Enable, в настройках VPI:VCI выставляем 0:67 (кстати оба соединения у нас будут на 67-м VCI, так как я несколько раз сталкивался с ситуацией когда при использовании 0:67 и 0:35 одновременно соединения почему-то не хотели стартовать), в поле логин и пароль - соответсвующие данные, в Keep Alive устанавливаем 0 минут для постоянного поддержания соединения с интернет, а также снимаем (!) галку с Use Peer DNS, зачем объясню потом. Все. Нажимаем кнопку Apply. Первое соединение у нас создано.

2. Опять тыкаем New Connection и создаем соединение с /local. Здесь делаем все то же самое, устанавливаем Sharing в Enable и затем, там где написано PVC Settings и в поле PVC стоит New, выбираем пару 0:67, вводим логин и пароль для /local. Устанавливаем Keep Alive в 0 минут и снимаем (!) галки с Use Peer DNS и Default Gateway (не забываем). Вообщем ориентируемся на этот скрин:


3. Теперь пора перейти к настройке DNS и Static Routing'а для /local'а ... Заходим в меню Setup -> DNS Configuration и настраиваем все вот так:


4. Теперь заходим в меню Advanced -> Static Routing. Выбираем соединение dml-local для которого мы прописываем статический маршрут, в качестве New Destination IP пишем 10.152.0.0, Mask 255.255.0.0, поле Default Gateway оставляем пустым. Применяем настройки. В результате должно получиться вот что:


5. Сохраняем настройки (обязательно!), нажатием либо красной кнопки "Save All", если в вашей прошивке есть такая, либо через меню "Tools" - "System Commands" - "Save All". Все. На этом первый этап настройки модема закончен. Т.о. вы получите доступ в /local и интернет, правда с одним ограничением DC клиент в /local у вас будет работать только в пассивном режиме, а в Torrent-клиенте не будет работать отдача, т.к. вы находитесь за NAT'ом и соответственно снаружи порты все закрыты. Собственно, чуть позже я расскажу о том, как настроить Port Forwarding.

* Примечание. По-умолчанию в модеме включен DHCP сервер, соответственно на компьютере должны стоять настройки в свойствах TCP/IP сетевой карты подключенной к модему "Получать IP адреса автоматически", "Получить DNS автоматически". Если же вы по каким-то причинам хотите раздавать IP адреса вручную, то заполнить поля нужно следующим образом: например если у вас модем имеет IP адрес 192.168.1.1, то первому компьютеру присваиваете 192.168.1.2, маска подсети 255.255.255.0, основной шлюз - 192.168.1.1, DNS - 192.168.1.1 (т.к. все соединения у вас настроены в модеме и он является как шлюзом в интернет и /local , так и
DNS сервером). Если кто-то не понял, то картина должна быть следующей:


Часть вторая. Настраиваем Port Forwarding.

Итак, во-первых... давайте разберемся, что же такое Port Forwarding / Port Mapping про который все столько говорят... Любознательные могут почитать http://decker.local/tune/adsl-lan-forwarding.html (ссылка в /local) или http://www.acorp.ru/support/articles/adsl-lan-forwarding/ (ссылка в интернет), для тех же кому лень столько читать постараюсь объяснить доступно и вкратце. Вы
уже наверное поняли, что когда вы настроили два соединения в модеме все компьютеры в вашей сети оказались за NAT, т.е. недоступны для входящих подключений извне. Другими словами, получилось что ваш модем имеет IP адрес вида 10.152.x.x в локальной сети Домолинк, 212.106.x.x в сети Интернет и 192.168.1.1 в вашей локальной сети. Компьютеры же подключенные к этому модему имеют адреса вида 192.168.1.x и невидимы извне (т.е. ни из локалки, ни из интернета), однако все они имеют доступ и к тому и к другому (исходящие соединения). Для работы DC клиента в активном режиме, а также корректной работы Torrent клиента необходимо чтобы компьютер на котором эти клиенты запущены мог принимать входящие соединения (некоторые другие приложения, такие как например Web-сервер или некоторые игры, также используют для своей работы входящие соединения), собственно решением этой проблемы и занимается Port Forfarding / Port Mapping.

Ну что ж ... ниже мы покажем пример как настроить Port Forwarding для DC и uTorrent. Первоначально укажите номер порта в настройках клиентов:




В настройках DC клиента обязательно ставим точку (*) Firewall with manual port forwarding (Файрволл с ручным перенаправлением портов), указываем номер TCP/UDP порт (рекомендуется выбрать любое число больше 1024, номер TCP и UDP порта прописать
одинаковым, т.к. в дальнейшем это несколько уменьшит количество действий по настройке, на картинке как видно выбран 7777-й порт, значение TLS можно оставить любым), ставим галочку Don't Allow Hub UPnP to override, снимаем галку Update IP on startup (обновлять IP при старте) и в поле WAN IP прописываем ваш текущий IP в /local (если у вас он статический - то это нужно будет сделать один раз, если динамический, то в этом поле всегда должен стоять тот IP адрес, который указан в свойствах модема на закладке Status -> Connection Status напротив подключения к /local , будьте готовы к тому, что этот адрес меняется каждый раз после
потери/восстановления модемом связи с /local , при перезагрузке модема и т.п., так что в случае динамики необходимо будет периодически исправлять его). Ну вообщем-то все настраиваем по аналогии со скрином ... ничего хитрого. В случае с торрентом то же самое ... в качестве номера порта мы здесь выбрали 32454. Теперь переходим непосредственно к настройке модема:
Откройте Интернет браузер и введите в адресной строке адрес 192.168.1.1, тем самым вы получите доступ к ВЕБ-интерфейсу маршрутизатора. После авторизации перейдите на закладку ADVANCED и выберите пункт меню LAN Clients. В открывшемся окне установите галочку напротив резервируемого IP-адреса для службы Port Forwarding и нажмите Apply. Результатом резервирования IP-адреса будет закрепление IP-адреса за данным компьютером, что позволит маршрутизатору всегда выдавать указанному персональному компьютеру зарезервированный IP-адрес. Это действие очень важно для возобновления работы службы Port Forwarding после перезагрузки маршрутизатора (см. рисунки, первый показывает что мы поставили галочку Reserve, второй - уже после нажатия кнопки Apply):



Если же у вас компьютеры не получают адреса по DHCP, т.е. имеют статические IP (повторюсь, как я уже говорил, в таком случае в настройках компьютера должен быть выставлен IP адрес вида 192.168.1.x, в качестве адреса основного шлюза и DNS сервера указан IP модема, т.е. 192.168.1.1), то можно просто заполнить его IP в поле Enter IP Address и нажать Apply, в результате получим что-то вроде этого:


Вообщем-то результатом всего этого действия должно быть то, что на вкладке Advanced -> LAN Clients так или иначе у вас должны запомниться адреса компьютеров. Теперь переходим непосредственно к настройке правил Port Forwarding'а для DC и Torrent клиента
в /local . На закладке ADVANCED ВЕБ-интерфейса маршрутизатора выберите пункт меню Port Forwarding:


Данную закладку условно можно разделить на три части:

WAN подключение, Сетевая группа и IP-адрес, для которого назначаются правила Port Forwarding.
Предустановленные производителем правила и созданные пользователем.
Используемые в данный момент правила.

Т.о. сначала мы должны выбрать соединение для которого мы хотим создать правило PF, в нашем случае это dml-local, затем выбрать IP адрес компьютера для которого мы хотим применить правило PF, затем нажать кнопочку Add и перенести нужное правило в список используемых в данный момент правил, после чего нажать Apply (на скриншоте для компьютера 192.168.1.3 применено два правила
- DC_Client_2 и Torrent_Client_2). Как вы поняли в модеме есть набор предустановленных правил для различного рода серверов, приложений и ряда игр. Нам они не потребуются. Поэтому сразу нажимаем галочку (*) User и с помощью кнопки New создаем свои два правила:



Затем выбираем WAN Connection - dml-local (очень важно не напутать здесь для какого именно соединения и для какого именно IP вы применяете эти правила), LAN IP - IP адрес нужного вам компьютера для которого вы хотите эти правила применить. Затем помечаете в списке Available Rules нужное вам правило и кнопкой Add -> переносите его в список примененных правил (Applied Rules). В результате у вас должно получиться нечто аналогичное скриншоту приведенному выше ... для соединения dml-local и IP адреса 192.168.1.x (вообщем для нужного вам компьютера) должно быть применено два правила. Не забываем нажать кнопочку Apply и
сохранить настройки (!) нажатием либо кнопки Save All, либо через меню Tools -> System commands -> Save all. Если у вас два компьютера, и планируется использование DC клиента в активном режиме на обоих из них, то необходимо создать два правила для DC, например, DC_Client_1 и DC_Client_2 с разными номерами портов (например для первого компьютера это будет порт 7777, для второго 7778) и применить их соответственно. Вообщем-то и все ... после выполнения этих нехитрых действий DC у вас будет работать в активном режиме, и торрент вообщем-то тоже заработает корректно. Единственное, те, у кого динамический IP в /local -
не забывайте обновлять WAN IP в настройках DC клиента.

Часть третья. Настройка шейпера в модемах Acorp LAN122/LAN422/W422G

Эффективно управлять потоками пакетов можно только при неполной загрузке канала в обоих направлениях, т.е. необходимо ограничить скорость канала на 10-20% меньше физической скорости подключения. Например, в моем случае физическая скорость канала равна 1948/10056 kbps. Следовательно восходящую скорость следует ограничить на уровне 1948*(100%-10%)/100 = 1753 (1700 кбит/с) Для нисходящей скорости 10056 * (100% - 20%) / 100 = 8000 (8000 кбит/с)

Настройка:

1. В настройках соединений для локалки и интернета включаем шейпер (Setup -> Название подключения)


2. В Advanced -> ShaperIn Advanced -> ShaperOut ограничиваем скорость канала для входящего/исходящего трафика на 10-20% меньше физической скорости подключения (в нашем случае это 8000/1700 Kbit).



3. Разбиваем канал на необходимое число полос (классы) с ограничением скорости каждой и назначением приоритета.

Rate – минимальная гарантированная скорость в kbit/s
Ceil – максимальная скорость в kbit/s
Priority – приоритет, может принимать значения от 0 до 7 включительно, где 0 – самый высокий приоритет, 7 - самый низкий приоритет.

Algo – алгоритм деления полосы пропускания внутри каждого класса для обеспечения равномерного распределения ресурсов
отведенной полосы:
none – не использовать какой-либо алгоритм
srr – (Simple Round Robin) равномерное распределение ресурсов отведенной полосы между ее потребителями
sfq – (Stochastic Fairness Queuing) равномерное распределение ресурсов отведенной полосы между соединениями.

Простой пример. Менеджер закачек, в фоне качающий 1 файл в 3 потока и браузер в котором загружается сайт (1 поток). При канале 40 кб/с в случае использования алгоритма sfq полоса будет равномерно распределена между каждым из 4 соединений. То есть файл
в менеджере закачек будет закачиваться со скоростью 30 кб/с, браузеру достанется 10кб/с. В случае использования алгоритма srr канал между менеджером закачек и браузером поделится примерно поровну. Поэтому именно этот алгоритм мы будем использовать для динамического понижения скорости низкоприоритетного трафика DC- и торрент-клиентов, которые, как известно, создают очень большое количество подключений. Сумма значений Rate всех классов канала не должна превышать значение Max Rate канала.

ShaperIn


ShaperOut


4. Создаем правила(фильтры) для каждой полосы, по критериям которых на трафик будут распространяться ограничения данной полосы.

Src IP – адрес источника, формы записи:
0 – любой адрес
ip – точный адрес, например: 192.168.1.2
ip/len - IP адрес сети в нотации CIDR, через / указывается длина маски подсети, например: 192.168.1.0/24
Dst IP – адрес назначения, форма записи аналогична Src IP.


Полоса 2 (она имеет средний приоритет - 4, в нее будет попадать весь трафик не попавший в другие полосы - прочий трафик). Это полоса по умолчанию, поэтому во все адреса, порты и протоколы вписаны 0.


Полоса 3 (имеет высокий приоритет - 2, в нее попадет трафик от веб-узлов, днс и прокси-серверов). Благодаря этому возможен качественный веб-сервинг при фоновой работе клиентов файлообменных сетей.


ShaperOut (опять же на примере трех полос) Полоса 1 (по аналогии с Полосой 2 из ShaperIn - "полоса по умолчанию".


Полоса 2 (имеет высокий приоритет - 1, трафик от работающих на компьютере сервисов на портах UDP 53148 и TCP 48107). Благодаря этому возможна относительно качественная их работа даже, например, при включенной раздаче на торренте.

Полоса 3. В эту полосу запихиваем уже знакомый нам фоновый, "паразитный" трафик пиринговых клиентов.


Проверка работы

1. После настройки всех полос необходимо нажать Apply и сохранить настройки модема (SaveAll в нижнем левом углу веб-интерфейса модема).

2. Для проверки работы шейпера потребуется telnet или ssh-клиент (я использую PuTTY)
Адрес модема по умолчанию 192.168.1.1


Имя пользователя: root
Пароль: такой же, как и на веб-интерфейсе.

Если все сделано правильно, то откроется ssh-консоль с приглашением к вводу команд.


3. Команда iptables -t mangle -L -nv
Позволяет посмотреть маркируются ли пакеты в соответствии с созданными нами полосами и их фильтрами:

Chain SHAPER_MARK (2 references)
pkts bytes target prot opt in out source destination
2831K 2076M CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK restore
6313 738K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 ipp2p v0.8.2 --bit MARK set 0x1
308 53664 MARK all -- * * 0.0.0.0/0 0.0.0.0/0 ipp2p v0.8.2 --dc MARK set 0x2
0 0 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3128 MARK match 0x0 MARK set 0x8
35 2045 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 MARK match 0x0 MARK set 0x9
540 25940 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 MARK match 0x0 MARK set 0x5
0 0 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1080 MARK match 0x0 MARK set 0x6
0 0 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 MARK match 0x0 MARK set 0x7
67 3500 MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20000 MARK match 0x0 MARK set 0xc
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:3528 MARK match 0x0 MARK set 0xf
10355 501K MARK tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:40000 MARK match 0x0 MARK set 0x10
0 0 MARK udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:40000 MARK match 0x0 MARK set 0x11
71 5396 MARK icmp -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x0 MARK set 0x4
3285 177K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK match 0x0 MARK set 0x3
2831K 2076M CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK save


4. cat /proc/net/ip_conntrack - имеет аналогичное назначение, удобна совместно с grep. Например (cat /proc/net/ip_conntrack | grep udp)
5. tc -s qdisc
6. tc -s -d class show dev imq0 - для ShaperIn
tc -s -d class show dev imq1 - для ShaperOut

Вместо заключения

Настроив шейпер по приведенному выше способу, вы возможно заметите, что шейпер работает не совсем как задумано. Одной из причин является то, что подключения 2, а шейпер один. То есть мы не можем на 10-20% ограничить скорость конкретно подключения к интернету, а при 100% загрузке интернетовского канала шейпер не может полностью выполнять возложенные на него задачи. Альтернативным вариантом является вариант, при котором "шейпится" только соединение в интернет. Но при этом мы не сможем средствами маршрутизатора ограничивать скорости на 10-20% максимально возможной физической, так как скорости подключения к /local контролироваться роутером не будут. Эти скорости придется контролировать программно, путем установки ограничений в сетевых программах на компьютере. Понятное дело, что это не самый лучший вариант...

(продолжение следует)

P.S. Мнения и комментарии приветствуются.

Использованы материалы с сайта decker.no-ip.org

1 комментарий:

  1. Мощно задвинул, сегодня же ринусь проверять и смотреть такие вкусные интересности ))
    Спасибо.

    ОтветитьУдалить