IMPERATOR Posted March 11, 2013 Дорый день. Имеется сеть: домовой ( dlink DES 3028) - район - ядро(3627G) - сервера (бордрер, DHCP и т.д.) Идея заключается в том что бы из ядра 3627G сделать просто агрегацию убрав с него L3, а рядом поставить сервер который и будет заниматся им. Сейчас проблема в том что не проходят DHCP пакеты от абонентов до сервера DHCP Домовые , районые комутаторы имеют ip вида 12.0.X.X , а все сервера находятся в сети 172.18.X.X DHCP релей поднят на домовых DES 3028 и указывает на DHCP сервер 172.18.1.8 . Если на Ядре сети 3627G подняты все интерфейсы то все нормально, как только убираем с него L3 маршрутизацию и заворачиваем весь трафик на сервер который должен разруливать то перестают проходить DHCP пакеты. На сервере стоит Freebsd 9.1 ix0 - в сторону города ix1 - в сторону серверной vlan 100 для управления комутаторами vlan 99 сервера vlan 302 абонентский На ix0 приходит тегированный трафик из 10 абонентскиx влан (300-310) , через ix1 уходит трафик на бордер в инет по vlan 99 Как мне кажется почему то на сервере не происходит переброса dhcp пакета из сети свичей 12.0.X.X в серверную сеть 172.18.X.X стоит программка dhcprelay в rc.conf defaultrouter"56.56.1.254" # пограничный сервер gateway_enable="YES" dhcprelay_enable="YES" dhcprelay_server="172.18.1.8" # DHCP сервер dhcprelay_iface="ix0" # сетевая смотрит в сторону города ifconfig_ix0="up" ifconfig_ix1="up" cloned_interface="vlan100 vlan99 vlan302" ifconfig_vlan100="inet 12.0.255.1 netmask 255.255.0.0 vlan 100 vlandev ix0" ifconfig_vlan99="inet 172.18.1.1 netmask 255.255.255.0 vlan 99 vlandev ix0" ifconfig_vlan302="inet 56.56.3.1 netmask 255.255.255.0 vlan 302 vlandev ix0" На 3627G убираются все ipif за исключением vlan 100 12.0.255.3 и ставится default route 12.0.255.1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
boco Posted March 11, 2013 судя по предложенному конфигу, у вас: 1. на ix1 нет никаких влан и никакого ip-адреса 2. на ix0 нет влан 300-310 (вероятно, вы имели в виду, что абонентский трафик приходит из vlan100) 3. релеить надо на нетегированном интерфейсе (вероятно, на vlan100) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
IMPERATOR Posted March 11, 2013 1) на ix1 ip 56.56.1.252 из одной сети со всеми серверами 2) сейчас на ix0 поднят только vlan 302 , всего их там будет 11 с 300 по 310 - это сейчас не суть важно 3) вот с релеями что то непонятное , толи ix0 надо указывать , толи vlan 100 по которому собственно и приходит DHCP (насоклько это верно) , что значит нетегированном ? т.е. убрать vlan 100 из rc.conf и запускать на сервер трафик из сети 12.0.X.X снимая тег на агрегации. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
replicant Posted March 11, 2013 (edited) Если на Ядре сети 3627G подняты все интерфейсы то все нормально,как только убираем с него L3 маршрутизацию и заворачиваем весь трафик на сервер который должен разруливать то перестают проходить DHCP пакеты. Как мне кажется почему то на сервере не происходит переброса dhcp пакета из сети свичей 12.0.X.X в серверную сеть 172.18.X.X стоит программка dhcprelay Вообще-то для работы достаточно только включенного ipv4.forward и правильно настроенных маршрутов от DHCP сервера в сеть управления (чтобы туда-сюда трафик бегать мог). Кстати, не всегда надо светить адреса из сети управления и вообще давать DHCP серверу адрес в этой сети, ничего не мешает поднять второй system ip на 3028 и слать все с него, а управление оставить закрытым от абонов и даже по адресу dhcp сервера (который некоторые умники предлагают пихать в сеть управления) они ничего не сообразят. А тегированный или нетегированный интерфейс - это не важно ну вообще ни разу. DHCP пакеты пролетят более чем успешно и при простом разрешенном форварде. dchprelay вообще не нужно. Это лишняя сущность при правильном L3 шлюзе на FreeBSD/Linux и правильной маршрутизации от DHCP сервера в сеть управления или псевдоуправления. Даже согласно рекомендациям D-Link для их оборудования единственным местом, где релей должен быть включен, является коммутатор доступа, куда втыкаются кабели от абонентов. И ничто и никто не упоминает обязательность наличия релея на L3 маршрутизаторе между доступом и dhcp сервером. Если уж Вам вздумалось установить dhcprelay на FreeBSD, то не кажется ли Вам, что на 3028 должен упоминаться не адрес сервера, а адрес релея? По крайней мере у меня работает с Linux тазиками на позиции L3 коммутаторов без всяких нелепых релеев и даже не по сети управления, а по вторичным адресам, которые лишь номинально относятся к сети управления, но управление по ним не происходит. Все взаимодействие сетей достигается обычной статической маршрутизацией, а как известно DHCP пакет точно такой же пакет как и все остальные и пойдет по маршруту от коммутатора туда, куда ему велит таблица. Edited March 11, 2013 by replicant Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
IMPERATOR Posted March 12, 2013 Подключаем абонента в нетегированный порт vlan 302 На PC роутере tcpdupm на интерфейсах vlan 302 и ix0 ( видимо потому что 302 привязан к нему ) видны запросы вида IP 0.0.0.0 > 255.255.255.255 DHCP request А вот дальше их как то нигде уловить не получилось. Если на абонентском устройстве руками поставить ip тот который должен выдаться DHCP то все нормально начинает работать , все видно ,все пингуется и трассируется. т.е. в плане маршрутизации вродебы все впорядке , вланы везде созданы нужные , адреса тоже правильные . Но где тогда умирает DHCP и почему ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
adnull Posted March 12, 2013 (edited) Так у вас релеить должен сервер? А почему dhcp-сервер сидит во влане 99 который поднят на ix0 ? А, и еще вам на свичах доступа нужно acl-ками запретить DHCP-запросы/ответы. Тогда они не будут долетать до сервера броадкастом. Edited March 12, 2013 by adnull Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
IMPERATOR Posted March 12, 2013 DHCP релей поднят на домовых DES 3028 (12.0.X.X) config dhcp_relay add ipif System 172.18.1.8 и указывает на DHCP сервер 172.18.1.8 по поводу vlan 99: пробовали и так и по другому Упростили задачу до минимума: Freebsd 9.1, gateway_enable="YES" Две сетевые карты em0 и em1 em0: 172.18.11.1 mask 255.2552.255.0 em1: 172.18.10.1 mask 255.2552.255.0 В em1 напрямую подключаем DHCP сервер 172.18.10.10 он разадает ip адреса из пула 172.18.11.1-100 В em0 напрямую подключаем Копьютер с выставленым автоматическим получением IP по DHCP , он НИЧЕГО не получает, нету ни одного принятого пакета на клиенте. На сервере по tcpdump на em0 есть IP 0.0.0.0 > 255.255.255.255 DHCP request, на em1 нету пакетов связаных с DHCP Что тут не правильно и как должно быть что бы всетаки заработало , если руками поставить ip клинету из выдаваемого пула , то все работает. Нужен ли DHCP_relay ? ( с ним пробовали , но тоже не заработало ) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
replicant Posted March 12, 2013 Нужен ли DHCP_relay ? ( с ним пробовали , но тоже не заработало ) Relay не нужен. Работать все должно и без него. Вопросы остаются только к тому кто и как настраивал FreeBSD. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
[S] Posted March 12, 2013 (edited) IMPERATOR, #ipfw show #ifconfig #netstat -r #cat /etc/rc.conf И всю схему, в которой, как вы предполагаете, это должно работать. Естессно, с ip-адресами и интерфейсами. Возможно, когда будете рисовать, разберетесь. Edited March 12, 2013 by [S] Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murzik_one Posted March 12, 2013 (edited) DHCP релей поднят на домовых DES 3028 (12.0.X.X) config dhcp_relay add ipif System 172.18.1.8 и указывает на DHCP сервер 172.18.1.8 Вы с коммутатора DHCP сервер видите/пингуете (172.18.1.8)? DHCP севрер принимает коннекты на 172.18.1.8 - в конфиге прописали? (local-address 172.18.1.8;) по дороге от коммутатора до DHCP сервера - 67/UDP 68/UDP нигде не зафильтрованы? Посмотрите tcpdump'ом на dhcp сервере что летить от коммутатора. включите полную отладку на dhcp серваке, курите логи.. А вот тут в примерах есть: DHCP_option_82 релей штука элементарная, и работает с пол пинка. Edited March 12, 2013 by murzik_one Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
IMPERATOR Posted March 13, 2013 (edited) Вообщем после долгих мучений выяснилось что dhcprelay из rc.conf так и не хочет работать , поэтому был написан скриптик в котором: #!/bin/sh /usr/local/bin/dhcprelay em1 172.18.1.8 а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д. Так все заработало , dhcp пакеты проходят . В ближайщие дни , ночью попробуем все это заставить работать в боевом режиме. Edited March 13, 2013 by IMPERATOR Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
murzik_one Posted March 13, 2013 а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д. А зачем у вас релей на сервере? Сами свичи умеют делать релей, на нужный DHCP сервер... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
replicant Posted March 13, 2013 (edited) а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д. А зачем у вас релей на сервере? Сами свичи умеют делать релей, на нужный DHCP сервер... Вот и я про то же самое спрашивал... Надо лишь на коммутаторе включить релей, а ip коммутатора смаршрутизировать в сеть dhcp сервера и наоборот, чтобы коммутатор и dhcp сервер друг друга "пинговали", если можно так выразиться. Релей в данном случае спасает видимо от некорректно настроенного шлюза на FreeBSD, который где-то в себе дропает dhcp-пакеты. Проверяется простой заменой FreeBSD на любой L3 свитч с двумя интерфейсами (один на dhcp сервер, другой в сторону коммутатора доступа) и выключенным релеем. Свитч пропустит такие пакеты и без релея, значит, надо искать почему Фря их не пропускает. Edited March 13, 2013 by replicant Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...