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

dhcp relay с isc dhcp server и vlan per user

Всем привет.
Имеется коммутатор dgs-3000-28xs, на котором включен dhcp relay и option 82.
Так же имеется ISC DHCP Server 4.2.8 с патчем от http://www.miquels.cistron.nl/isc-dhcpd/
Клиенты получают белые IP-адреса по номеру влана и MAC-адресу.
Всё работает, но у некоторых клиентов несколько раз в день слетает IP-адрес (в основном слетает у длинков, тп-линков и микротиков).

Лог с сервера:

Jan 28 15:01:45 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:01:45 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:47 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff via 10.0.150.44
Jan 28 15:06:47 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:47 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:47 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44

Jan 28 15:06:48 localhost dhcpd: DHCPDISCOVER from 08:00:27:f4:46:ff (RouterOS) circuit-id 0:4:0:7f:0:f remote-id 1:11:31:38:2d:30:46:2d:37:36:2d:31:35:2d:38:37:2d:41:30 via 10.0.150.44
Jan 28 15:06:48 localhost dhcpd: DHCPOFFER on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:49 localhost dhcpd: DHCPDISCOVER from 08:00:27:f4:46:ff (RouterOS) circuit-id 0:4:0:7f:0:f remote-id 1:11:31:38:2d:30:46:2d:37:36:2d:31:35:2d:38:37:2d:41:30 via 10.0.150.44
Jan 28 15:06:49 localhost dhcpd: DHCPOFFER on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:49 localhost dhcpd: DHCPDISCOVER from 08:00:27:f4:46:ff (RouterOS) circuit-id 0:4:0:7f:0:f remote-id 1:11:31:38:2d:30:46:2d:37:36:2d:31:35:2d:38:37:2d:41:30 via 10.0.150.44
Jan 28 15:06:49 localhost dhcpd: DHCPOFFER on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:50 localhost dhcpd: DHCPDISCOVER from 08:00:27:f4:46:ff (RouterOS) circuit-id 0:4:0:7f:0:f remote-id 1:11:31:38:2d:30:46:2d:37:36:2d:31:35:2d:38:37:2d:41:30 via 10.0.150.44
Jan 28 15:06:50 localhost dhcpd: DHCPOFFER on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:51 localhost dhcpd: DHCPREQUEST for 1.2.3.4 (10.0.150.2) from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:06:51 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44

Jan 28 15:11:13 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:11:13 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:15:37 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:15:37 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:20:07 localhost dhcpd: DHCPREQUEST for 1.2.3.4 from 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44
Jan 28 15:20:07 localhost dhcpd: DHCPACK on 1.2.3.4 to 08:00:27:f4:46:ff (RouterOS) via 10.0.150.44


Лог с клиента:

dhcp-client on ether1 lost IP address 1.2.3.4 - lease expired


Конфиг сервера:

local-address 10.0.150.2;
authoritative;
ddns-update-style none;
log-facility local7;
default-lease-time 300;
max-lease-time 300;

class "MatchVlanMAC" {
	spawn with concat(
		binary-to-ascii(10, 16, "", suffix(substring(option agent.circuit-id, 0, 4), 2)), 
		";", 
		binary-to-ascii(16, 8, ":", substring(hardware, 1, 7))
	);
}

shared-network net {
  	subnet 10.0.150.0 netmask 255.255.255.0 { }

	subnet 1.2.3.0 netmask 255.255.255.0 {
		option routers 1.2.3.1;
		pool {
			allow members of "MatchVlanMAC" "127;8:0:27:f4:46:ff";
			range 1.2.3.4;
		}
	}
}


В чём может быть проблема?

Edited by z1boris

Share this post


Link to post
Share on other sites

В 28.01.2022 в 14:41, z1boris сказал:

В чём может быть проблема?

В клиентах.

 

Вы бы уточнили что значит "слетает IP-адрес", а то всякое бывает.

Share this post


Link to post
Share on other sites

В 29.01.2022 в 00:48, Ivan_83 сказал:

В клиентах.

 

Вы бы уточнили что значит "слетает IP-адрес", а то всякое бывает.

У клиента кончается аренда, он начинает запрашивать ip-адрес.
Хотя по логу вроде как видно, что в 15:06:47 аренда была продлена, но в 15:06:48 клиент посылает Discover.
И смущает то, что клиент 4 раза посылает Discover, а сервер 4 раза отвечает Offer.
Такое ощущение, что до клиента не долетает Offer.

Edited by z1boris

Share this post


Link to post
Share on other sites

@z1boris это глюк д-линка.... вот только не помню исправили они его или нет. Там сочетание нескольких факторов работает на 3000. Как раз гремучая смесь DGS-3000 + тп-линк + микротик. Симптомы 1 в 1.

Share this post


Link to post
Share on other sites

В 29.01.2022 в 09:10, pppoetest сказал:

Уходите от софтфич доступа.

В сторону чего? Какие есть варианты выдать пользователю ip-адрес по влану и маку или по порту?

Edited by z1boris

Share this post


Link to post
Share on other sites

В 29.01.2022 в 13:38, z1boris сказал:

В сторону чего? Какие есть варианты выдать пользователю ip-адрес по влану и маку или по порту?

 

в сторону vlan per user

Share this post


Link to post
Share on other sites

В 29.01.2022 в 09:48, pppoetest сказал:

в сторону vlan per user

При использовании vlan per user необходимо внедрять ip unnumbered.
Как будет происходить выдача ip-адресов? Опишите, пожалуйста, всю схему.

Share this post


Link to post
Share on other sites

Собрал стенд из dgs-3000, dhcp сервера и микротика.
Пишу дампы трафика и на стороне dhcp сервера и на стороне микротика.
Надеюсь всё станет ясно.
Если проблема действительно в Длинке, то буду писать в тех поддержку.
О результатах отпишу как всё станет понятно.

Edited by z1boris

Share this post


Link to post
Share on other sites

В 29.01.2022 в 14:14, z1boris сказал:

Как будет происходить выдача ip-адресов?

Точно также как и сейчас. По dhcp.

 

В 29.01.2022 в 14:14, z1boris сказал:

При использовании vlan per user необходимо внедрять ip unnumbered.

Не обязательно, если клиенту не выдаёте белые адреса.

Share this post


Link to post
Share on other sites

В 28.01.2022 в 23:16, z1boris сказал:

У клиента кончается аренда, он начинает запрашивать ip-адрес.
Хотя по логу вроде как видно, что в 15:06:47 аренда была продлена, но в 15:06:48 клиент посылает Discover.
И смущает то, что клиент 4 раза посылает Discover, а сервер 4 раза отвечает Offer.
Такое ощущение, что до клиента не долетает Offer.

http://netlab.dhis.org/wiki/ru:software:perl:dhcp_server

+ дхцп релей агенты на свичах = работает без проблем насколько я знаю.

 

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

Офер мог не дойти из за роутинга или ещё каких то особенностей, например его отправили броадкастом и он попал под рейтлимит броадкаста где то на свиче.

 

В 29.01.2022 в 07:38, z1boris сказал:

Какие есть варианты выдать пользователю ip-адрес по влану и маку или по порту?

Вон скрипт, см выше.

Обязательно нужен релей агент, лучше наверное на свичах, тогда опцию82 будет кому добавлять.

 

В 29.01.2022 в 08:14, z1boris сказал:

При использовании vlan per user необходимо внедрять ip unnumbered.

Не обязательно.

 

В 29.01.2022 в 08:14, z1boris сказал:

Как будет происходить выдача ip-адресов? Опишите, пожалуйста, всю схему.

Как обычно.

 

В 29.01.2022 в 10:29, z1boris сказал:

Если проблема действительно в Длинке, то буду писать в тех поддержку.

Толку то, вы что нанимались к длинку обновляльщиком прошивок?

Share this post


Link to post
Share on other sites

В 29.01.2022 в 23:33, Ivan_83 сказал:

http://netlab.dhis.org/wiki/ru:software:perl:dhcp_server

+ дхцп релей агенты на свичах = работает без проблем насколько я знаю.

 

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

Офер мог не дойти из за роутинга или ещё каких то особенностей, например его отправили броадкастом и он попал под рейтлимит броадкаста где то на свиче.

 

Вон скрипт, см выше.

Обязательно нужен релей агент, лучше наверное на свичах, тогда опцию82 будет кому добавлять.

 

Не обязательно.

 

Как обычно.

 

Толку то, вы что нанимались к длинку обновляльщиком прошивок?

Спасибо, попробую ваш dhcp сервер.
Есть жалобы от абонентов - на несколько секунд пропадает интернет. Как раз по логам у этих абонентов проблемы с dhcp.
Вообще проблемы начались после изменения аренды с 12 часов на 5-10 минут. Появилось желание сделать авторизацию не по макам, а по портам. В ISC DHCP пока аренда не закончится, новое устройство на порту не получит IP.
Насчёт тех поддержки - уже был опыт, профиксили баг и выпустили новую прошивку спустя месяц после обращения. Главное писать не на форум, а им на email, отвечают в течение часа.

Edited by z1boris

Share this post


Link to post
Share on other sites

В 30.01.2022 в 03:21, z1boris сказал:

Спасибо, попробую ваш dhcp сервер.
Есть жалобы от абонентов - на несколько секунд пропадает интернет. Как раз по логам у этих абонентов проблемы с dhcp.
Вообще проблемы начались после изменения аренды с 12 часов на 5-10 минут. Появилось желание сделать авторизацию не по макам, а по портам. В ISC DHCP пока аренда не закончится, новое устройство на порту не получит IP.
Насчёт тех поддержки - уже был опыт, профиксили баг и выпустили новую прошивку спустя месяц после обращения. Главное писать не на форум, а им на email, отвечают в течение часа.

 

Брать патченый ISC DHCP, который не учитывает мак

 

Share this post


Link to post
Share on other sites

В 31.01.2022 в 08:07, Antares сказал:

Брать патченый ISC DHCP, который не учитывает мак

 

Спасибо, поставил на 4.2.8 этот патч и патч о котором писал в шапке.

В общем настроил dhcp local relay, с ним всё нормально работает.

Подумываю о vlan per user. Единственный минус, который я вижу, огромная куча вланов.
Но с учётом того, что настройки будут автоматически генерироваться, то какая разница?
Из плюсов - можно использовать дешёвые свитчи. При этом на свитчах не надо настраивать relay, DHCP Server screening, Traffic Segmentation.
Какие ещё есть минусы у vlan per user?

Edited by z1boris

Share this post


Link to post
Share on other sites

В 17.02.2022 в 19:58, z1boris сказал:

Подумываю о vlan per user. Единственный минус, который я вижу, огромная куча вланов.

За 5 месяцев (время считал от идеи до полного внедрения) перевёл сеть c влана на свитч на сабж, в качестве браса это, в разы упростилось управление и координация сетью. Минусов нет, одни плюсы: вендоронезависимость, полная идентичность конфигурации доступа, от которого требуется только снмп, lbd, вланы и трафикконтрол, на агрегации selective qinq. Ну какбы всё.

Share this post


Link to post
Share on other sites

В 17.02.2022 в 21:47, pppoetest сказал:

За 5 месяцев (время считал от идеи до полного внедрения) перевёл сеть c влана на свитч на сабж, в качестве браса это, в разы упростилось управление и координация сетью. Минусов нет, одни плюсы: вендоронезависимость, полная идентичность конфигурации доступа, от которого требуется только снмп, lbd, вланы и трафикконтрол, на агрегации selective qinq. Ну какбы всё.

Ещё ни разу qinq не настраивал, сейчас пытаюсь разобраться. Смотрю ваша схема самая распространённая.
А нельзя ли на свитче доступа упаковывать вланы, чтобы на агрегации не получить огромную пачку вланов?
Например, на свитче агрегации 24 порта по 10G, со свитчей доступа прилетит 24*24 влана = 576 вланов.
Было бы ведь удобнее на свитче агрегации просто пропускать транзитом 24 влана с двойным тегом.

Share this post


Link to post
Share on other sites

Немного разобрался.

На свитче доступа:
1-24 - абоненты
25 - аплинк, воткнут в свитч агрегации

create vlan vlan2001 tag 2001
config vlan vlan2001 add untagged 1:1-1:24
config vlan vlan2001 add tagged 1:25

config qinq ports 1-28 outer_tpid 0x8100
enable qinq
config qinq ports 1 role uni missdrop disable outer_tpid 0x8100 add_inner_tag 0x2
config qinq ports 2 role uni missdrop disable outer_tpid 0x8100 add_inner_tag 0x3
...
config qinq ports 24 role uni missdrop disable outer_tpid 0x8100 add_inner_tag 0x18
config qinq ports 25 role nni missdrop disable outer_tpid 0x8100 add_inner_tag disable


На свитче агрегации:
1 - свитч доступа
25 - брас

create vlan vlan2001 tag 2001
config vlan vlan2001 add tagged 1:1,1:25

Свитч агрегации ничего про QinQ не знает.
В итоге на свитче агрегации будет максимум 24 влана для qinq и 1 влан для управления.

А на брасе получаем что-то вроде eth0.2001.2 - eth0.2001.25

Правильно ли я реализовал? На стенде данная схема работает.

Share this post


Link to post
Share on other sites

В 18.02.2022 в 16:35, z1boris сказал:

А нельзя ли на свитче доступа упаковывать вланы, чтобы на агрегации не получить огромную пачку вланов?

Можно, но зачем? От доступа требуется только 802.1q, а свитчи умеющие упаковывать вланы стоят дороже.

 

В 18.02.2022 в 16:35, z1boris сказал:

Например, на свитче агрегации 24 порта по 10G, со свитчей доступа прилетит 24*24 влана = 576 вланов.

Нет. У меня агрегаторы по 48 портов, и на доступе есть 48-ми портовые, да и колбаски местами есть, а на агрегации колво вланов= количеству свитчeй доступа. При этом доступ ничего не знает про qinq. На агрегаторе selective qinq.

 

В 18.02.2022 в 20:41, z1boris сказал:

Правильно ли я реализовал? На стенде данная схема работает.
 

Правильно, но данная схема, в итоге, выйдет дороже.

Share this post


Link to post
Share on other sites

В 18.02.2022 в 18:01, pppoetest сказал:

Нет. У меня агрегаторы по 48 портов, и на доступе есть 48-ми портовые, да и колбаски местами есть, а на агрегации колво вланов= количеству свитчeй доступа. При этом доступ ничего не знает про qinq. На агрегаторе selective qinq.

 

На агрегации получается что-то типо такого?

port 1 смотрит в сторону свитча доступа
вланы 2-25 - абонентские вланы со свитча доступа
влан 150 - управляющий влан
влан 2001 - внешний тег

create vlan_translation ports 1 add cvid 2-25 svid 2001
create vlan_translation ports 1 replace outer_vid 150 svid 150

Получается ваш свитч агрегации знает про все вланы на свитчах доступа?
Или я что-то не понимаю?

Если есть возможность, приведите, пожалуйста, конфигурацию

Edited by z1boris

Share this post


Link to post
Share on other sites

В 18.02.2022 в 23:22, z1boris сказал:

Получается ваш свитч агрегации знает про все вланы на свитчах доступа?

Нет, агрегатору нужно только сопоставление номера порта, номер коммутатора в колбасе, и s-vlan.

с-vlans 101-999, s-vlans 1110-1999, менедж влан 2000, ну и само собой мту поднять хотя бы на 4 байта

вот кусок конфига агрегатора:
 

vlan 1290-1327
!
...

class-map chain0
 match vlan range 101-148
!
class-map chain1
 match vlan range 149-196
!
class-map chain2
 match vlan range 197-244
!
class-map chain3
 match vlan range 245-292
!
class-map chain4
 match vlan range 293-340
!
....

policy-map port11
 class chain0
 add s-vid 1298
 exit
 class chain1
 add s-vid 1299
 exit
!
policy-map port12
 class chain0
 add s-vid 1294
 exit
 class chain1
 add s-vid 1295
 exit
 class chain2
 add s-vid 1296
 exit
 class chain3
 add s-vid 1297
 exit
!
....

Interface Ethernet1/0/11
 service-policy input port11
 switchport mode hybrid
 switchport hybrid allowed vlan 2000 tag
 switchport hybrid allowed vlan 1298-1299 untag
!
Interface Ethernet1/0/12
 service-policy input port12
 switchport mode hybrid
 switchport hybrid allowed vlan 2000 tag
 switchport hybrid allowed vlan 1294-1297 untag
!
...

Interface Ethernet1/0/52
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 1290-1327;2000
!

 

Share this post


Link to post
Share on other sites

В 18.02.2022 в 22:57, pppoetest сказал:

Нет, агрегатору нужно только сопоставление номера порта, номер коммутатора в колбасе, и s-vlan.

с-vlans 101-999, s-vlans 1110-1999, менедж влан 2000, ну и само собой мту поднять хотя бы на 4 байта

вот кусок конфига агрегатора:
 

vlan 1290-1327
!
...

class-map chain0
 match vlan range 101-148
!
class-map chain1
 match vlan range 149-196
!
class-map chain2
 match vlan range 197-244
!
class-map chain3
 match vlan range 245-292
!
class-map chain4
 match vlan range 293-340
!
....

policy-map port11
 class chain0
 add s-vid 1298
 exit
 class chain1
 add s-vid 1299
 exit
!
policy-map port12
 class chain0
 add s-vid 1294
 exit
 class chain1
 add s-vid 1295
 exit
 class chain2
 add s-vid 1296
 exit
 class chain3
 add s-vid 1297
 exit
!
....

Interface Ethernet1/0/11
 service-policy input port11
 switchport mode hybrid
 switchport hybrid allowed vlan 2000 tag
 switchport hybrid allowed vlan 1298-1299 untag
!
Interface Ethernet1/0/12
 service-policy input port12
 switchport mode hybrid
 switchport hybrid allowed vlan 2000 tag
 switchport hybrid allowed vlan 1294-1297 untag
!
...

Interface Ethernet1/0/52
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 1290-1327;2000
!

 


Спасибо, действительно работает. Эта схема намного лучше, так как позволяет использовать абсолютно любые свитчи доступа.

Ещё есть вопросы с резервированием.
Два свитча доступа подключены друг к другу и оба подключены к свитчу агрегации (топология кольцо).
Надо разобраться как настраивать mstp.

Edited by z1boris

Share this post


Link to post
Share on other sites

В 19.02.2022 в 17:50, z1boris сказал:

Надо разобраться как настраивать mstp.

 

Тут не помогу, у нас колец нет.

Share this post


Link to post
Share on other sites

Уважаемые, подскажите.

Что можно поставить под linux в качестве dhcp-relay на который будет приходить много qinq пакетов?

А релей должен в curcuit_id вставить имя интерфейса исходя из c-vlan, s-vlan.

Идеально, не создавать клиентские интерфейсы на dhcp-relay.

 

Ну, или создавать все клиентские интерфейсы. Тогда в curcuit_id вставлять имя интерфейса.

Edited by Ser

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.