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 

  1. 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
  2. 2a01:16d:b110:0100::/56 - pro připojence UID2345
  3. 2a01:16d:b110:0200::/56 - pro připojence UID2346
  4. 2a01:16d:b110:0300::/56 - pro připojence UID2347
  5. 2a01:16d:b110:0400::/56 - pro připojence UID2348
připojenecjedna adresa pro WAN interfaceroutovaný "/56" subnet
UID23452a01:16d:b110::01/642a01:16d:b110:0100::/56
UID23462a01:16d:b110::02/642a01:16d:b110:0200::/56
UID23472a01:16d:b110::03/642a01:16d:b110:0300::/56
UID23482a01:16d:b110::04/642a01: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í (varování) (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ý)