Пулы Вланов

Добавлена новая возможность создавать пулы вланов. Там всё достаточно просто, при включенном VLANGEN_SUPPORT=1 в alter.ini появится такая картинка на главной в разделе «Справочники». Делается всё достаточно просто, схоже на создание сети, т.е. первый ип = первый влан, последний ип = последний влан.
Для полноценной работы модуля требуется установить expect. Актуальная сборка убиллинга 0.6.3 4120 и выше.

Создание пула

Пока только поддержка стандартных вланов, Q-in-Q планируется чуть позже.

Новый тип сети

Так же появился новый тип сети, специально предназначеный для работы с этим механизмом. Тут никаких изменений нет, нужно создать сеть, только указать тип сети «DHCP option 82 + vlan per user».

Для него так же предусмотрен новый шаблон для DHCP.






option82_vpu.template
 class "{HOSTNAME}" {
match if suffix(option agent.remote-id,5) = "{REMOTEID}" 
and binary-to-ascii(10, 16, "", substring(option agent.circuit-id,2,2)) = "{CIRCUITID}"; }
 
pool {
range {IP};
allow members of "{HOSTNAME}";
}
 
host {HOSTNAME} {
fixed-address {IP};
} 

При желании изменяется под ваши нужды. Сейчас в силу обстоятельств шаблон понимает remote-id только из 5 последних символов. Если нужно целиком достаточно поправить строку

option82_vpu.template
match if suffix(option agent.remote-id,5) = "{REMOTEID}"

на

option82_vpu.template
match if option agent.remote-id = "{REMOTEID}"

Влан терминатор

Дальше нужно закрепить за сетью и пулом вланов какое-то устройство которое будет это терминировать (в модуле «Сервера доступа (NAS)»). На данный момент поддерживается только циско л3 свичи в виде 3550\3750. И всё тоже что имеет такой синтаксис. Будет расширятся по мере надобности линейка циско свичей, а так же планируется поддержка FreeBSD и Linux.



В целом я думаю тоже понятно, но пройдемся по полям, а именно зачем каждое поле:


  1. NetID - Для того что бы закрепить терминатор за пулом адресов.
  2. Vlan Pool ID - Соотвественно закрепить за пулом вланов.
  3. IP - IP адрес, для того что бы знать куда засылать данные (используется SSH).
  4. Логин - Те же учетные данные для входа.
  5. Пароль - Без коментариев. Желательно что бы совпадал с enable или паролем от рута при входу через su.
  6. Remote-ID - Нужен как раз для нашего DHCP шаблона.
  7. Интерфейс - Для конфигурации влана, как аннамберед интерфейса нужно указать родительский интерфейса (пример Loopback 200).
  8. Relay Address - Адрес куда релеить DHCP запросы.



Влан абоненту

Открываем профайл пользователя, ищем черную магию - и видим там выделенный значек.
Открываем его и наблюдаем следующую картину. А там уже выбираем нужный пул вланов и оно автоматом назначит первый свободный влан. Так же при добавлении влана, запускается скрипт, который подымет нужный влан на циске (в планах FreeBSD, Linux).

Конфигурация Cisco 35xx\37xx

!
hostname terminator
!
aaa session-id common
ip subnet-zero
ip routing
ip domain-name terminator
ip dhcp relay information option
!
!
ip dhcp snooping vlan 100-300
ip dhcp snooping information option format remote-id string 11111
ip dhcp snooping
!
interface Loopback2
 ip address 192.168.100.1 255.255.252.0
 no ip redirects
 no ip unreachables
!
interface Vlan1
 no ip address
 shutdown
!
interface Vlan8
 ip address 192.168.10.2 255.255.255.252
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.10.1
no ip http server
no ip http secure-server
!
end

Изменений минимум собсно. Самое ключевое это назначить на loopback нужный адрес и маску. И указать:

  1. что бы врезалась в опцию 82 remote-id
  2. обязательно указать на каких вланах будет snooping иначе не будет circuit-id
  3. я ещё указал бы что будет приходить remote-id, потому что у меня прилетала какая-то каша, и не вышло нормально отдавать адрес, поэтому дхцп конфиг понимает remote-id только из пяти символов (цифры\буквы как угодно), собсно это меняется всё в том же dhcp конфиге.
  4. и последняя строка включит snooping глобально
ip dhcp relay information option
ip dhcp snooping vlan 100-300
ip dhcp snooping information option format remote-id string 11111
ip dhcp snooping

Ещё важно понимать, что если ваш DHCP сервер не знает где живут абоненты в данном случае - то адреса он не получит. Для этого нужно прописать маршрут, как в моем случае на сеть 192.168.100.0/22, а шлюз для сети - 192.168.10.2. Т.е. что-то в виде:

route add 192.168.100.0/22 192.168.10.2

Плюс конечно же по пути не заблокировать ничего фаерволом.

Так же если хотите использовать вланы выше 1000 - то нужно сделать

vtp mode off

ну и вообще хорошо если сделать сходу

vlan 2-1000

или

vlan 1000-2000

или

vlan 100-300,1000-1500,2300-2600

это, что бы не было проблем с транками при vtp mode off. и да незабываем, что 3550 умеет только 1к активных вланов ,хотя я не думаю, что кто-то в здравом уме будет на них столько вешать, для 3550-24\48 примерно 400SVI, для 3550-12Т до 800 при включеном sdm prefer routing, 3750g - 1000, 4948 - 2000, 4948-e\4900m 4000.

Конфигурация свичей доступа

На стадии бета теста, если есть какие-то мибы для свичей, всё равно какие - кидайтесь ими в меня, на почту l1ght13aby@yahoo.com. В часности интересуют оиды для создания вланов, смена PVID и в принципе всё. Буду очень признателен.

Для использования нужно собственно две вещи. SNMP шаблон в следующем формате и положить его в config/autoconfig

[define]
TYPE = "simple"
DEVICE = "Dlink DES 1228ME"
CHECK = ".1.3.6.1.2.1.17.7.1.4.3.1.5"

[CREATE]
OID = ".1.3.6.1.2.1.17.7.1.4.3.1.5.VLAN"
TYPE = "i"
VALUE = "4"

[CHANGE]
OID = ".1.3.6.1.2.1.17.7.1.4.5.1.1.PORT"
TYPE = "u"
VALUE = "VLAN"

[SAVE]
OID = ".1.3.6.1.4.1.171.12.1.2.6.0"
TYPE = "i"
VALUE = "5"

И заполнить данные в ?module=switchlogin




Обязательно указывать snmp community с RW правами! Выглядит это следующим образом:







Смена влана по маку ону

Итак, оно работает на данный момент с BDCOM3310\Extralink 4GE (на других бдкомах не проверял). Работает оно в связке с модулем «Понизатор». Т.е. нужны заполненные данные по онушке и обязательно указанный логин в понизаторе. Так же для ОЛТ-а следует указать snmp community с rw правами в модуле свичей. Так же требует что бы онушке уже был назначен влан, например что бы в шаблоне присутствовала строка

cmd-sequence 1 epon onu all-port ctc vlan mode tag 2

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

Настройка свичей на примере Dlink

Тестировалсь связка DGS-3120-24SC + 1228ME/B1. Выглядит следующим образом: На обоих свичах нужны права RW для SNMP.

create snmp community pub view CommunityView read_write

Так же для облегчения собственной жизни (а так же в силу того, что функционалом не предусмотрено учитывание апнлинковых портов свичей доступа) советую использовать vlan trunk.

enable vlan_trunk
config vlan_trunk ports UPLINK_PORT state enable

Тоже самое справедливо и для DGS-3120 как для свитча агрегации, только
в его случае стоит указать DOWNLINK порт в сторону нашего 1228МЕ.
Вот таким вот легким способом заставляем длинк вести себя как
нормальный свитч ^_^
Так же обязательны к заполнению свич где пользователь находится
и собсно порт.


Ну и конечно заполненые данные по свичам в модуле switchlogin (его описание чуть выше). И есесно не забыть на карте свичей указать правду в аплинковых свичах. В моем случае была цепочка 1228→3120→cisco 3550

Кастомные скрипты телнет\ссш для создания вланов на свичах

Появилась поддержка кастомных скриптов для ссш\телнет подключений к свичам. Суть проста: создаем свитч, указываем тип подключения ССШ или Телнет (на самом деле роли особой не играет, всё зависит от вашего скрипта). Дальше при вызове «Изменить влан на порту коммутатора» будет вызван скрипт из config/scripts/имя_модели_свича и ему будут переданы параметры switch_login switch_password switch_ip vlan port Т.е. что-то наподобие config/scripts/DlinkDes1210-28 admin admin 192.168.100.25 4012 5

vlangen.txt · Последние изменения: 2016/09/16 21:51 — l1ght
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki