Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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
  
 ===Перезагрузка всей конфигурации=== ===Перезагрузка всей конфигурации===