Zapnout IPv6 a forwarding
Poeditovat sysctl.conf
root@DB2-router1-debian12:~# nano /etc/sysctl.conf
Najít net.ipv6.conf.all.forwarding
a nastavit 1
. (projeví se po rebootu)
# Uncomment the next line to enable packet forwarding for IPv6 # Enabling this option disables Stateless Address Autoconfiguration # based on Router Advertisements for this host net.ipv6.conf.all.forwarding=1
Spustit sysctl (projeví se hned)
root@DB2-router1-debian12:~# sysctl net.ipv6.conf.all.forwarding=1
Kontrola (musí tam bejt 1)
root@DB2-router1-debian12:~# sysctl net.ipv6.conf.all.forwarding net.ipv6.conf.all.forwarding = 1
Nastavit vlastní adresu pro router
Poeditovat /etc/network/interfaces
před (pouze IPv4) | po (oboje IPv4 a IPv6) |
---|---|
source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # Spoj -> PMV, uplink auto enp0s8 iface enp0s8 inet static address 10.107.99.130/30 # AP Oblast-DB2, router 1, tady jsou pripojenci auto enp0s9 iface enp0s9 inet static address 10.107.185.1/26 | source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback iface lo inet6 static address 2a01:16d:b210::/64 # Spoj -> PMV, uplink auto enp0s8 iface enp0s8 inet static address 10.107.99.130/30 # AP Oblast-DB2, router 1, tady jsou pripojenci auto enp0s9 iface enp0s9 inet static address 10.107.185.1/26 |
Shodit a nahodit interface (bacha na ostrý síti!)
root@DB2-router1-debian12:~# ifdown lo; ifup lo
Kontrola
root@DB2-router1-debian12:~# ip address show
root@DB2-router1-debian12:~# ping6 2a01:16d:b210::
Routování - co budeme šířit ven?
Zadat 1x agregovanou routu pro tento router. Velikost bude mezi /40 - /48, záleží na správci. Doporučuju /44.
/etc/frr/daemons.conf
... ospf6d=yes ...
/etc/frr/frr.conf
před (pouze IPv4) | po (oboje IPv4 a IPv6) |
---|---|
! ! Vzorovy router, oblast DB2, router 1 ! hostname DB2-router1-debian12 log syslog informational frr defaults traditional password free enable password q7823yfbksldmf872fwfigu3ef97 ! Verejky IPv4 ip route 89.200.202.0/28 eth0 ! IPv6: Agregovana routa pro cely tento router (jde ven pres OSPF) ipv6 route 2a01:16d:b210::/44 blackhole ! UID2350 John doe ipv6 route 2a01:16d:b210:0600::/56 2a01:16d:b210::06 interface enp0s8 description Spoj -> PMV, uplink ip ospf cost 10 ip ospf hello-interval 2 ip ospf dead-interval 6 router ospf ospf router-id 10.107.185.1 redistribute static network 10.107.99.134/30 area 0.0.0.0 router ospf6 ospf6 router-id 10.107.185.1 redistribute static route-map JEN-VELKY-SUBNETY route-map JEN-VELKY-SUBNETY permit 10 match ipv6 address prefix-list velikost-40-az-48 ipv6 prefix-list velikost-40-az-48 seq 5 permit 2a01:168::/29 ge 40 le 48 ! area 0.0.0.0 range 2a01:168::/29 | ! ! Vzorovy router, oblast DB2, router 1 ! hostname DB2-router1-debian12 log syslog informational frr defaults traditional password free enable password q7823yfbksldmf872fwfigu3ef97 ! Verejky IPv4 ip route 89.200.202.0/28 eth0 ! IPv6: Agregovana routa pro cely tento router (jde ven pres OSPF) ipv6 route 2a01:16d:b210::/44 blackhole ! UID2350 John doe ipv6 route 2a01:16d:b210:0600::/56 2a01:16d:b210::06 interface enp0s8 description Spoj -> PMV, uplink ip ospf cost 10 ip ospf hello-interval 2 ip ospf dead-interval 6 ipv6 ospf6 area 0.0.0.0 ipv6 ospf6 cost 10 ipv6 ospf6 hello-interval 2 ipv6 ospf6 dead-interval 6 ipv6 ospf6 network point-to-point router ospf ospf router-id 10.107.185.1 redistribute static network 10.107.99.134/30 area 0.0.0.0 router ospf6 ospf6 router-id 10.107.185.1 redistribute static route-map JEN-VELKY-SUBNETY route-map JEN-VELKY-SUBNETY permit 10 match ipv6 address prefix-list velikost-40-az-48 ipv6 prefix-list velikost-40-az-48 seq 5 permit 2a01:168::/29 ge 40 le 48 ! area 0.0.0.0 range 2a01:168::/29 |
Kontrola na chybu v konfiguraci
root@DB2-router1-debian12:~# vtysh -C root@DB2-router1-debian12:~#
žádnej výstup → je to OK
Restart FRR
root@DB2-router1-debian12:~# systemctl restart frr
Adresy pro připojence
Rozvaha
Ze subnetu 2a01:16d:b110::/44 (oblast DB1, router 1) si ukrojíme 2a01:16d:b110::/48 (oblast DB1, router 1, interface enp0s9).
Tento menší subnet rozdělíme na
- 2a01:16d:b110:0000::/56 - pro WAN
- z toho jednu /64 pro "spojovací" síť, jednotlivé adresy na WAN interfacech připojenců
- viz co jsme nastavili na enp0s9
- 2a01:16d:b110:0100::/56 - pro připojence UID2345
- 2a01:16d:b110:0200::/56 - pro připojence UID2346
- 2a01:16d:b110:0300::/56 - pro připojence UID2347
- 2a01:16d:b110:0400::/56 - pro připojence UID2348
připojenec | jedna adresa pro WAN interface | routovaný "/56" subnet | |
---|---|---|---|
UID2345 | 2a01:16d:b110::01/64 | 2a01:16d:b110:0100::/56 | |
UID2346 | 2a01:16d:b110::02/64 | 2a01:16d:b110:0200::/56 | |
UID2347 | 2a01:16d:b110::03/64 | 2a01:16d:b110:0300::/56 | |
UID2348 | 2a01:16d:b110::04/64 | 2a01:16d:b110:0400::/56 |
DHCPv6 server
Použijeme ne úplně mainstreamový dhcpy6d. Proč ne "běžné" DHCP servery? Protože chceme stejně jako v DHCPv4 indentifikovat klienty podle MAC adres. To v principu DHCPv6 neumí (umí pouze DUID). Tento dhcpy6d je jediný soft kde jsou MAC adresy (v rozporu s RFC) spolehlivě funkční (na Linuxu).
Běžné DHCPv6 servery:
dhcp6s - umí pouze DUID, neumí MAC
ISC DHCP - umí pouze DUID, navíc discontinued as of 2022
ISC Kea - pouze DUID, teoreticky umí MAC, prakticky špatně/nepoužitelně (mac-source metoda "raw" je popsaná ale není implementovaná, ostatní metody nespolehlivý)