Table des matières
bgp-adsl A METTRE A JOUR
FreeBSD bgp-adsl.grifon.fr 11.2-RELEASE amd64 GENERIC
Machine virtuelle
Routeur de collecte ADSL
Administrateurs
- alarig
- dotux
- gizmo
- nemo
Services
- RADIUS, freeradius
- BGP, bird
RADIUS
Ce service sert à authentifier les clients PPP (est-ce que le couple user/passwd est le bon ?) et à donner les IPs que ce client est autorisé à utiliser.
On commence par installer les paquets qui vont bien :
emerge -va net-dialup/freeradius net-dialup/freeradius-client
Ensuite, on détermine les machines qui pourront se connecter :
- /etc/raddb/clients.conf
client localhost { ipaddr = 127.0.0.1 proto = * secret = passwd require_message_authenticator = no nas_type = other # localhost isn't usually a NAS... limit { max_connections = 16 lifetime = 0 idle_timeout = 30 } } client localhost_ipv6 { ipv6addr = ::1 secret = passwd } client phibee_auth-srv2 { ipv4addr = 78.41.160.24 secret = passwd } client phibee_auth-srv1 { ipv4addr = 78.41.185.40 secret = passwd }
Les clients se renseignent ainsi :
- /etc/raddb/users
gfa@grifon.ptel.ipadsl Cleartext-Password := "passwd" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-Routing = None, Framed-IP-Address = 89.234.186.22, Framed-IP-Netmask = 255.255.255.255, Framed-MTU = 1492, Tunnel-Medium-Type = IP, Tunnel-Server-Endpoint = 89.234.186.11, Tunnel-Type = L2TP, Framed-IPv6-Prefix = 2a00:5884:1100:2::/64, Framed-IPv6-Address = 2a00:5884:1100:2::2, Framed-Interface-Id = 0:0:0:2, Delegated-IPv6-Prefix = 2a00:5884:1102::/48
Framed-IP-Address correspond à l’IPv4 du client, Framed-IPv6-Prefix le range d’interco et Delegated-IPv6-Prefix le préfixe que nous lui déléguons.
Le realm change en fonction de la collecte, voici ceux que nous devons utiliser :
- grifon.ptel pour Orange
- grifon.ptel.ipadsl pour SFR
- grifon.phibee.adsl pour Axione
- grifon.xdsl-kosc.ptel pour KOSC
BGP
On utilise BGP pour annoncer nos IPs RADIUS et L2TP afin qu’elles soient routées sur l’interco plutôt que par le net. Ça permet de ne payer le transit qu’une fois.
Phibee nous annonce également leurs IPs associées à chaque service, afin que les réponses passent également par le bon tunnel.
On en profite pour annoncer les IPv4 à nos routeurs de bordures. Comme nous n’avons pas encore de bloc dédié (le plan d’adressage est complet sur le premier /24, on est en attente de nouvelles de gitoyen pour en avoir un deuxième), on ne peut pas router tout un bloc à la main.
Phibee nous livre sur une interco /31 publique pour chaque service, chacune dans son VLAN.
- /etc/bird.conf
# Configure logging log syslog { warning, error, fatal, bug }; # Turn on global debugging of all protocols # debug protocols all; # Override router ID and store ASN router id 89.234.186.206; ##################### # GENERAL PROTOCOLS # ##################### # This pseudo-protocol watches all interface up/down events. protocol device { # Scan interfaces every 5 seconds scan time 5; } protocol direct {} protocol kernel { persist; import none; export all; } protocol bgp bgp_phibee_radius { local as 204092; neighbor 78.41.191.124 as 8487; export where proto = "direct1"; export filter { if net ~ [ 89.234.186.10/32 ] then accept; }; } protocol bgp bgp_phibee_lns { local as 204092; neighbor 78.41.191.126 as 8487; export where proto = "direct1"; export filter { if net ~ [ 89.234.186.11/32 ] then accept; }; } protocol bgp ibgp_nominoe { local as 204092; neighbor 89.234.186.203 as 204092; export where proto = "direct1"; next hop self; } protocol bgp ibgp_budic { local as 204092; neighbor 89.234.186.202 as 204092; export where proto = "direct1"; next hop self; }
Conf réseau
La VM ne comporte qu’un port réseau public (eth0
) et un port réseau privé (eth1
).
Le trafic rentre par l’interco avec phibee sur eth0.2001
(L2TP) et ressort par eth0
(Ethernet, VLAN natif 32).
Les échanges RADIUS se font sur eth0.2000
.
L’interface dummy0
sert de loopback pour porter les IPs sur lesquelles se bind le RADIUS et le L2TP, que l’on annonce en BGP à phibee.
La passerelle de la machine est 89.234.186.201
et 2a00:5884:0:1::1
, ce qui correspond à un VRRP entre nominoe et budic.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 7a:0d:49:b8:6a:85 brd ff:ff:ff:ff:ff:ff inet 89.234.186.206/29 brd 89.234.186.207 scope global eth0 valid_lft forever preferred_lft forever inet6 2a00:5884:0:1:ffff:ffff:ffff:ffff/64 scope global valid_lft forever preferred_lft forever inet6 fe80::780d:49ff:feb8:6a85/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether be:a8:8a:55:c1:0e brd ff:ff:ff:ff:ff:ff inet 172.17.0.22/24 brd 172.17.0.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::bca8:8aff:fe55:c10e/64 scope link valid_lft forever preferred_lft forever 4: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000 link/ether 02:8e:6a:62:b4:40 brd ff:ff:ff:ff:ff:ff inet 89.234.186.10/32 scope global dummy0 valid_lft forever preferred_lft forever inet 89.234.186.11/32 scope global dummy0 valid_lft forever preferred_lft forever inet6 fe80::8e:6aff:fe62:b440/64 scope link valid_lft forever preferred_lft forever 5: eth0.2000@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 7a:0d:49:b8:6a:85 brd ff:ff:ff:ff:ff:ff inet 78.41.191.125/31 scope global eth0.2000 valid_lft forever preferred_lft forever inet6 fe80::780d:49ff:feb8:6a85/64 scope link valid_lft forever preferred_lft forever 6: eth0.2001@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 7a:0d:49:b8:6a:85 brd ff:ff:ff:ff:ff:ff inet 78.41.191.127/31 scope global eth0.2001 valid_lft forever preferred_lft forever inet6 fe80::780d:49ff:feb8:6a85/64 scope link valid_lft forever preferred_lft forever 13: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3 link/ppp inet 89.234.186.11 peer 89.234.186.21/32 scope global ppp0 valid_lft forever preferred_lft forever inet6 2a00:5884:1100:1::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::9e0:1d8b:94af:8d16/10 scope link valid_lft forever preferred_lft forever