Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:modules:vlan:ru [2010/04/27 03:25] 127.0.0.1 внешнее изменение |
abills:docs:modules:vlan:ru [2015/12/05 17:50] (текущий) |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
====Возможности==== | ====Возможности==== | ||
+ | * vlan-per-user (Vlan на абонента) | ||
* Создание Vlan локальнео и на удалёных серверах | * Создание Vlan локальнео и на удалёных серверах | ||
* Создание для Vlan PPPoE сервера | * Создание для Vlan PPPoE сервера | ||
* Создание для Vlan Dhcp сервера | * Создание для Vlan Dhcp сервера | ||
+ | * Vlan unnumbered IP | ||
====Установка==== | ====Установка==== | ||
Строка 32: | Строка 33: | ||
^$conf{VLAN_IF_DESTROY}='if [ `uname` = Linux ]; then /usr/bin/sudo /sbin/ifconfig %PARENT_INTERFACE%.%VLAN_ID% down; /usr/bin/sudo /sbin/vconfig rem %PARENT_INTERFACE%.%VLAN_ID%; else /sbin/ifconfig vlan%VLAN_ID% destroy; fi'; | Уничтожение Vlan | | ^$conf{VLAN_IF_DESTROY}='if [ `uname` = Linux ]; then /usr/bin/sudo /sbin/ifconfig %PARENT_INTERFACE%.%VLAN_ID% down; /usr/bin/sudo /sbin/vconfig rem %PARENT_INTERFACE%.%VLAN_ID%; else /sbin/ifconfig vlan%VLAN_ID% destroy; fi'; | Уничтожение Vlan | | ||
^$conf{VLAN_STATIC}='NAS_ID=vlan1,vlan2...;NAS_ID=...'; | Список системных вланов которые не подлежать изменению\\ **Пример:**\\ на сервера доступа 2 создать два статических влана с номерами 1 и 8, на сервере 3 виланы с номерами 2 и 3\\ \\ $conf{VLAN_STATIC}='1=vlan1,vlan8,13;3=vlan2,vlan3'| | ^$conf{VLAN_STATIC}='NAS_ID=vlan1,vlan2...;NAS_ID=...'; | Список системных вланов которые не подлежать изменению\\ **Пример:**\\ на сервера доступа 2 создать два статических влана с номерами 1 и 8, на сервере 3 виланы с номерами 2 и 3\\ \\ $conf{VLAN_STATIC}='1=vlan1,vlan8,13;3=vlan2,vlan3'| | ||
- | Только для Freebsd. | + | ^$conf{VLAN_CMD_SHOW}=1; | Показывать системные команды перед выполнением | |
- | ^$conf{VLAN_IF_CREATE}="/sbin/ifconfig vlan%VLAN_ID% create vlan %VLAN_ID% vlandev %PARENT_INTERFACE% up";|Команда создания Vlan | | + | |
- | ^$conf{VLAN_IF_IP}="/sbin/ifconfig vlan%VLAN_ID% inet %VLAN_IF_IP% netmask %VLAN_IF_NETMASK%";|назначение IP адреса для Vlan | | + | Пример для Freebsd. \\ |
- | ^$conf{VLAN_IP_DELETE}="/sbin/ifconfig vlan%VLAN_ID% delete %VLAN_IF_IP%";|Удаление IP адреса с Vlan | | + | |
- | ^$conf{VLAN_IF_DESTROY}="/sbin/ifconfig vlan%VLAN_ID% destroy";| Уничтожение Vlan | | + | ядро нужно скомпилировать с опцией: |
+ | |||
+ | device vlan | ||
+ | |||
+ | ^$conf{VLAN_IF_CREATE}='/sbin/ifconfig vlan%VLAN_ID% create vlan %VLAN_ID% vlandev %PARENT_INTERFACE% up';|Команда создания Vlan | | ||
+ | ^$conf{VLAN_IF_IP}='/sbin/ifconfig vlan%VLAN_ID% inet %VLAN_IF_IP% netmask %VLAN_IF_NETMASK%';|назначение IP адреса для Vlan | | ||
+ | ^$conf{VLAN_IP_DELETE}='/sbin/ifconfig vlan%VLAN_ID% delete %VLAN_IF_IP%';|Удаление IP адреса с Vlan | | ||
+ | ^$conf{VLAN_IF_DESTROY}='/sbin/ifconfig vlan%VLAN_ID% destroy';| Уничтожение Vlan | | ||
^$conf{VLAN_CREATE_PPPOE}="";| Скрипт запуска pppoe сервисов в VLan. \\ **Пример запуска mpd5 **. \\ $conf{VLAN_CREATE_PPPOE}="/usr/abills/misc/mpd/mpd_configure.pl INTERFACES=%INTERFACES% OUTPUT_FILE=/tmp/mpd.conf DNS_SERVER=10.1.1.1 NAS_IP=%NAS_IP%; /usr/local/bin/sudo /usr/local/sbin/mpd5 -b -f /tmp/mpd.conf" \\ \\ Дополнительные параметры которые может передавать биллинг внешнему обработчику: \\ %INTERFACES% - Название интерфейсов \\ %NAS_IP% - IP удалённого сервера доступа на котором будет запускаться програма \\ | | ^$conf{VLAN_CREATE_PPPOE}="";| Скрипт запуска pppoe сервисов в VLan. \\ **Пример запуска mpd5 **. \\ $conf{VLAN_CREATE_PPPOE}="/usr/abills/misc/mpd/mpd_configure.pl INTERFACES=%INTERFACES% OUTPUT_FILE=/tmp/mpd.conf DNS_SERVER=10.1.1.1 NAS_IP=%NAS_IP%; /usr/local/bin/sudo /usr/local/sbin/mpd5 -b -f /tmp/mpd.conf" \\ \\ Дополнительные параметры которые может передавать биллинг внешнему обработчику: \\ %INTERFACES% - Название интерфейсов \\ %NAS_IP% - IP удалённого сервера доступа на котором будет запускаться програма \\ | | ||
+ | |||
+ | |||
+ | ===Переменные=== | ||
+ | |PARENT_INTERFACE| Родительский интерфейс для Vlan | | ||
+ | |LOGIN| Логин абонента | | ||
+ | |VLAN_ID| номер Vlan | | ||
+ | |VLAN_IF_IP| IP для Vlan | | ||
+ | |VLAN_IF_NETMASK| Netmask для Vlan | | ||
+ | |VLAN_IF_BIT_NETMASK | Битная маска сети | | ||
+ | |DHCP| Включать DHCP в Vlan | | ||
+ | |PPPOE| Включать PPPoE в Vlan | | ||
+ | |UNNUMBERED_IP| Unnumbered Адрес абонента | | ||
Для удобства работы и создания внешних программ обработки Vlan система устанавливает следующие переменные окружения перед выполнением команд. | Для удобства работы и создания внешних программ обработки Vlan система устанавливает следующие переменные окружения перед выполнением команд. | ||
Строка 47: | Строка 67: | ||
+ | Если планируется использовать UNNUMBERED_IP тогда нужно в конфигурационном файле добавить\\ | ||
+ | **FreeBSD** | ||
+ | ^$conf{VLAN_IF_CREATE}='/usr/local/bin/sudo /sbin/ifconfig vlan%VLAN_ID% create; /usr/local/bin/sudo /sbin/ifconfig vlan%VLAN_ID% vlan %VLAN_ID% vlandev %PARENT_INTERFACE%'; | | ||
+ | ^$conf{VLAN_IF_IP}='if [ x%UNNUMBERED_ADD% != x1 ]; then /usr/local/bin/sudo /sbin/ifconfig vlan%VLAN_ID% %VLAN_IF_IP% netmask %VLAN_IF_NETMASK%; fi; /usr/local/bin/sudo /sbin/route add -net %UNNUMBERED_IP%/%VLAN_IF_BIT_NETMASK% -iface vlan%VLAN_ID%'; | | ||
+ | ^$conf{VLAN_IP_DELETE}='/usr/local/bin/sudo /sbin/ifconfig vlan%VLAN_ID% delete %VLAN_IF_IP%';| Удаление IP адреса с Vlan | | ||
+ | ^$conf{VLAN_IF_DESTROY}='/usr/local/bin/sudo /sbin/ifconfig vlan%VLAN_ID% destroy'; | Уничтожение Vlan | | ||
- | Для FreeBSD ядро нужно скомпилировать с опцией: | ||
- | device vlan | + | **Linux**\\ |
+ | |||
+ | ^$conf{VLAN_IF_CREATE}='/sbin/vconfig add %PARENT_INTERFACE% %VLAN_ID%';| Команда создания Vlan | | ||
+ | ^$conf{VLAN_IF_IP}='/sbin/ip link set %PARENT_INTERFACE%.%VLAN_ID% up; /usr/bin/sudo /sbin/ip route add %UNNUMBERED_IP% dev %PARENT_INTERFACE%.%VLAN_ID% src %VLAN_IF_IP%'; |назначение IP адреса для Vlan | | ||
+ | ^$conf{VLAN_IP_DELETE}='/sbin/ip addr del %UNNUMBERED_IP% dev %PARENT_INTERFACE%.%VLAN_ID%';| Удаление IP адреса с Vlan | | ||
+ | ^$conf{VLAN_IF_DESTROY}='/sbin/ip link set %PARENT_INTERFACE%.%VLAN_ID% down; /usr/bin/sudo /sbin/vconfig rem %PARENT_INTERFACE%.%VLAN_ID%'; | Уничтожение Vlan | | ||
+ | ^$conf{VLAN_STATIC}='NAS_ID=vlan1,vlan2...;NAS_ID=...'; | Список системных вланов которые не подлежать изменению\\ | ||
Строка 118: | Строка 149: | ||
www ALL = NOPASSWD: /sbin/ipfw | www ALL = NOPASSWD: /sbin/ipfw | ||
www ALL = NOPASSWD: /sbin/ifconfig | www ALL = NOPASSWD: /sbin/ifconfig | ||
+ | www ALL = NOPASSWD: /sbin/route | ||
www ALL = NOPASSWD: /usr/local/sbin/mpd5 | www ALL = NOPASSWD: /usr/local/sbin/mpd5 | ||
www ALL = NOPASSWD: /usr/local/etc/rc.d/isc-dhcpd | www ALL = NOPASSWD: /usr/local/etc/rc.d/isc-dhcpd | ||
Строка 140: | Строка 172: | ||
abills_admin ALL = NOPASSWD: /usr/local/etc/rc.d/isc-dhcpd | abills_admin ALL = NOPASSWD: /usr/local/etc/rc.d/isc-dhcpd | ||
abills_admin ALL = NOPASSWD: /sbin/ifconfig | abills_admin ALL = NOPASSWD: /sbin/ifconfig | ||
+ | abills_admin ALL = NOPASSWD: /sbin/route | ||
abills_admin ALL = NOPASSWD: /usr/libexec/pppoed | abills_admin ALL = NOPASSWD: /usr/libexec/pppoed | ||
abills_admin ALL = NOPASSWD: /bin/kill | abills_admin ALL = NOPASSWD: /bin/kill | ||
abills_admin ALL = NOPASSWD: /usr/local/sbin/mpd5 | abills_admin ALL = NOPASSWD: /usr/local/sbin/mpd5 | ||
- | abills_admin ALL = NOPASSWD: /sbin/ipfw | + | abills_admin ALL = NOPASSWD: /sbin/ipfw |
===Перезагрузка всей конфигурации=== | ===Перезагрузка всей конфигурации=== |