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

cisco dhcp relay автоматическое создание маршрута

Добрый день уважаемые коллеги. Наткнулся на грабельку.

Есть связка 6505 SUP720 с ip unnumbered + dhcp relay на борту.

К каталисту подключен DES-3028.

Реализуется схема влан на коммутатор.

Настройки 65й

ip dhcp relay information option
ip dhcp relay information policy keep
no ip dhcp relay information check
ip dhcp relay information trust-all

interface Loopback1
 ip address 194.х.х.1 255.255.255.128

interface Vlan667
 description # TEST_USR_ACC # 
 ip unnumbered Loopback1
 ip helper-address 192.168.100.100
 no ip unreachables
 no ip proxy-arp
 ip local-proxy-arp

interface Vlan666
 description # MGM #
 ip address 192.168.101.1 255.255.255.0 secondary
 ip address 192.168.102.1 255.255.255.0 secondary
 ip address 192.168.103.1 255.255.255.0 secondary
 ip address 192.168.100.1 255.255.255.0
 ip helper-address 192.168.100.100
 no ip redirects
 no ip unreachables
 ip local-proxy-arp
 ip route-cache same-interface

 Где 192.168.100.100 это MGM (условный) интерфейс Carbon Billing

 

На DES-3028

enable dhcp_relay
config dhcp_relay hops 16 time 0 
config dhcp_relay option_82 state enable
config dhcp_relay option_82 check enable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default
config dhcp_relay add ipif System 192.168.100.100
config dhcp_relay ports 1-28 state enable

На карбоне смотрим в tcpdump

4:51:45.002876  In 1c:af:f7:6c:2e:2e ethertype IPv4 (0x0800), length 383: (tos 0x0, ttl 128, id 3002, offset 0, flags [none], proto UDP (17), length 367)
    192.168.100.12.bootpc > 192.168.100.100.bootps: BOOTP/DHCP, Request from 00:1d:72:0d:e9:c3, length 339, hops 1, xid 0xf0af1e1b, Flags [none]
	  Gateway-IP 192.168.100.12
	  Client-Ethernet-Address 00:1d:72:0d:e9:c3
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Request
	    Client-ID Option 61, length 7: ether 00:1d:72:0d:e9:c3
	    Requested-IP Option 50, length 4: 194.x.x.2
	    Server-ID Option 54, length 4: 192.168.100.100
	    Hostname Option 12, length 9: "technics1"
	    FQDN Option 81, length 13: "technics1."
	    Vendor-Class Option 60, length 8: "MSFT 5.0"
	    Parameter-Request Option 55, length 11: 
	      Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
	      Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
	      Static-Route, Classless-Static-Route-Microsoft, Vendor-Option
	    Vendor-Option Option 43, length 3: 220.1.0
	    Agent-Information Option 82, length 18: 
	      Circuit-ID SubOption 1, length 6: ^@^D^BM-^[^@^B
	      Remote-ID SubOption 2, length 8: ^@^F^\M-/M-wl..
14:51:45.005255 Out d4:ae:52:b9:db:1b ethertype IPv4 (0x0800), length 344: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 328)
    192.168.100.100.bootps > 192.168.100.12.bootps: BOOTP/DHCP, Reply, length 300, hops 1, xid 0xf0af1e1b, Flags [none]
	  Your-IP 194.x.x.2
	  Gateway-IP 192.168.100.12
	  Client-Ethernet-Address 00:1d:72:0d:e9:c3
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: ACK
	    Server-ID Option 54, length 4: 192.168.100.100
	    Lease-Time Option 51, length 4: 3600
	    Subnet-Mask Option 1, length 4: 255.255.255.128
	    Default-Gateway Option 3, length 4: 194.x.x.1
	    Domain-Name-Server Option 6, length 4: 8.8.8.8
	    Agent-Information Option 82, length 18: 
	      Circuit-ID SubOption 1, length 6: ^@^D^BM-^[^@^B
	      Remote-ID SubOption 2, length 8: ^@^F^\M-/M-wl..

 

Привязка абонента в биллинге по port vlan nas

Абонент адрес получает. 

Мак на порту видится

#sh mac address-table | i 667
   667  001d.720d.e9c3   dynamic  Yes          0   Gi4/6

 

Но не создается статик роут

#sh ip route | i 194.x.x.2
#

Абонент соответственно не пингуется.
 

Добавляю ручками ip route 194.х.х.2 255.255.255.255 vlan 667

Сразу все начинает работать.

 

Есть идеи куда можно посмотреть?

s72033-adventerprisek9_wan-mz.122-33.SXI6.bin

VS-S720-10G

 

PS: с dhcp snooping та же самая картина, биндинг создается, роут нет

 

 

 

Share this post


Link to post
Share on other sites

На делинке используйте dhcp_local_relay. Тогда кошка сможет переслать широковещательный запрос и создаст роут на абона

Share this post


Link to post
Share on other sites

Поскольку ТС сегодня пока отписаться не может, я, как коллега, дополню что попробовали Local_relay - Результат отрицательный. Если при работающем DHCP_relay на сервер хотя бы прилетают корректные данные и просто не создается маршрут:

 

Feb  5 12:15:56 carbon dhcpd: PARS_Access:: Lease for 194.113.232.12 SWIP=192.168.100.12 VLAN=667 PORT=3 PARAM=none MAC=none GPON_MODEM_PORT=none SVLAN=none
Feb  5 12:15:56 carbon dhcpd: DHCPREQUEST for 194.113.232.12 (192.168.100.100) from 00:1d:72:0d:e9:c3 (technics1) via 192.168.100.12
Feb  5 12:15:56 carbon dhcpd: DHCPACK on 194.113.232.12 to 00:1d:72:0d:e9:c3 (technics1) via 192.168.100.12

 

то при работающем local_relay

 

# DHCP_RELAY

disable dhcp_relay
config dhcp_relay hops 16 time 0 
config dhcp_relay option_82 state enable
config dhcp_relay option_82 check enable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default
config dhcp_relay add ipif System 192.168.100.100
config dhcp_relay ports 1-28 state enable

# DHCP_LOCAL_RELAY

enable dhcp_local_relay
config dhcp_local_relay option_82 remote_id default
config dhcp_local_relay vlan vlanid 667 state enable                           
config dhcp_local_relay option_82 ports 1-28 policy replace

 

 

данных нет вообще

 

Feb  5 12:16:58 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases
Feb  5 12:17:02 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases
Feb  5 12:17:11 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases

 

Ставили сегодня туда коммутатор orion (аналог SNR2950) - завелись без проблем. То есть проблема в настройках/существовании D-Linkов. Версия ПО на коммутаторе последняя 

Boot PROM Version  : Build 1.00.B06
Firmware Version   : Build 2.94.B22
Hardware Version   : A2

 


 

Share this post


Link to post
Share on other sites

Я dhcp_local_relay не использовал на d-link, только dhcp_relay, но по-моему, 

config dhcp_local_relay option_82 ports 1-27

должно быть, при условии, что 28 порт  - аплинк. Если аплинка два (резерв или лаг), то убираете из списка оба порта.

или же делать что-то типа
config dhcp_local_relay vlan VLAN667 st en

Кстати, глобально включать доверие к opt82 может быть вредно или избыточно. Это можно на на SVI interface Vlan667 сделать.

Edited by passer

Share this post


Link to post
Share on other sites
8 часов назад, Reskiner сказал:

Поскольку ТС сегодня пока отписаться не может, я, как коллега, дополню что попробовали Local_relay - Результат отрицательный. Если при работающем DHCP_relay на сервер хотя бы прилетают корректные данные и просто не создается маршрут:

 


Feb  5 12:15:56 carbon dhcpd: PARS_Access:: Lease for 194.113.232.12 SWIP=192.168.100.12 VLAN=667 PORT=3 PARAM=none MAC=none GPON_MODEM_PORT=none SVLAN=none
Feb  5 12:15:56 carbon dhcpd: DHCPREQUEST for 194.113.232.12 (192.168.100.100) from 00:1d:72:0d:e9:c3 (technics1) via 192.168.100.12
Feb  5 12:15:56 carbon dhcpd: DHCPACK on 194.113.232.12 to 00:1d:72:0d:e9:c3 (technics1) via 192.168.100.12

 

то при работающем local_relay

 


# DHCP_RELAY

disable dhcp_relay
config dhcp_relay hops 16 time 0 
config dhcp_relay option_82 state enable
config dhcp_relay option_82 check enable
config dhcp_relay option_82 policy replace
config dhcp_relay option_82 remote_id default
config dhcp_relay add ipif System 192.168.100.100
config dhcp_relay ports 1-28 state enable

# DHCP_LOCAL_RELAY

enable dhcp_local_relay
config dhcp_local_relay option_82 remote_id default
config dhcp_local_relay vlan vlanid 667 state enable                           
config dhcp_local_relay option_82 ports 1-28 policy replace

 

 

данных нет вообще

 


Feb  5 12:16:58 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases
Feb  5 12:17:02 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases
Feb  5 12:17:11 carbon dhcpd: DHCPDISCOVER from 00:1d:72:0d:e9:c3 via 194.113.232.1: network ISC: no free leases

 

Ставили сегодня туда коммутатор orion (аналог SNR2950) - завелись без проблем. То есть проблема в настройках/существовании D-Linkов. Версия ПО на коммутаторе последняя 


Boot PROM Version  : Build 1.00.B06
Firmware Version   : Build 2.94.B22
Hardware Version   : A2

 


 

Вам структуру конфига надо продумывать для такого перехода. Isc ищет по адресу giaddr (via ...) шаред нетворк и потом уже там запись. Похоже, что связка для клиента в другом шареде.

Share this post


Link to post
Share on other sites

Если я правильно понял задумку, то возникла хотелка: вот бы кошка создавала маршрут на клиента в клиентском влане, но при дхцп запросе, проходящем, через влан управления свитчами. Ничего не смущает? Кто сказал кошке и как, что все такие динамические маршруты создавать только в клиентском и каком?

В обычном виде, кошка или другой L3 с ip helper/dhcp relay принимает широковещательные запросы от клиентов в клиентских вланах, пересылает их указанному dhcp-серверу и при прохождении dhcp ack создает маршрут на клиента в том влане, откуда спросили.

В общем, dhcp_relay вам не поможет. Он для несколько другого дизайна сети.

Share this post


Link to post
Share on other sites
14 часов назад, passer сказал:

. Ничего не смущает? Кто сказал кошке и как, что все такие динамические маршруты создавать только в клиентском и каком?

Совершeннно ничего не смущает. 1) Кошка видит в каком влане мак клиента 2) кошка видет на каком порту висит подсеть выдаваемая клиенту 3) При включеном релее кошка видит VLAN=667 PORT=3 клиента. 4) Access dlink это л2 коммутатор на котором мы в общем случае имеем только 1 л3 интерфейс который не является пользовательским но является менеджментом 4) для пользовательского влана на длинк прописано config dhcp_local_relay vlan vlanid 667 state enable 5) с другими коммутаторами(не длинк) настроеными по тому же принципу все работает вполне ожидаем и корректно. Роут создается.

 

 

15 часов назад, zhenya` сказал:

. Isc ищет по адресу giaddr (via ...)

про какую ISC идет речь?

Share this post


Link to post
Share on other sites
3 часа назад, zhenya` сказал:

У Reskiner используется isc dhcpd.

isc dhcp да, там совершенно ничего нельзя изменить. конфиг для isc dhcp создается внутри карбон биллинг. как уже определили проблема сугубо на коммутаторах доступа длинк. вопрос как это можно обойти.

Share this post


Link to post
Share on other sites
22 часа назад, myst сказал:

1) Кошка видит в каком влане мак клиента

В ряде случаев не видит. В момент, когда клиент не получил ип, он может ничего не слать, кроме дхцп, а те пакеты делинк в режиме dhcp_relay перехватывает и отправляет от своего ip в влане управления свитчем. Т.е. в момент прохождения dhcp ack кошка не имеет информации относительно того, в каком влане находится клиент и что туда надо создать маршрут.

Уж не знаю, как настроены свитчи других производителей, но акцентирую внимание на то что dhcp_relay это по сути dhcp relay, работающий на l3, подобно ip helper кошки, тогда как dhcp_local_relay это просто вставка opt82 и ее контроль на транзитных широковещательных пакетах.

Share this post


Link to post
Share on other sites
13 минут назад, passer сказал:

В ряде случаев не видит. В момент, когда клиент не получил ип, он может ничего не слать, кроме дхцп, а те пакеты делинк в режиме dhcp_relay перехватывает и отправляет от своего ip в влане управления свитчем. Т.е. в момент прохождения dhcp ack кошка не имеет информации относительно того, в каком влане находится клиент и что туда надо создать маршрут.

Уж не знаю, как настроены свитчи других производителей, но акцентирую внимание на то что dhcp_relay это по сути dhcp relay, работающий на l3, подобно ip helper кошки, тогда как dhcp_local_relay это просто вставка opt82 и ее контроль на транзитных широковещательных пакетах.

это то понятно, вот dhcp_local_relay и не заработал.

что же до маршрута, он создается после dhcp ack unicast когда всем всё уже известно. в том числе и мак пользователя, и его влан и его IP.

Share this post


Link to post
Share on other sites
В 07.02.2021 в 11:08, myst сказал:

это то понятно, вот dhcp_local_relay и не заработал.

Если убрать dhcp_local_relay с аплинкового порта, добавить ip dhcp relay information trusted 
на клиентском svi и обеспечить прием сервером dhcp-запросов от ip loopback1

 

В 03.02.2021 в 14:59, myst сказал:

interface Loopback1 ip address 194.х.х.1 255.255.255.128

то должно работать.

Share this post


Link to post
Share on other sites
16 часов назад, passer сказал:

Если убрать dhcp_local_relay с аплинкового порта, добавить ip dhcp relay information trusted 
 на клиентском svi и обеспечить прием сервером dhcp-запросов от ip loopback1

 

то должно работать.

там уже есть 

Цитата

ip dhcp relay information trust-all

Не работает.

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