Jump to content
Калькуляторы

Проблемы с DHCP запросами Установка PC роутера в ядре сети как замена L3 комутатора

Дорый день.

 

Имеется сеть: домовой ( 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

Share this post


Link to post
Share on other sites

судя по предложенному конфигу, у вас:

 

1. на ix1 нет никаких влан и никакого ip-адреса

2. на ix0 нет влан 300-310 (вероятно, вы имели в виду, что абонентский трафик приходит из vlan100)

3. релеить надо на нетегированном интерфейсе (вероятно, на vlan100)

Share this post


Link to post
Share on other sites

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 снимая тег на агрегации.

Share this post


Link to post
Share on other sites
Если на Ядре сети 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 by replicant

Share this post


Link to post
Share on other sites

Подключаем абонента в нетегированный порт vlan 302

На PC роутере tcpdupm на интерфейсах vlan 302 и ix0 ( видимо потому что 302 привязан к нему ) видны запросы вида IP 0.0.0.0 > 255.255.255.255 DHCP request А вот дальше их как то нигде уловить не получилось.

Если на абонентском устройстве руками поставить ip тот который должен выдаться DHCP то все нормально начинает работать , все видно ,все пингуется и трассируется. т.е. в плане маршрутизации вродебы все впорядке , вланы везде созданы нужные , адреса тоже правильные . Но где тогда умирает DHCP и почему ?

Share this post


Link to post
Share on other sites

Так у вас релеить должен сервер? А почему dhcp-сервер сидит во влане 99 который поднят на ix0 ? А, и еще вам на свичах доступа нужно acl-ками запретить DHCP-запросы/ответы. Тогда они не будут долетать до сервера броадкастом.

Edited by adnull

Share this post


Link to post
Share on other sites

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 ? ( с ним пробовали , но тоже не заработало )

Share this post


Link to post
Share on other sites

Нужен ли DHCP_relay ? ( с ним пробовали , но тоже не заработало )

Relay не нужен. Работать все должно и без него. Вопросы остаются только к тому кто и как настраивал FreeBSD.

Share this post


Link to post
Share on other sites

IMPERATOR,

#ipfw show

 

#ifconfig

 

#netstat -r

 

#cat /etc/rc.conf

 

И всю схему, в которой, как вы предполагаете, это должно работать. Естессно, с ip-адресами и интерфейсами.

Возможно, когда будете рисовать, разберетесь.

Edited by [S]

Share this post


Link to post
Share on other sites

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 by murzik_one

Share this post


Link to post
Share on other sites

Вообщем после долгих мучений выяснилось что dhcprelay из rc.conf так и не хочет работать , поэтому был написан скриптик в котором:

#!/bin/sh

/usr/local/bin/dhcprelay em1 172.18.1.8 

 

а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д.

Так все заработало , dhcp пакеты проходят . В ближайщие дни , ночью попробуем все это заставить работать в боевом режиме.

Edited by IMPERATOR

Share this post


Link to post
Share on other sites

а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д.

А зачем у вас релей на сервере? Сами свичи умеют делать релей, на нужный DHCP сервер...

Share this post


Link to post
Share on other sites

а для того что бы работало с vlan нужно в качестве интерфейса указывать vlan300 и т.д.

А зачем у вас релей на сервере? Сами свичи умеют делать релей, на нужный DHCP сервер...

 

Вот и я про то же самое спрашивал... Надо лишь на коммутаторе включить релей, а ip коммутатора смаршрутизировать в сеть dhcp сервера и наоборот, чтобы коммутатор и dhcp сервер друг друга "пинговали", если можно так выразиться.

 

Релей в данном случае спасает видимо от некорректно настроенного шлюза на FreeBSD, который где-то в себе дропает dhcp-пакеты. Проверяется простой заменой FreeBSD на любой L3 свитч с двумя интерфейсами (один на dhcp сервер, другой в сторону коммутатора доступа) и выключенным релеем. Свитч пропустит такие пакеты и без релея, значит, надо искать почему Фря их не пропускает.

Edited by replicant

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this