Project

General

Profile

Euro-IX

Fourniture d'un réseau wifi « sérieux » pour le 34e Forum Euro-IX à Toulouse : 150 pros des réseaux à l'hotel Radisson Blu à Blagnac 31mars - 2 avril 2019. Co-organisé avec TouIX et France-IX https://www.euro-ix.net/en/events/fora/34th-euro-ix-forum/

  • Utilisation des bornes Unifi Mesh et Unifi Mesh Pro de ttnn
  • Adresses IPv4 et IPv6 publiques
  • Un shuttle comme routeur + exécution du soft contrôleur Unifi

Adressage

  • 89.234.156.9/32 adresse IPv4 "WAN"
  • 185.119.170.0/23 plage pour les adresses IPv4 "LAN"
  • 2a03:7220:8083:900::/56: plage IPv6
    • 2a03:7220:8083:900::1/56 coté WAN
    • 2a03:7220:8083:901::/64 coté LAN
  • Les antennes, le switch Unifi et le contrôleur utilisent des IPs dans 172.31.36.0/24 (coté LAN):
    routeur 172.31.36.1
    switch unifi 172.31.36.2
    Antenne 1 172.31.36.100
    Antenne 2 172.31.36.101
    Antenne 3 172.31.36.102
    ...

Config réseau

à cheval sur /etc/network/interfaces et /etc/rc.local (but: juste assez dans interfaces pour que l'unit 'networking' de systemd soit contente pour démarrer dhcpd & co).

wan enp2s0
lan enp0s31f6
  • /etc/network/interfaces
    auto enp2s0
    iface enp2s0 inet manual
            ip link set enp2s0 up   
            down ip link set enp2s0 down
            up ip addr add 89.234.156.9/32 dev enp2s0
            up ip route add 91.224.148.0/32 dev enp2s0
            up ip route add default via 91.224.148.0 
            down ip route flush dev enp2s0
            down ip addr flush dev enp2s0
    
  • /etc/rc.local
    #! /bin/bash
    ip link set enp0s31f6 up
    ip a add 185.119.170.1/23 dev enp0s31f6
    ip a add 172.31.36.1/24 dev enp0s31f6
    
    ip -6 a add 2a03:7220:8083:901::1/64 dev enp0s31f6
    
    ip -6 a add 2a03:7220:8083:900::1/56 dev enp2s0
    ip -6 a add fe80::83:9 dev enp2s0
    ip -6 r add default via fe80::31 dev enp2s0
    

DHCPv4

  • installation du paquet isc-dhcp-server
  • activation dans /etc/default/isc-dhcp-server
    INTERFACESv4="enp0s31f6" 
    INTERFACESv6="enp0s31f6" 
    
  • configuration /etc/dhcp/dhcpd.conf
    option domain-name "tetaneutral.net";
    option domain-name-servers 185.119.170.1;
    option routers 185.119.170.1;
    
    default-lease-time 600;
    max-lease-time 7200;
    
    ddns-update-style none;
    
    authoritative;
    
    subnet 185.119.170.0 netmask 255.255.254.0 {
            range 185.119.170.100 185.119.171.254;
    }
    

DHCPv6 + radvd

Important : DHCPv6 ne fournit pas de route par défaut ! Il faut un radvd sur le routeur (le protocole ne permet pas de le faire tourner à coté come dans le cas de v4).

  • même paquet isc-dhcp-server. config v6 dans /etc/dhcp/dhcpd6.conf:
    default-lease-time 2592000;
    preferred-lifetime 604800;
    option dhcp-renewal-time 3600;
    option dhcp-rebinding-time 7200;
    # Enable RFC 5007 support (same than for DHCPv4)
    allow leasequery;
    
    option dhcp6.name-servers 2a03:7220:8083:901::1;
    option dhcp6.domain-search "tetaneutral.net";
    option dhcp6.info-refresh-time 21600;
    
    subnet6 2a03:7220:8083:901::/64 {
            range6 2a03:7220:8083:901::1:1 2a03:7220:8083:901::1:ffff;
    }
    
  • radvd: paquet radvd. configuration dans /etc/radvd.conf
    interface enp0s31f6 {
             AdvSendAdvert on;
             AdvDefaultLifetime 9000;
             MinRtrAdvInterval 30;
             MaxRtrAdvInterval 900;
             AdvManagedFlag on;
             prefix 2a03:7220:8083:901::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
             };
             RDNSS 2a03:7220:8083:901::1 {
                    AdvRDNSSLifetime 3600;
            };
    };
    

Résolveur DNS

Optionnel (on aurait pu donner les résolveurs cache de TTNN dans les configs ci-dessus)

  • paquet unbound configuration /etc/unbound/unbound.conf
server:

           interface: 0.0.0.0
           interface: ::0
           access-control: 172.31.36.0/24 allow
           access-control: 185.119.170.0/23 allow
           access-control: 2a03:7220:8083:900:/56 allow

           qname-minimisation: yes
           auto-trust-anchor-file: "/var/lib/unbound/root.key"