SuperVlan: различия между версиями
Строка 44: | Строка 44: | ||
Создаю таблицу |
Создаю таблицу |
||
<PRE> |
<PRE> |
||
− | CREATE TABLE dhcphosts_hosts_vlans |
+ | CREATE TABLE dhcphosts_hosts_vlans |
+ | ( |
||
− | ip int(11) default NULL, |
+ | ip int(11) default NULL unique, |
vlan int(11) default NULL |
vlan int(11) default NULL |
||
+ | ); |
||
+ | |||
+ | </PRE> |
||
+ | |||
+ | Для теста - пробую распределить "реальные" адреса по саб-вланам в супервлане: |
||
+ | <PRE> |
||
+ | DGS-3627G:admin#show sub_vlan |
||
+ | Command: show sub_vlan |
||
+ | |||
+ | Sub VID Status Super VID IP Range |
||
+ | ------- -------- --------- --------------------- |
||
+ | 2000 Active 3000 99.0.0.2-99.0.0.12 |
||
+ | 99.0.0.20-99.0.0.29 |
||
+ | 2001 Active 3000 99.0.0.13-99.0.0.19 |
||
+ | Total Entries: 4 |
||
+ | </PRE> |
||
+ | 2001-му влану достались: |
||
+ | <PRE> |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.13), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.14), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.15), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.16), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.17), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.18), 2001; |
||
+ | INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.19), 2001; |
||
</PRE> |
</PRE> |
Версия 14:13, 21 августа 2011
SuperVlan на DGS3612G
Постановка задачи
Хочется странного - есть сеть реальных адресов неизвестной на момент проектирования длинны. требуется спланировать сеть с наиболее разумным распределением адресного пространства для клиентов. Вариант "Плоская одноранговая сеть" исключен т.к. для коммутаторов 3200-26 возможно возникновение проблемы с хешами.
План сети (в работе)
Для экономии адресов хочу использовать фичу SuperVLAN коммутатора DGS3612. Идея в том, что несмотря на то что сеть разбита на вланы, все клиенты будут получать адреса из общего диапазона, иметь один общий шлюз и т.р. Для связи между вланами - использую proxy arp
Схема сети (предварительный план)
вместо реальной сети использую 99.0.0.0/20, на данный момент сети еще нет, в процессе получения
[DES-3200-26, VLAN2000]---VLAN2000---+ +-----[DGS3627G--SuperVlan3000 (sub-vlans 2000-XXXX), ip 99.0.0.1/22 ]==trunk vlans 2000-XXXX and mgt vlans===[router, dhcp, eth0.2000 - 0.xxxx for unauth users ] [DES-3200-26, VLAN2000]---VLANXXXX---+
Все коммутаторы уровня дома включаются в DGS, на DGS настроен SuperVlan для вланов 2000-ХХХХ (ХХХХ - последний клиентский влан, номер не известен).
Логика работы
- Включить клиента в порт. Клиенту через релей на свитче доступа будет выдан временный неавторизованый адрес (из сеть 10.2.0.0/16, сеть /24 на каждый влан, 3-й октет совпадает с номером влана -2000, например для влана 2010 - 10.2.10.0.24)
- Клиент (из-за правил файрволла на свитче) может подключиться только к биллингу.
- Клиент вводит свой логин и пароль, биллиг присваивает ему реальный адрес из пула для этого влана
- Клиент получает реальный адрес и работает.
Пулы не являются непрерывными, по сути это просто списки адресов. Однако пулы предварительно должны быть привязаны к вланам.
- Если у клиента отицательный баланс присвоить ему адрес из сети 10.3.0.0/16, по аналогии с неавторизованным, перенаправить на биллинг.
Перенаправление клиентов-должников или неавторизованных
На роутере:
Напомню:
- 10.2.0.0/16 выдается неавторизованным (неизвестным) и для них страница авторизации - 172.16.255.4:80
- 10.3.0.0/16 выдается известным должникам и для них страница - 172.16.255.6:80
Распределение реальных адресов по VLAN
Т.к. не смотря на то что фактически клиенты будут находиться в разных сегментах (влан), выдавать адреса им будем из одной сети (99.0.0.0/20)
Однако адреса жестко привязаны к VLAN id (настраивается на коммутаторе). Потому, нам нужно иметь предварительно-сконфигурированные диапазоны.
Учитывая что диапазоны адресов описываются как списки, которые никак не привязаны к сетевым маскам (по сути просто список по /32), такой же логике я буду следовать и в биллинге.
Создаю таблицу
CREATE TABLE dhcphosts_hosts_vlans ( ip int(11) default NULL unique, vlan int(11) default NULL );
Для теста - пробую распределить "реальные" адреса по саб-вланам в супервлане:
DGS-3627G:admin#show sub_vlan Command: show sub_vlan Sub VID Status Super VID IP Range ------- -------- --------- --------------------- 2000 Active 3000 99.0.0.2-99.0.0.12 99.0.0.20-99.0.0.29 2001 Active 3000 99.0.0.13-99.0.0.19 Total Entries: 4
2001-му влану достались:
INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.13), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.14), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.15), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.16), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.17), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.18), 2001; INSERT into dhcphosts_hosts_vlans INET_ATON(90.0.0.19), 2001;