====== IPv6 Router Advertisements ======
[[https://tools.ietf.org/html/rfc4861]]
head = IPv6() # IPv6-Header
head.dst = "ff02::1" # Destination-Adresse ist die All Nodes Multicast Address
icmp6 = ICMPv6ND_RA() # ICMPv6-Header für Neighbor Discovery Router Advertisement
o_pref = ICMPv6NDOptPrefixInfo() # ICMPv6-Option: Prefix Information
o_pref.prefix = '2001:db8:1::' # Präfix wie in RA vom regulären Router
o_pref.prefixlen = 64 # Präfix-Länge (in Bit) setzen
o_pref.validlifetime = 7200 # Valid-Lifetime 2h
o_pref.preferredlifetime = 1800 # Prefered-Lifetime 30min
o_route = ICMPv6NDOptRouteInfo() # ICMPv6-Option: Route Information
o_route.prefix ='::' # Default Route
o_route.plen = 0 # Präfix-Länge (in Bit) setzen
o_route.rtlifetime = 1800 # Same value as the Prefered-Lifetime of the Router
o_rdns = ICMPv6NDOptRDNSS() # ICMPv6-Option: Recursive DNS Server
o_rdns.dns = ['2001:db8:1::1'] # List of DNS Server Addresses
o_rdns.lifetime = 1800 # Same value as the Prefered-Lifetime of the Router
o_mac = ICMPv6NDOptSrcLLAddr() # ICMPv6-Option: Source Link Layer Address
o_mac.lladdr = '01:02:03:04:05:06' # MAC address
# Zusammensetzen des Pakets
pkt = (head/icmp6/o_pref/o_route/o_rdns/o_mac)
send(pkt) # Einmaliges Senden des Pakets
weitere mögliche Optionen:
o_mtu = ICMPv6NDOptMTU() # ICMPv6-Option MTU (kann entfallen)