Outils pour utilisateurs

Outils du site


machines:grifon:bgp-adsl

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
machines/grifon/bgp-adsl.txt · Dernière modification : 2019/06/20 07:52 de 127.0.0.1