Accel-ppp L3 router
Старт сессии по некласифицированному пакету через L3 router.
Вариант установки на чистые ОС.
1. Настройка сервера доступа.
1.1. Установка accel-ppp
Воспользуйтесь ссылками:
Ручная установка - тут
Автоматическая установка - тут
1.2. Конфигурирование accel-ppp.
[modules] log_file ipoe radius sigchld shaper [core] log-error=/var/log/accel-ppp/core.log thread-count=4 [ipoe] username=lua:username lua-file=/etc/accel-ppp.lua lease-time=300 max-lease-time=300 attr-l4-redirect=L4-Redirect shared=1 ifcfg=1 mode=L3 start=up proto=100 interface=eth1,mode=L3 local-net=10.22.0.0/24 verbose=7 [dns] dns1=8.8.8.8 dns2=8.8.8.4 [radius] dictionary=/usr/local/share/accel-ppp/radius/dictionary nas-identifier=nas1 nas-ip-address=0.0.0.0 server=10.10.1.1,secret,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0 dae-server=0.0.0.0:3799,secret verbose=100 timeout=3 max-try=3 acct-delay-time=0 [client-ip-range] 0.0.0.0/0 [log] log-file=/var/log/accel-ppp/accel-ppp.log log-emerg=/var/log/accel-ppp/emerg.log log-fail-file=/var/log/accel-ppp/auth-fail.log log-debug=/var/log/accel-ppp/debug.log copy=1 color=1 level=7 [shaper] attr=Filter-Id ifb=ifb0 up-limiter=htb down-limiter=htb cburst=1375000 r2q=10 quantum=1500 verbose=0 [cli] verbose=1 telnet=127.0.0.1:2000 tcp=127.0.0.1:2001 [connlimit] limit=10/min burst=3 timeout=60
Не забудьте сверить секцию [Radius] со справочником "Сервера NAS"
Секция [ipoe] - режим L3, слушает на интерфейсе eth1, старт от если есть пакеты из 10.22.0.0/24
1.2. Конфигурирование iptables и ipset.
Добавьте правила NAT для пользовательской подсети:
iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -j MASQUERADE
Должники.
Адреса абонентов имеющие отрицательную задолженность, с учётом специфики схемы L3 будут заносится в списки ipset.
Создайте список ipset:
ipset -N l4 iphash
Создайте для них следующие правила:
iptables -A FORWARD -p udp -m multiport --port 53 -j ACCEPT iptables -A FORWARD -p tcp -d stat.lan -j ACCEPT iptables -A FORWARD -p tcp -s stat.lan -j ACCEPT iptables -A FORWARD -m set --match-set l4 src -j DROP
1.3. Оптимизация системы:
sysctl.conf
net.ipv4.ip_forward=1 net.ipv4.neigh.default.gc_thresh1 = 1024 net.ipv4.neigh.default.gc_thresh2 = 2048 net.ipv4.neigh.default.gc_thresh3 = 4096 # turn off selective ACK and timestamps net.ipv4.tcp_sack = 0 net.ipv4.tcp_timestamps = 0 # memory allocation min/pressure/max. # read buffer, write buffer, and buffer space net.ipv4.tcp_rmem = 10000000 10000000 10000000 net.ipv4.tcp_wmem = 10000000 10000000 10000000 net.ipv4.tcp_mem = 10000000 10000000 10000000 net.core.rmem_max = 524287 net.core.wmem_max = 524287 net.core.rmem_default = 524287 net.core.wmem_default = 524287 net.core.optmem_max = 524287 net.core.netdev_max_backlog = 300000 net.core.netdev_tstamp_prequeue = 0
Пример нормального распределения прерываний на примере карты Intel
cat /proc/interrupts 55: 1373298 8 0 0 0 0 0 0 PCI-MSI-edge eth2-TxRx-0 56: 13 1373293 0 0 0 0 0 0 PCI-MSI-edge eth2-TxRx-1 57: 13 8 1373285 0 0 0 0 0 PCI-MSI-edge eth2-TxRx-2 58: 13 8 0 1373285 0 0 0 0 PCI-MSI-edge eth2-TxRx-3 59: 13 8 0 0 1373285 0 0 0 PCI-MSI-edge eth2-TxRx-4 60: 11 8 0 1 0 1373286 0 0 PCI-MSI-edge eth2-TxRx-5 61: 8 7 3 0 2 0 1373285 1 PCI-MSI-edge eth2-TxRx-6 62: 2 1 0 0 9 9 0 1373285 PCI-MSI-edge eth2-TxRx-7
1.4. Проверка rc.local
Автозагрузка модуля ipoe.
insmod /opt/accel-ppp-code/build/drivers/ipoe/driver/ipoe.ko
Автозагрузка акселя.
/usr/local/sbin/accel-pppd -d -p /var/run/accel-pppd.pid -c /etc/accel-ppp.conf
Создание списка для должников.
/usr/sbin/ipset -N l4 iphash
Если используются реальные адреса, включить proxy_arp.
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
2. Настройка билинга.
2.1. Установка билинга.
2.2. Проверка системных опций.
Настройки-Системные опции-Параметры-Дополнительно:

- Radius перезапуск.
- выкидывание

Системные пути для Centos

Системные пути для Debian

Параметры Accel-IPoE

Для должников ставим шейпер и список - l4
2.3. Создание сегмента для серых адресов.
Пример сегмента сети

2.4. Создание сегмента для реальных адресов.
Настраивается аналогично сегменту серых адресов.
2.5. Настройка справочника Сервера NAS

Настройки сервера NAS
2.6. Заведение тестового абонента.

- Тариф выберите - Tarif1
- Сегмент - Тест
- Локальный IP должен получиться из подсети 10.22.0.0/24
2.7. Пример тарифа с ограничением скорости 10Мбит.

3. Настройка L3 роутера.
Если используются софтовый роутер:
net.ipv4.ip_forward=1
Если коммутатор L3 уровня - проверить форвардинг между вланами.
Коммутатор либо софт-роутер должен быть в одном влане с сервером доступа.
Коммутатор либо софт-роутер должен иметь шлюз по умолчанию на сервер доступа.
—-
4. Проверка и отладка
4.1. Лог accel-ppp
rad_recv: Access-Request packet from host 10.10.1.1 port 35437, id=1, length=105 User-Name = "10.22.0.3" NAS-Identifier = "nas16" NAS-Port = 65 NAS-Port-Id = "ipoe0" NAS-Port-Type = Ethernet Calling-Station-Id = "00:1f:c6:FF:FF:FF" Called-Station-Id = "eth1" User-Password = "10.22.0.3" Sending Access-Accept of id 1 to 10.10.1.1 port 35437 Acct-Interim-Interval = 300 L4-Redirect = 1
4.2. Вывод с консоли аccel
ipoe0 |10.22.0.3 |60:a4:4c:ea:c3:61 |10.22.0.3 |10240/10240 |ipoe | | active|00:22:48
Сессия активна, есть какой-то аптайм и установлен лимит.
4.2. Пример правильной работы абонентского интерфейса
ipoe0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:36865 errors:0 dropped:0 overruns:0 frame:0 TX packets:1942 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:2523758 (2.4 MiB) TX bytes:923110 (901.4 KiB)
Трафик есть в обоих направлениях.