Jump to content
Калькуляторы

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Да, PPPoE. Нельзя по логину? Может ли accel передать в радиус эту опцию pppoe circuit id insertion и интерфейс(в данном случае vlan)?

Edited by roysbike

Share this post


Link to post
Share on other sites

по логину тоже самое, только match username

 

вообще есть команда help в CLI

Share this post


Link to post
Share on other sites

по логину тоже самое, только match username

 

вообще есть команда help в CLI

спасибо, у вас приходит в radius NAS-Port-Id = ? В словарях accel есть, а в радиус не прилетает .

Share this post


Link to post
Share on other sites

спасибо, у вас приходит в radius NAS-Port-Id = ? В словарях accel есть, а в радиус не прилетает .

Можно так

[pppoe]

ifname-in-sid=called-sid

 

 

в радиусе будет что то типо

Called-Station-Id=eth1.3002:00:02:55:53:10:6d

 

 

А NAS-Port-Id вроде как нет.

Share this post


Link to post
Share on other sites

большое спасибо, запилил, работает.

Cейчас хлебаем полными ложками проблему с новым ядром Centos 6.5 - давно не перезагружали серв и на тебе. Пока резервный трудится.

Share this post


Link to post
Share on other sites

большое спасибо, запилил, работает.

Cейчас хлебаем полными ложками проблему с новым ядром Centos 6.5 - давно не перезагружали серв и на тебе. Пока резервный трудится.

Используйте ядро kernel-lt из elrepo, там уже есть модуль

Share this post


Link to post
Share on other sites

Используйте ядро kernel-lt из elrepo, там уже есть модуль

в elrepo есть kernel-ml и kernel-lt, вы считаете, что нужно ставить именно kernel-lt?

Share this post


Link to post
Share on other sites

Xeb а как в режиме L3 shared UP происходит перенаправление трафика на виртуальный интерфейс в таблице маршрутизации ничего не заметил. Как посмотреть правила в системе?

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

Edited by ua_mister

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

В последней версии есть accel-cmd и я делаю типа так:

accel-cmd show sessions | grep eth2.445

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

В последней версии есть accel-cmd и я делаю типа так:

accel-cmd show sessions | grep eth2.445

Ну это я так понимаю для IPoE. По идее эта команда покажет IPoE сессию eth2.455. Или я ошибаюсь? просто у меня не самая последняя версия на боевом серваке и accel-cmd в ней нет, позже смогу проверить на тестовом 1,7,3 с соурсфорджа.

Edited by ua_mister

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

В последней версии есть accel-cmd и я делаю типа так:

accel-cmd show sessions | grep eth2.445

Ну это я так понимаю для IPoE. По идее эта команда покажет IPoE сессию eth2.455. Или я ошибаюсь? просто у меня не самая последняя версия на боевом серваке и accel-cmd в ней нет, позже смогу проверить на тестовом 1,7,3 с соурсфорджа.

Вот для pppoe:

# accel-cmd show sessions | grep vlan120
ppp175  | 1189@lan       | dc:0e:a1:f1:17:00 | vlan120:00:1b:21:b3:29:c5 | 10.102.3.24     | 2001/1000   | pppoe |      | active | 00:08:06
ppp46   | 1166@wlan      | 00:15:6d:f0:10:d2 | vlan120:00:1b:21:b3:29:c5 | 10.102.5.130    | 1000/256    | pppoe |      | active | 00:04:21
ppp191  | 1141@wlan      | 00:0c:42:cc:c7:71 | vlan120:00:1b:21:b3:29:c5 | 10.102.1.27     | 1000/256    | pppoe |      | active | 00:03:44
ppp0    | 1171@wlan      | d4:ca:6d:3e:94:8f | vlan120:00:1b:21:b3:29:c5 | 10.50.4.13      | 200/100     | pppoe |      | active | 00:03:08
ppp208  | 1137@wlan      | 00:0c:42:d7:5b:cf | vlan120:00:1b:21:b3:29:c5 | 10.102.3.109    | 1000/256    | pppoe |      | active | 00:00:11

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

В последней версии есть accel-cmd и я делаю типа так:

accel-cmd show sessions | grep eth2.445

Ну это я так понимаю для IPoE. По идее эта команда покажет IPoE сессию eth2.455. Или я ошибаюсь? просто у меня не самая последняя версия на боевом серваке и accel-cmd в ней нет, позже смогу проверить на тестовом 1,7,3 с соурсфорджа.

Вот для pppoe:

# accel-cmd show sessions | grep vlan120
ppp175  | 1189@lan   	| dc:0e:a1:f1:17:00 | vlan120:00:1b:21:b3:29:c5 | 10.102.3.24 	| 2001/1000   | pppoe |      | active | 00:08:06
ppp46   | 1166@wlan      | 00:15:6d:f0:10:d2 | vlan120:00:1b:21:b3:29:c5 | 10.102.5.130    | 1000/256    | pppoe |      | active | 00:04:21
ppp191  | 1141@wlan      | 00:0c:42:cc:c7:71 | vlan120:00:1b:21:b3:29:c5 | 10.102.1.27 	| 1000/256    | pppoe |      | active | 00:03:44
ppp0    | 1171@wlan      | d4:ca:6d:3e:94:8f | vlan120:00:1b:21:b3:29:c5 | 10.50.4.13      | 200/100 	| pppoe |      | active | 00:03:08
ppp208  | 1137@wlan      | 00:0c:42:d7:5b:cf | vlan120:00:1b:21:b3:29:c5 | 10.102.3.109    | 1000/256    | pppoe |      | active | 00:00:11

Спасибо! Всё понял. Еще вопросик: последняя версия, это имелось ввиду последняя стабильная 1.7.3 с соурсфорджа, или то что сейчас собирают с поддержкой IPoE с github?

 

UPD: С соурсфорджа собранная 1.7.3 не умеет accel-cmd

Edited by ua_mister

Share this post


Link to post
Share on other sites

я так понимаю вопрос по pppoe ?

явно указать интерфейс нельзя, но можно по его мак адресу

show sessions match called-sid xx:xx:xx:xx:xx:xx

Это всё не то, хотелось бы что то типа "show sessions match eth2.445" что бы отображало сессии подключенные на интерфейсе eth2.445 к примеру.

Мак адреса у вланов одинаковые)

 

вообще есть команда help в CLI

Спасибо, это я знаю)))

В последней версии есть accel-cmd и я делаю типа так:

accel-cmd show sessions | grep eth2.445

Ну это я так понимаю для IPoE. По идее эта команда покажет IPoE сессию eth2.455. Или я ошибаюсь? просто у меня не самая последняя версия на боевом серваке и accel-cmd в ней нет, позже смогу проверить на тестовом 1,7,3 с соурсфорджа.

Вот для pppoe:

# accel-cmd show sessions | grep vlan120
ppp175  | 1189@lan   	| dc:0e:a1:f1:17:00 | vlan120:00:1b:21:b3:29:c5 | 10.102.3.24 	| 2001/1000   | pppoe |      | active | 00:08:06
ppp46   | 1166@wlan      | 00:15:6d:f0:10:d2 | vlan120:00:1b:21:b3:29:c5 | 10.102.5.130    | 1000/256    | pppoe |      | active | 00:04:21
ppp191  | 1141@wlan      | 00:0c:42:cc:c7:71 | vlan120:00:1b:21:b3:29:c5 | 10.102.1.27 	| 1000/256    | pppoe |      | active | 00:03:44
ppp0    | 1171@wlan      | d4:ca:6d:3e:94:8f | vlan120:00:1b:21:b3:29:c5 | 10.50.4.13      | 200/100 	| pppoe |      | active | 00:03:08
ppp208  | 1137@wlan      | 00:0c:42:d7:5b:cf | vlan120:00:1b:21:b3:29:c5 | 10.102.3.109    | 1000/256    | pppoe |      | active | 00:00:11

Спасибо! Всё понял. Еще вопросик: последняя версия, это имелось ввиду последняя стабильная 1.7.3 с соурсфорджа, или то что сейчас собирают с поддержкой IPoE с github?

Да.

Раз IPoE, то с github.

Сам правда еще сижу на версии от 28.11.2013.

Share this post


Link to post
Share on other sites
Xeb а как в режиме L3 shared UP происходит перенаправление трафика на виртуальный интерфейс в таблице маршрутизации ничего не заметил. Как посмотреть правила в системе?
в недрах драйвера ipoe

Share this post


Link to post
Share on other sites

[root@bsr01 accel-ppp]# cat /var/run/radattr.ppp0 | grep PPPD

ну типа пусто

[root@bsr01 accel-ppp]# cat /usr/share/accel-ppp/radius/dictionary | grep PPPD

ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer

ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer

[root@bsr01 accel-ppp]# cat /etc/accel-ppp.conf | grep -e 'radius'

radius

[radius]

dictionary=/usr/share/accel-ppp/radius/dictionary

 

радиус сервер yf на другой машине, на ней же блилинг нетамc ОС Cento6.5 amd64

Мужики покажите где я мог налажать?

Edited by Tanatos

Share this post


Link to post
Share on other sites

Xeb не совсем понятна функция нат.

из доки

Если радиус (или локальный пул) выдаст внешний ип, то он будет назначен на этот псевдоинтерфейс и с помощью него будет осуществляться NAT.

Не совсем понятно как аксел определяет это внешний или локальный адрес. но судя по всему пока не включишь недокументированную nat=1 ничего не происходит.

После включения нат работает, но как я понял для всех адресов локальный или внешний без разницы.

Но:

Если использовать внешний DHCP сервер то например

сервер выдал адрес 192.168.5.254, а на ipoe0 назначается адрес 192.168.5.2 и осуществляется нат.

клиент получил адрес 192.168.5.254 аксел его натит в 192.168.5.2

Если используется внутренний dhcp то всё нормально.

Edited by brodayga

Share this post


Link to post
Share on other sites

если включено nat=1, то адрес выданный дхцп клиенту через внешний дхцп сервер, локальный поинтерфейный пул или радиусом через атрибут attr-dhcp-client-ip считаются локальными

при этом, адрес выданный через ip-pool или радиусом через атрибут Framed-IP-Address считается внешним

так-же нужно указать в конфиге через опции local-net сети которые являются локальными, к которым, соотвественно, не будет применяться нат

Share this post


Link to post
Share on other sites

если включено nat=1, то адрес выданный дхцп клиенту через внешний дхцп сервер, локальный поинтерфейный пул или радиусом через атрибут attr-dhcp-client-ip считаются локальными

при этом, адрес выданный через ip-pool или радиусом через атрибут Framed-IP-Address считается внешним

так-же нужно указать в конфиге через опции local-net сети которые являются локальными, к которым, соотвественно, не будет применяться нат

Изначально то что вешал 192.168.5.2 разобрался - экспериментировал с выдачей по радиусу framed-pool и забыл убрать.

убрал он теперь вешает адрес из первого пула.

 

 

Конфиг

[ipoe]
verbose=10
lua-file=/etc/accel-ppp.lua
username=lua:username
password=username1
lease-time=600
max-lease-time=3600
unit-cache=10
shared=1
ifcfg=0
mode=L2
start=dhcpv4
proxy-arp=0
nat=1
local-net=192.168.5.0/24
interface=eth3,mode=L2,relay=192.168.0.111,giaddr=192.168.3.1

ответ радиуса

[2014-03-25 18:35:34]:  info: eth3: recv [RADIUS(1) Access-Accept id=1 <Acct-Interim-Interval 60> <Service-Type Framed-User> <Framed-Protocol PPP> <PPPD-Down
stream-Speed-Limit 1200> <PPPD-Upstream-Speed-Limit 1200> <Vendor-Specific > <Vendor-Specific >]

DHCP ответ клиенту
send [DHCPv4 Ack xid=dad46773 yiaddr=192.168.5.253 chaddr=00:0c:42:89:64:01 <Message-Type Ack> <Server-ID 192.168.5.1> <
Lease-Time 660> <Router 192.168.5.1> <Subnet 255.255.255.0> <Relay-Agent {Agent-Circuit-ID eth3} {Agent-Remote-ID accel-pppd}> <Relay-Agent {Agent-Circuit-ID
eth3} {Agent-Remote-ID accel-pppd}>]

 

 

ip a show dev ipoe0
ipoe0: <POINTOPOINT,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc tbf state UNKNOWN qlen 100
   link/ether a0:36:9f:2c:f0:4b peer ff:ff:ff:ff:ff:ff
   inet 192.168.5.1 peer 192.168.0.2/32 scope global ipoe0

 

 

 

ippool подключён в модулях

и есть конфиг он из него и выдает на нат.

Если его отключить тогда не вешает,но тогда pool нельзя будет использовать нигде.

[ip-pool]
gw-ip-address=192.168.0.1
attr=Framed-Pool
192.168.0.2-255
192.168.1.1-255,name=pool1
192.168.2.1-255,name=pool2
192.168.3.1-255,name=pool3
192.168.4.0/24

 

 

 

всё разобрался, надо оставить только именованные пулы.

Edited by brodayga

Share this post


Link to post
Share on other sites

Xeb по поводу того что в личку скидывал не смотрели? есть возможность включить в код или изменения нарушают функционал ?

Share this post


Link to post
Share on other sites

В man pppd есть упоминание auth-up сценария

/etc/ppp/auth-up

Программа или сценарий, который выполняется после того, как удалённая система подтвердила свою подлинность. Он выполняется со следующими параметрами:

имя_интерфейса имя_партнёра имя_пользователя tty_устройство скорость

 

/etc/ppp/ip-up

Программа или сценарий, который будет запущен когда канал станет доступным для отправки и приёма IP-пакетов (по завершении IPCP). Он исполняется с параметрами

имя_интерфейса tty_устройство скорость местный_IP_адрес удалённый_IP_адрес ipparam

 

Если я добавлю в конфиг accel в секцию к ip-up отсыл еще и к auth-up, то он его поймет или нет?

 

Или чтобы вытащить имя пользователя лучше собрать версию с поддержкой accel-cmd и выдергивать через ip-up с помощью accel-cmd show sessions | grep pppX (речь идет о версии без поддержки radius, т.к. с ним все понятно как делать)?

 

Т.е. мне просто надо в логи в БД через ip-up положить логин, под которым вошел клиент.

-------------------

UPD: уже прикрутил кусок кода про accel-cmd и собрал с ним, но все же про auth-up было бы интересно узнать.

Edited by replicant

Share this post


Link to post
Share on other sites

вообщето имя пользователя передаётся в скрипты через переменную окружения PEERNAME

Share this post


Link to post
Share on other sites

вообщето имя пользователя передаётся в скрипты через переменную окружения PEERNAME

Мне технически было бы проще выдернуть ее так как это предполагается в auth-up

#!/usr/bin/perl

# скрипт auth-up

$username = $ARGV[1];

 

А как узнать уже в установленной сессии по номеру pppX какой логин был использован кроме как через accel-cmd?

Т.е. как мне найти соответствие ppp и логина другим способом? Тут я чего-то затупил...

Edited by replicant

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now