Перейти к содержимому
Калькуляторы

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;
		}
	}
}


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

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

В клиентах.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

В клиентах.

 

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

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

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

в сторону vlan per user

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

в сторону vlan per user

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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, отвечают в течение часа.

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 1/29/2022 at 12:29 PM, z1boris said:

Собрал стенд из dgs-3000

Freeradius делатет DHCP. Не нужно делать другое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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?

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

На свитче доступа:
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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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

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

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

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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
!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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.

Изменено пользователем z1boris

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

Изменено пользователем Ser

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не уверен что есть релеи которые хотя бы один влан прожёвывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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