Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:modules:vlan:ru [2011/12/14 11:59]
asmodeus [Возможности]
abills:docs:modules:vlan:ru [2015/12/05 17:50] (текущий)
Строка 8: Строка 8:
  
 ====Возможности==== ====Возможности====
 +  * vlan-per-user (Vlan  на абонента)
   * Создание Vlan  локальнео и на удалёных серверах   * Создание Vlan  локальнео и на удалёных серверах
   * Создание для Vlan PPPoE сервера   * Создание для Vlan PPPoE сервера
Строка 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 | +
-^$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  удалённого сервера доступа на котором будет запускаться програма \\  ​|+
  
 +Пример для ​ Freebsd. \\
  
-Переменные: +ядро нужно скомпилировать с опцией:
-|VLAN_IF_NETMASK|| +
-|LOGIN|| +
-|VLAN_ID|| +
-|VLAN_IF_IP|| +
-|DHCP|| +
-|PPPOE|| +
-|UNNUMBERED_IP||+
  
-Если планируется использовать UNNUMBERED_IP тогда нужно в конфигурационном файле добавить ​+  device ​         vlan
  
-^$conf{VLAN_IF_CREATE}='/​sbin/​vconfig add %PARENT_INTERFACE% %VLAN_ID%';​| Команда создания Vlan | +^$conf{VLAN_IF_CREATE}='/​sbin/​ifconfig vlan%VLAN_IDcreate vlan %VLAN_ID% ​vlandev %PARENT_INTERFACE% up';​|Команда создания Vlan | 
-^$conf{VLAN_IF_IP}='/​sbin/​ip link set %PARENT_INTERFACE%.%VLAN_ID% ​up; /​usr/​bin/​sudo /sbin/ip route add %UNNUMBERED_IPdev  ​%PARENT_INTERFACE%.%VLAN_ID% src %VLAN_IF_IP%'; ​ |назначение IP адреса для Vlan | +^$conf{VLAN_IF_IP}='/​sbin/​ifconfig vlan%VLAN_ID% ​inet %VLAN_IF_IPnetmask ​%VLAN_IF_NETMASK%';​|назначение IP адреса для Vlan | 
-^$conf{VLAN_IP_DELETE}='/​sbin/​ip addr del %UNNUMBERED_IPdev %PARENT_INTERFACE%.%VLAN_ID%';| Удаление IP адреса с Vlan | +^$conf{VLAN_IP_DELETE}='/​sbin/​ifconfig vlan%VLAN_IDdelete ​%VLAN_IF_IP%';​|Удаление 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_IF_DESTROY}='/​sbin/​ifconfig vlan%VLAN_ID% ​destroy';| Уничтожение Vlan | 
-^$conf{VLAN_STATIC}='​NAS_ID=vlan1,​vlan2...;NAS_ID=...'| Список системных вланов ​которые ​не подлежать изменению\\ +^$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 система устанавливает следующие переменные окружения перед выполнением команд.
Строка 65: Строка 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=...';​ | Список системных вланов которые не подлежать изменению\\ ​
  
  
Строка 136: Строка 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
Строка 158: Строка 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
  
 ===Перезагрузка всей конфигурации=== ===Перезагрузка всей конфигурации===