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

FreeBSD 8.2, MPD5.5, RADIUS, IPv6 Если кто поднимал - помогите и мне поднять.

В6 пиров не так много как в4, к тому же скорости у них по ниже будут.

Я решил пока не добавлять ипв6 в резалку ютп :)

Share this post


Link to post
Share on other sites

В6 пиров не так много как в4, к тому же скорости у них по ниже будут.

 

Не сказал бы. У меня весьма нехило туда торрент перекочевал. Уже многие ипользуют, и дальше будет только больше...

Share this post


Link to post
Share on other sites

Ваша реализация заработала... :)

какая? расскажите мне , я планирую ipv6 впилить

Share this post


Link to post
Share on other sites

Hawk128 писал.. 2 скриптика

я их просто допилил/перепилил. учитывая очепятки )))

у меня на PPP запущено.

надо будет - выложу.

10% траффика УЖЕ там. хотя настроен только один БРАС.

Edited by pashaumka

Share this post


Link to post
Share on other sites

Конечно выкладывайте! Всем же интересно! Желательно подробно).

Edited by roysbike

Share this post


Link to post
Share on other sites

Реализация под обычный PPP FreeBSD

 

#!/bin/sh

# $1 $2 $3 $4 $5 $6

# USER HISADDR6 MYADDR6 INTERFACE PROCESSID FILTERID

USER=$1

HISADDR6=$2

MYADDR6=$3

INTERFACE=$4

PROCESSID=$5

FILTERID=$6

set `date +"%Y %m %d %H %M %S"`

echo $1-$2-$3 $4:$5:$6 UP USER:${USER} HA:${HISADDR6} MA:${MYADDR6} IF:${INTERFACE} PID:${PROCESSID} >> /memdisk/ipv6.log

 

test_ipv6=`/usr/bin/awk -v hisaddr6=${HISADDR6} 'BEGIN{print substr(hisaddr6,1,4)}'`

 

prefix=`/usr/bin/awk -v iface=${INTERFACE} 'BEGIN{ifno = substr(iface,4,4); ifno=ifno+8192; printf "2001:67c:21f0:%X::",ifno;}'`;

 

if [ "${test_ipv6}" == "fe80" ]

then

{

echo "User wants IPv6:: ${test_ipv6}" >> /memdisk/ipv6.log

echo "User have ${INTERFACE}" >> /memdisk/ipv6.log

echo "User have ${prefix}" >> /memdisk/ipv6.log

 

/sbin/ifconfig ${INTERFACE} inet6 ${prefix}1/64

/usr/local/bin/expect -f /etc/ppp/zebra-ipv6-up.expect ${INTERFACE} ${prefix}/64 >> /memdisk/ipv6.log

 

}

fi

 

 

zebra-ipv6-up.expect

 

#!/usr/local/bin/expect -f

 

set int [lindex $argv 0]

set pref [lindex $argv 1]

 

spawn telnet 127.0.0.1 2601

expect "ord:" {send "МойЮзерскийПароль\r"}

expect ">" {send "en\r"}

expect "ord:" {send "МойРуУтПароль\r"}

expect "#" {send "conf t\r"}

expect "#" {send "int $int\r"}

expect "#" {send "ipv6 nd prefix $pref 14400 14400\r"}

expect "#" {send "ipv6 nd prefix ::/0 router-address \r"}

expect "#" {send "no ipv6 nd other-config-flag\r"}

expect "#" {send "no ipv6 nd managed-config-flag\r"}

expect "#" {send "ipv6 nd ra-interval 40\r"}

expect "#" {send "ipv6 nd ra-lifetime 60\r"}

expect "#" {send "ipv6 nd reachable-time 9000\r"}

expect "#" {send "no ipv6 nd suppress-ra\r"}

expect "#" {send "ipv6 nd router-preference medium\r"}

send "exit\r"

send "exit\r"

send "exit\r"

expect eof

Share this post


Link to post
Share on other sites

Реализация под обычный PPP FreeBSD

 

Спасибо за скрипт. Можете показать конфиг mpd.conf и zebra? я пока не до конца понял как это работает.

Почему, если интерфейсу назнчается fe80 , вы не не назначаете ipv6 в ручную?

На сервере ng0 ipv6 назначился , на клиенте только на основе mac-адреса. Так и должно быть?

На сервере

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492
inet6 fe80::e2cb:4eff:fe12:7805%ng0 prefixlen 64 tentative scopeid 0xa 
inet 172.30.0.33 --> 192.168.2.2 netmask 0xffffffff 
inet6 2001:67c:21f0:2000::1 prefixlen 64 tentative 
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

 

На клиенте

ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet6 fe80::3615:9eff:fe1c:6406%ppp0 prefixlen 64 scopeid 0x7 
inet 192.168.2.2 --> 172.30.0.33 netmask 0xffffff00 

Edited by roysbike

Share this post


Link to post
Share on other sites

просьба заменить адресное пространство 2001:67c:21f0:: на собственное!

 

вот что на БРАСе FreeBSD 9.1

 

tun396: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1480

options=80000<LINKSTATE>

inet 91.219.168.38 --> 10.38.171.53 netmask 0xffffffff

inet6 fe80::215:17ff:fe91:80ec%tun396 prefixlen 64 scopeid 0x1a8

inet6 2001:67c:21f0:218c::1 prefixlen 64

nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Opened by PID 73199

 

на мпд5 - смотрите скрриптик на второй странице ( Hawk128 )

конфиг для квагги - это скриптик на expect для конкретного девайса и конкретной подсети.

mpd5 у меня как-то не пошел... у меня чуток патченный PPP для шейпирования + контроль за падением tun-ов ( чтобы у абонента не вылетала 619 ошибка )

 

если бы вы использовали ваш диапазон и он был бы доступер в интернете - то через 2-3 минуты винда бы одуплилась и в состоянии подключения написала бы "интернет" на ipv6 подключении.

Share this post


Link to post
Share on other sites

просьба заменить адресное пространство 2001:67c:21f0:: на собственное!

 

вот что на БРАСе FreeBSD 9.1

 

tun396: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1480

options=80000<LINKSTATE>

inet 91.219.168.38 --> 10.38.171.53 netmask 0xffffffff

inet6 fe80::215:17ff:fe91:80ec%tun396 prefixlen 64 scopeid 0x1a8

inet6 2001:67c:21f0:218c::1 prefixlen 64

nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

Opened by PID 73199

 

на мпд5 - смотрите скрриптик на второй странице ( Hawk128 )

конфиг для квагги - это скриптик на expect для конкретного девайса и конкретной подсети.

mpd5 у меня как-то не пошел... у меня чуток патченный PPP для шейпирования + контроль за падением tun-ов ( чтобы у абонента не вылетала 619 ошибка )

 

если бы вы использовали ваш диапазон и он был бы доступер в интернете - то через 2-3 минуты винда бы одуплилась и в состоянии подключения написала бы "интернет" на ipv6 подключении.

про ip уберу, не переживайте. Сервак тупо на столе)) инетов у него нет) и upлинков с ipv6 , тоже нет).

Edited by roysbike

Share this post


Link to post
Share on other sites

Продолжаю эксперементы. Столкнулся с проблемой, раздаю в сети IP по DHCP и IPv4 и IPv6 олновременно. ПК с windows 7 получают оба комплекта адресов, но при получении в том числе и IPv6 DNS сервера - перестают работать запросы к IPv4 DNS серверу. Что весьма негативно отразилось на VPN и прочих сервисах... Кто-нибудь сталкивался? Решал?

 

6to4 как решение..

а чего бы не настроить ДНС в обоих режимах?

 

а вообще - конфиг DHCP можете показать?

Share this post


Link to post
Share on other sites

Оказалось, что не работает шейпинг ipv6-трафика согласно полученных от RADIUS параметров.

Судя по всему, ipv6 не заворачивается в ng_car.

%sudo ngctl show ng10:
 Name: ng10        	Type: iface   		ID: 000000a4   Num hooks: 2
 Local hook  	Peer name   	Peer type	Peer ID 		Peer hook
 ----------  	---------   	---------	------- 		---------
 inet        	mpd3102-B3-13-lim bpf      	000000a7    	iface
 inet6   		mpd3102-B3-13   ppp      	000000a5    	ipv6

Traffic limits: 	
in#1	: 'all rate-limit 25600000 pass' 	
out#1	: 'all rate-limit 25600000 pass'

FreeBSD 8.3, mpd 5.6

Share this post


Link to post
Share on other sites

Отпиши Мотину, он русскоговорящий.

 

Спасибо!

 

Мотин сообщает, что данная функциональность ещё не реализована в mpd.

Edited by mr.Scamp

Share this post


Link to post
Share on other sites

не сильно мудрствуя с костылями ввиде скриптов сделал так:

(всё равно более 2к коннектов не получу на брасе)

zebra.conf:

interface ng0
ipv6 address 2g02:4680:7:800::1/64
no ipv6 nd suppress-ra
ipv6 nd ra-interval 10
ipv6 nd prefix 2g02:4680:7:800::/64
!
interface ng1
ipv6 address 2g02:4680:7:801::1/64
no ipv6 nd suppress-ra
ipv6 nd ra-interval 10
ipv6 nd prefix 2g02:4680:7:801::/64
!
...
interface ng2046
ipv6 address 2g02:4680:7:ffe::1/64
no ipv6 nd suppress-ra
ipv6 nd ra-interval 10
ipv6 nd prefix 2g02:4680:7:ffe::/64
!
interface ng2047
ipv6 address 2g02:4680:7:fff::1/64
no ipv6 nd suppress-ra
ipv6 nd ra-interval 10
ipv6 nd prefix 2g02:4680:7:fff::/64

 

ip6 трафик пошел

 

пы.сы. сделать на брасе суммаризацию, чтобы остальным участникам ospf протокола было получше

Edited by Giga-Byte

Share this post


Link to post
Share on other sites

Коллеги, кто уже полноценно дает ipv6 в dual stack с помощью mpd? Разработчики добавили ng_car ноду для нарезки IPv6

Edited by roysbike

Share this post


Link to post
Share on other sites

можно попросить, думаю реализуют. Но мне проще отдавать ipv6 в PPP.

Edited by roysbike

Share this post


Link to post
Share on other sites

Толку то, лучше бы они добавили IPoE.

тогда это должен быть не multilink-ppp-daemon

форкаца нада...

Share this post


Link to post
Share on other sites

Multiuser iPoe Daemon.

По сути дело не в названии, а в том, что оно уже умеет строить графы из нод и радиус.

Хотя IPoE можно собрать на базе ipfw и dummynet, если очень захотеть.

Share this post


Link to post
Share on other sites

...уже умеет строить графы из нод и радиус.

зачем для ipoe строить какие-то нетграф-ноды?

QinQ? не у всех оно работать будет

 

Хотя IPoE можно собрать на базе ipfw и dummynet, если очень захотеть.

я думаю это более правильнее, например if_bridge с private-vlan-ами

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       ether 02:df:19:57:a7:00
       inet 192.168.200.1 netmask 0xfffff800 broadcast 192.168.207.255
       nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
       id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
       maxage 20 holdcnt 6 proto rstp maxaddr 2048 timeout 300
       root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
       member: vlan99 flags=803<LEARNING,DISCOVER,PRIVATE>
               ifmaxaddr 0 port 11 priority 128 path cost 55
       member: vlan280 flags=803<LEARNING,DISCOVER,PRIVATE>
               ifmaxaddr 0 port 37 priority 128 path cost 55
       ....

и туда же ipv6 адрес, с dhcp и dhcpv6-серверами.

есть же ISG, старт-стоп сессий по лизам DHCP,

привязка к портам коммутатора, конечно же, если коммутаторы умные везде :)

Edited by Giga-Byte

Share this post


Link to post
Share on other sites
зачем для ipoe строить какие-то нетграф-ноды?

хотя бы если нужен L2 IPoE: [ng_XXXX +] ng_ether + ng_car [+ ng_neflow].

Можно и ваш вариант L2, но он чуть более специфичен: требует влана на юзера.

 

PS: if_bridge вообще какое то зло костыльное. Думаю во всех ОС это так.

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
Sign in to follow this