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 |
Poeditovat /etc/network/interfaces
| před (pouze IPv4) | po (oboje IPv4 a IPv6) | ||
|---|---|---|---|
|
|
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:: |
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) | ||
|---|---|---|---|
|
|
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 |
Ze subnetu 2a01:16d:b210::/44 (oblast DB2, router 1) si ukrojíme 2a01:16d:b120::/48 (oblast DB2, router 1, interface enp0s9).
Tento menší subnet rozdělíme na
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ý)
Instalace
root@DB2-router1-debian12~# apt install dhcpy6d |
/etc/dhcpy6d.conf
# dhcpy6d configuration for hkfree.org # 2023 VojtaLhota <vpithart@lhota.hkfree.org> # # Please see the examples in /usr/share/doc/dhcpy6d and https://dhcpy6.de/documentation for more information. # [dhcpy6d] # Interface to listen to multicast ff02::1:2. interface = enp0s9 really_do_it = yes store_config = file store_file_config = /etc/dhcpy6d-clients.conf # SQLite DB for leases and LLIP-MAC-mapping. store_volatile = sqlite store_sqlite_volatile = /var/lib/dhcpy6d/volatile.sqlite log = on log_file = /var/log/dhcpy6d.log # Adresy a prefixy pro pripojence podle dhcpy6d-clients.conf [class_valid_client] advertise = addresses prefixes addresses = hkfree_global_members prefixes = hkfree_global_members nameserver = 2a01:168:0:10::f:2 [address_hkfree_global_members] category = id pattern = 2a01:16d:b210::$id$ preferred_lifetime = 86400 valid_lifetime = 86400 [prefix_hkfree_global_members] category = id pattern = 2a01:16d:b210:$id$:: length = 56 preferred_lifetime = 86400 valid_lifetime = 86400 # Nezname MAC adresy: dostanou adresu+prefix z rozsahu "f" na 3 minuty (max 5 minut) [class_default] advertise = addresses prefixes addresses = hkfree_global_neznamy prefixes = hkfree_global_neznamy t1 = 180 t2 = 180 [address_hkfree_global_neznamy] category = range range = fa00-ff00 pattern = 2a01:16d:b21f::$range$ preferred_lifetime = 180 valid_lifetime = 300 [prefix_hkfree_global_neznamy] category = range range = fa00-ff00 pattern = 2a01:16d:b21f:$range$:: length = 56 preferred_lifetime = 180 valid_lifetime = 300 |
/etc/dhcpy6d-clients.conf
# dhcpy6d configuration for hkfree.org # 2023 VojtaLhota <vpithart@lhota.hkfree.org> # # 1 pripojenec = 1 zaznam # # [uid2350] 2350 - ID clena podle userdb # hostname = uid2350 # mac = 08:00:27:1b:36:f9 MAC adresa klientskeho zarizeni clena # id = 0700 0700 - cast adresy (bity 49-56), tj. v rozsahu 0100 - ff00 # class = valid_client # # [uid2351] 2351 - ID clena podle userdb # hostname = uid2351 # mac = 08:03:f3:22:33:54 MAC adresa klientskeho zarizeni clena # id = 7a00 7a00 - cast adresy (bity 49-56), tj. v rozsahu 0100 - ff00 # class = valid_client [uid2350] mac = 08:00:27:1b:36:f9 hostname = uid2350 id = 0100 class = valid_client |