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. Установка билинга.

Centos6

Ubuntu LTSP 12.04

Debian 7


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)

Трафик есть в обоих направлениях.

  • billing/howto/scheme_l3_with_router.txt
  • Последние изменения: 3 лет назад
  • — sergeev