Outils pour utilisateurs

Outils du site


machines:grifon:bgp-adsl
no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


machines:grifon:bgp-adsl [2019/06/20 07:52] (Version actuelle) – créée - modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== 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 :
 +
 +<code>emerge -va net-dialup/freeradius net-dialup/freeradius-client</code>
 +
 +Ensuite, on détermine les machines qui pourront se connecter :
 +
 +<file | /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
 +}
 +</file>
 +
 +Les clients se renseignent ainsi :
 +
 +<file | /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
 +</file>
 +
 +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.
 +
 +<file | /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;
 +}
 +</file>
 +===== 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.
 +
 +<file>
 +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
 +</file>
machines/grifon/bgp-adsl.txt · Dernière modification : 2019/06/20 07:52 de 127.0.0.1