====== IPv6 ====== * RFC4291: [[https://youtu.be/z2NDIHsxP1Q|Ipv6 Adresse einfach erklärt, ipv6 Subnetting und ip Prefix]] ===== Neighbor Discovery (NDP) ===== * ipv6 multicast ping an alle hosts: ''%%ping6 ff02::1%eth0%%'' * ipv6 multicast ping an alle router: ''%%ping6 ff02::2%eth0%%'' * ndp cache (ipv6) bzw. arp tabelle (ipv4) auslesen: * ''%%ip neigh%%'' * ''%%ip -6 neigh%%'' * ''%%ip -4 neigh%%'' ===== IP Adressen reserviert für Dokumentation ===== * [[https://en.wikipedia.org/wiki/Reserved_IP_addresses]] * IPv4: * ''192.0.2.0/24'' (256) * ''198.51.100.0/24'' (256) * ''203.0.113.0/24'' (256) * IPv6: * ''2001:db8::/32'' (2^96) * ''3fff::/20'' (2^108) ===== IPv6 ULA gegenüber IPv4 bevorzugen ===== ==== Windows ==== # prefix präferenz anzeigen netsh interface ipv6 show prefixpolicies # 6to4, prio: 30 -> 20 netsh interface ipv6 set prefixpolicy prefix=2002::/16 precedence=20 label=2 store=persistent # ipv4, prio: 35 -> 30 netsh interface ipv6 set prefixpolicy prefix=::ffff:0:0/96 precedence=30 label=4 store=persistent # ula, prio: 3 -> 35 netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=35 label=13 store=persistent # prefix präferenz anzeigen netsh interface ipv6 show prefixpolicies ===== Teredo Tunneling ===== * Teredo erlaubt es IPv6-Konnektivität an einem IPv4-only Anschluss * Da Teredo am aussterben ist, gibt es kaum noch aktive Server * für den zuletzt funktionierenden Server siehe den nicht auskommentierten ''ServerAddress''-Eintrag in der Linux-Konfiguration * Teredo nutzt UDP und benötigt Port 3544 und einen weiteren Port (Firewall muss ausgehend zulassen) * Es wird empfohlen Teredo nicht zu nutzen, weil es sehr unzuverlässsig sein kann * Es ist jedoch nützlich, wenn man unbedingt IPv6 benötigt und keine andere Möglichkeit hat ==== Linux ==== * Debian apt install miredo # Please refer to the miredo.conf(5) man page for details. InterfaceName teredo # Pick a Teredo server: #ServerAddress teredo.ipv6.microsoft.com #ServerAddress teredo-debian.remlab.net #ServerAddress teredo.trex.fi ServerAddress teredo.iks-jena.de # Some firewall/NAT setups require a specific UDP port number: BindPort 3545 systemctl restart miredo; systemctl status miredo ip a cat /var/log/syslog | grep -Fi miredo | less ==== Windows ==== * PowerShell als Admin ausführen * [[https://learn.microsoft.com/powershell/module/networktransition/|Docs]] * aktuellen Status abfragen: ''Get-NetTeredoState'' * Konfiguration abfragen: ''Get-NetTeredoConfiguration'' * Konfiguration zurücksetzen: ''Reset-NetTeredoConfiguration'' * Konfiguration modifizieren: ''Set-NetTeredoConfiguration'' Set-NetTeredoConfiguration -ServerName "teredo.iks-jena.de" -ClientPort 3545 -Type Default ipconfig -all ===== IPv6 SLAAC auf FreeBSD ===== * ''man rc.conf'' * ''man ifconfig'' * ''man rtsold'' * ''man inet6'' # IPv6 aktivieren ipv6_activate_all_interfaces="YES" # privacy extensions (temporary addresses) ipv6_privacy="NO" # ICMPv6 RA (router advertisment) #ifconfig_em0_ipv6="inet6 accept_rtadv" # ICMPv6 RA (router advertisment) & default route ifconfig_em0_ipv6="inet6 accept_rtadv -no_radr" # ICMPv6 RS (router solicitation) rtsold_enable="YES" rtsold_flags="-aF" # IPv6 Sockets sind von IPv6 & IPv4 ansprechbar net.inet6.ip6.v6only=0 ===== IPv6 abschalten ===== ==== FreeBSD ==== * [[https://www.freebsd.org/doc/de/books/developers-handbook/ipv6.html]] * [[https://forums.freebsd.org/threads/freebsd-9-disable-ipv6.29042/]] * [[http://www.hpc.mil/index.php/2013-08-29-16-03-23/networking-overview/2013-10-03-17-24-38/ipv6-knowledge-base-ip-transport/enabling-ipv6-in-freebsd-unix]] * [[https://grox.net/sysadm/unix/fbsd_disable_ipv6.howto]] in FreeBSD 10.1 > vi /etc/rc.conf ... ### IPv6 ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages ip6addrctl_policy="ipv4_prefer" # Use IPv4 instead of IPv6 ipv6_default_interface="NO" ipv6_gateway_enable="Yes" ipv6_ipv4mapping="YES" # ### abschalten ip6addrctl_enable="NO" # Set to YES to enable default address selection ipv6_enable="NO" # FreeBSD 5.4 ipv6_activate_all_interfaces="NO" ipv6_network_interfaces="none" ... testen ob IPv6 noch aktiv ist: > netstat -anp tcp | fgrep tcp6 > netstat -s -p ip6 > cat /etc/sysctl.conf ### IPv6 abschalten kern.features.inet6=0 ==== Linux ==== * [[http://www.pro-linux.de/artikel/2/1557/ipv6-basiertes-heim-netzwerk.html|IPv6]] * [[https://linuxconfig.org/how-to-disable-ipv6-address-on-ubuntu-18-04-bionic-beaver-linux]] * //**WARNING:** Please note, that at the time of writing this method to disable IPv6 after reboot using /etc/sysctl.conf configuration file on Ubuntu 18.04 does Not work. However, this seems to be a bug so feel free to try.// * dieses Kommando hat bei Ubuntu 18.04 LTS funktioniert: * ''for A in $(ls /proc/sys/net/ipv6/conf/*/disable_ipv6) ; do echo "1" > ${A} ; done'' Viele Anwendungen ([[ssh_ssl#unerwuenschte_wartezeit_wegen_ipv6_vor_dem_login|SSH]], host, ping, nslookup, ...) ist die Reihenfolge, nach der sie die einzelnen Netzwerkprotokolle einsetzen, separat festgelegt. === /etc/gai.conf === * [[http://www.funtoo.org/wiki/IPv6_Networking#Prefer_IPv4_over_IPv6]] * [[http://www.getipv6.info/index.php/Customer_problems_that_could_occur#GNU.2FLinux]] Es gibt aber auch noch die glibc, die ebenfalls nach einer konfigurierbaren Reihenfolge vorgeht. Die dazugehörige Konfigurationsdatei heißt "''/etc/gai.conf''": # vi /etc/gai.conf precedence ::ffff:0:0/96 100 === /etc/sysctl.conf === net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1 === IPv6-Kerneloption === Um dem Kernel beim booten bereits mitzuteilen, dass IPv6 unerwünscht ist, gibt es eine Option: "''ipv6.disable=1''". Bei Ubuntu trägt man diese hier ein: # vi /etc/default/grub ... GRUB_CMDLINE_LINUX_DEFAULT="noplymouth,ipv6.disable=1" ... Jetzt muss die Grub-Konfigurations neu geschrieben werden: # update-grub