Официальный форум ООО НПП  

Вернуться   Официальный форум ООО НПП "ТЕНЕТ" > Технические вопросы > Настройки роутеров

Ответ
 
Опции темы Опции просмотра
Старый 06.04.2018, 14:04 Вверх   #1
initys
Пользователь
 
Аватар для initys
 
Сообщений: 95
Репутация: 10
По умолчанию USG (Ubiquiti Security Gateway)

Обзавелся таким вот чудом, для сетапа под 2 провайдера с фейловером.

На eth0 настроен dhcp с локальной сетью Тенета, через этот же интерфейс поднимается pppoe сессия.
На данный момент пытаюсь научить шлюз дружить с опциями dhcp 'client-option 121', но он никак пока не хочет их принимать. Кто нибудь сталкивался в настройках с данным оборудованием?
Есть ли где то информация по подсетям которые раздает dhcp тенета в инете - чтобы можно было забрать, распарсить и вставить руками?

После этого уже буду заниматься IGMP+multicast, пока приходится юзать http через pppoe..
initys вне форума   Ответить с цитированием
Старый 08.04.2018, 12:18 Вверх   #2
Skyworker
Пользователь
 
Сообщений: 32
Репутация: 14
По умолчанию

У меня когда-то стояла Vyatta(на этой основе и сделели ubnt) на обычном PC. Это было давно и рабочего конфига у меня не сохранилось. Маршруты по DHCP оно принимало(если я правильно понял про client-option 121), но как именно настроено было не помню. Маршруты вручную прописывать - дурная затея. А igmpproxy настраивайте чтобы принимала мультикаст с сетей 192.168.0.0/16
Skyworker вне форума   Ответить с цитированием
Старый 08.04.2018, 16:19 Вверх   #3
Skyworker
Пользователь
 
Сообщений: 32
Репутация: 14
По умолчанию

Пишут, что под ubnt edgeos можно дать команду
Цитата:
set interfaces ethernet eth0 dhcp-options client-option "send host-name "my_hostname";"
, но edgeos это не про Security Gateway, там другое стоит ...
Skyworker вне форума   Ответить с цитированием
Старый 09.04.2018, 10:07 Вверх   #4
initys
Пользователь
 
Аватар для initys
 
Сообщений: 95
Репутация: 10
По умолчанию

Цитата:
Сообщение от Skyworker Посмотреть сообщение
У меня когда-то стояла Vyatta(на этой основе и сделели ubnt) на обычном PC. Это было давно и рабочего конфига у меня не сохранилось. Маршруты по DHCP оно принимало(если я правильно понял про client-option 121), но как именно настроено было не помню. Маршруты вручную прописывать - дурная затея. А igmpproxy настраивайте чтобы принимала мультикаст с сетей 192.168.0.0/16
Да, все верно речь про маршруты. То что прописывать руками не камильфо - тоже понятно, но что делать если не получается пока решить по другому.

Я добавлял такое (найденное в инете)
#set interfaces ethernet eth0 dhcp-options client-option "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;"
#set interfaces ethernet eth0 dhcp-options client-option "request rfc3442-classless-static-routes;"
Маршруты не добавило, вернуло ошибку парсинга.
Apr 6 12:09:23 ubnt mcad: mca-edgemax.edgemax_stats_routes(): parsing response failed(-1)
Как отладить тоже пока не понятно

Как последний вариант рассматриваю проброс по виланам на тв приставку доступа прямо в сеть тенета, но хотел бы этого избежать, так как портов свободный на коммутаторе и так не много..

Последний раз редактировалось initys; 09.04.2018 в 10:11.
initys вне форума   Ответить с цитированием
Старый 09.04.2018, 12:13 Вверх   #5
Skyworker
Пользователь
 
Сообщений: 32
Репутация: 14
По умолчанию

А если попытаться залезть в dhclient.conf ? А там в секцию interface добавить

request subnet-mask, broadcast-address, time-offset, routers,
domain-search, domain-name, domain-name-servers, host-name;

Хотя этот конфиг может генерироваться налету из главного системного конфига.

А такая строка вызывает ошибку парсинга? Просто проверить, что можно хоть какие-то опции передавать.

set interfaces ethernet eth0 dhcp-options client-option "send host-name "test.lan";"

Может те команды, которые вы вбивали верные, но синтаксис не верный.
Skyworker вне форума   Ответить с цитированием
Старый 09.04.2018, 12:17 Вверх   #6
initys
Пользователь
 
Аватар для initys
 
Сообщений: 95
Репутация: 10
По умолчанию

Немного полез копать, действительно все вертится на базе vayata

Для обновления параметров DHCP клиента используется скрипт /opt/vyatta/sbin/vyatta-interfaces.pl, он генерит конфиг для сетевого интерефейса ( в моем случае eth0) /var/run/dhclient_eth0.conf
В скрипте есть такое вот
Код:
sub dhcp_update_config {                                                                                                                                                       
    $output .= "option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;\n\n";
То есть описание опций 121 добавляется каждый раз в конфиг. Так же я добавил запрос rfc3442-classless-static-routes .
Сейчас /var/run/dhclient_eth0.conf имеет такой вот вид
Код:
# autogenerated by vyatta-interfaces.pl on Mon Apr  9 12:13:59 EEST 2018

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

interface "eth0" {
        send host-name "ubnt";
        request subnet-mask, broadcast-address, routers, domain-name-servers, rfc3442-classless-static-routes, interface-mtu;
}
}
На выходе все то же унылое mcad: mca-edgemax.edgemax_stats_routes(): parsing response failed(-1)
Версия dhclient:
Internet Systems Consortium DHCP Client 4.1-ESV-R8
Copyright 2004-2013 Internet Systems Consortium.
initys вне форума   Ответить с цитированием
Старый 09.04.2018, 12:52 Вверх   #7
Skyworker
Пользователь
 
Сообщений: 32
Репутация: 14
По умолчанию

А есть ли возможность прямо из консоли дать команду dhclient eth0 -cf config-file (за правильный синтаксис не уверен), при этом из основного системного конфига удалить настройку локальной сети тенет? И конфиг подсунусть по умолчанию который идет, то есть без "option rfc3442-classless-static-routes code 121 ...". В конфиге по умолчанию вроде есть опция routers может и маршруты пропишуться. А там дальше уже смотреть ...
Skyworker вне форума   Ответить с цитированием
Старый 09.04.2018, 13:34 Вверх   #8
initys
Пользователь
 
Аватар для initys
 
Сообщений: 95
Репутация: 10
По умолчанию

В общем с маршрутами от DHCP разобрался, может кому то понадобится
Код:
# включаем dhcp, в дополнение к pppoe
set interfaces ethernet eth0 address dhcp
# если надо переопределяем MAC
set interfaces ethernet eth0 mac xx:xx:xx:xx:xx:xx
# если у нас 2 провайдера, то выставляем интерфейсу метрику повыше, чтобы фейловер не стал гнать весь трафик в внутреннюю сеть тенета
set interfaces ethernet eth0 dhcp-options default-route-distance 250
# ну и для запасного провайдера ставим метрику пониже чем для eth0
set interfaces ethernet eth2 dhcp-options default-route-distance 200
Далее, в скрипте /opt/vyatta/sbin/vyatta-interfaces.pl меняем строку
Код:
$output .= "\trequest subnet-mask, broadcast-address, routers, domain-name-servers";
на
Код:
$output .= "\trequest subnet-mask, broadcast-address, routers, domain-name-servers, rfc3442-classless-static-routes";
И чтобы адреса парсились необходимо так же добавить хук (и сделать его исполняемым)
/etc/dhcp3/dhclient-exit-hooks.d/rfc3442-classless-routes
Код:
RUN="yes"


if [ "$RUN" = "yes" ]; then
        if [ "$new_rfc3442_classless_static_routes" != "" ]; then
                if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
                        rfc_routes=($new_rfc3442_classless_static_routes)

                        for(( i=0; i < ${#rfc_routes[@]}; )); do
                                net_length=${rfc_routes[$i]}

                                ((i++))

                                net_address=(0 0 0 0)
                                for(( j=0; j < $[$net_length / 8 + \
                                    ($net_length % 8 ? 1 : 0)]; j++, i++)); do

                                        net_address[$j]=${rfc_routes[$i]}
                                done

                                gateway=(0 0 0 0)
                                for (( j=0; j < 4; j++, i++ )); do
                                        gateway[$j]=${rfc_routes[$i]}
                                done

                                old_IFS="$IFS"
                                IFS='.'

                                if [ "$net_length" == "32" ]; then
                                        /sbin/route add -host "${net_address[*]}" gw "${gateway[*]}"
                                else
                                        /sbin/route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}"
                                fi
                                IFS="$old_IFS"

                        done
                fi
        fi
fi
взял отсюда http://itblog.su/static-routes-pushed-through-dhcp.html

В итоге резултат выглядит так
Цитата:
~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
I - ISIS, B - BGP, > - selected route, * - FIB route

S 0.0.0.0/0 [250/0] via 10.9.x.x
S 0.0.0.0/0 [200/0] via 100.68.x.x
S>* 0.0.0.0/0 [1/0] is directly connected, pppoe0
C>* 10.9.x.0/23 is directly connected, eth0
C>* 100.68.x.x/17 is directly connected, eth2
C>* 127.0.0.0/8 is directly connected, lo
C>* 172.17.x.x/22 is directly connected, eth1
K>* 195.138.68.88/29 via 10.9.171.250, eth0
K>* 195.138.70.208/28 via 10.9.171.250, eth0
K>* 195.138.78.64/28 via 10.9.171.250, eth0
K>* 195.138.80.24/32 via 10.9.171.250, eth0
K>* 195.138.80.30/32 via 10.9.171.250, eth0
K>* 195.138.80.32/32 via 10.9.171.250, eth0
K>* 195.138.80.40/32 via 10.9.171.250, eth0
K>* 195.138.80.50/32 via 10.9.171.250, eth0
K>* 195.138.80.54/32 via 10.9.171.250, eth0
K>* 195.138.80.83/32 via 10.9.171.250, eth0
K>* 195.138.80.84/30 via 10.9.171.250, eth0
C>* 195.138.80.x/32 is directly connected, pppoe0

p.s. данные шаги скорее всего придется повторять после обновления, а так же надо сохранять в конфиг файл

Skyworker, спасибо за наводку куда копать) чуть позже займусь уже настройкой multicast+igmp

Последний раз редактировалось initys; 09.04.2018 в 13:41.
initys вне форума   Ответить с цитированием
Старый 09.04.2018, 16:24 Вверх   #9
initys
Пользователь
 
Аватар для initys
 
Сообщений: 95
Репутация: 10
По умолчанию

Кстати, а какие условия подключения через PON? Можно ли поменять pppoe схему на простое включение в порт (допустим по маку)?
Работа через pppoe в моем случае весьма неудобно получается

Последний раз редактировалось initys; 09.04.2018 в 16:27.
initys вне форума   Ответить с цитированием
Старый 09.04.2018, 17:30 Вверх   #10
Skyworker
Пользователь
 
Сообщений: 32
Репутация: 14
По умолчанию

И шикарно, что заработало. А настроить multicast+igmp еще проще. Под Vyatta я отдельно устанавливал igmpproxy из репозитория и при старте машины его запускал с конфигом. В ubnt вроде уже он есть, точно не знаю, так как нету самой машинки. Помню, что под Vyatta там был небольшой косяк: дело в том, что в конфиге описывается и интерфейс с которого идет multicast, а этот интерфейс может отсутствовать на момент запуска igmpproxy. Такое бывало когда вырубался свет, потом его все-таки давали и машина стартовала. А моя машина быстрее стартовала, чем оборудование Тенет и на момент запуска igmpproxy интерфейс eth0, который получал адрес по DHCP, еще не поднялся. И конечно же igmpproxy выдавал ошибку, что мол в вашем конфиге интерфейс, которого нету или что-то такого. Приходилось перезапускать igmpproxy когда провайдерское оборудование оживало. Сейчас у меня LEDE в виртуалке на NAS крутиться, так там у меня igmpproxy подымаестя при поднятии итерфейса по DHCP от Тенета и, соотвественно, вырубается при падении интерфейса.
У меня в LEDE(OpenWRT) оно запускается так: (70-igmpproxy - файл исполняемый)
Код:
root@LEDE:~# cat /etc/hotplug.d/iface/70-igmpproxy
#!/bin/sh
#This script run and stop igmpproxy

[ "$ACTION" = ifup -a "$INTERFACE" = localtenet ] && /etc/init.d/igmpproxy start
[ "$ACTION" = ifdown -a "$INTERFACE" = localtenet ] && /etc/init.d/igmpproxy stop
И сам конфиг igmpproxy (поменять имена интерфейсов)
Код:
root@LEDE:~# cat /etc/config/igmpproxy
config igmpproxy
        option quickleave 1
#       option verbose [0-2]

config phyint localtenet
        option network localtenet
        option direction upstream
        list altnet 192.168.0.0/16
        list altnet 10.0.0.0/8

config phyint lan
        option network lan
        option direction downstream
А по поводу PON, я точно не знаю, можно у самого Тенет спросить, но там PPPoE отсуствует и подключение простое - адрес получаешь по DHCP.
Skyworker вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +2, время: 08:34.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.