Linux och 6RD

6RD – IPv6 radid deployment är en kontrollerad IPv6 över IPv4 tunnelteknologi som vidarutvecklats ur 6to4. Det här är ingen text som beskriver 6RD i detalj utan här kommer det förutsättningar för det och sedan hur vi sätter upp det. Jag har testat i en Ubuntu 12.04 LTS men det viktiga är att iproute2-paketet i din Linuxdist hanterar 6rd-tunnel.

IPv6-prefix – 2001:db8::/32 – 6rd/iproute2 i Linux förutsätter att 6rd domänen använder /32 idag
IPv4-adress på server – 192.0.2.1
IPv6-adress på server – 2001:db8:c000:100::1

Beräkning av IPv6-adress på 6rd-interface: ( tun6rd nedan )

printf "2001: db8:% 02x% 02x:% 02x% 02x :: 1 \ n" 192 0 2 1
2001: db8:c000:0201 :: 1

OBS! Denna guide förutsätter att du har tillgång till en /32 för din 6RD. Vi låtsas att du som ISP har 192.0.0.0/19, det innebär att 2001:db8:c000::/51 ska routas till din 6RD-router. ( /51???? /32+19=51 => Glasklart! )
En /32 täcker in alla IPv4-adresser och du måste skydda din router med iptables så att ingen oönskad IPv4-adress utnyttjar den.

Sätt IPv4 och IPv6-adress på eth0, /etc/network/interfaces

auto eth0
iface eth0 inet static
	address 192.0.2.1
	netmask	255.255.255.0
        gateway 192.0.2.254
iface eth0 inet6 static
        address 2001:db8:c000:100::1
        netmask 64
        gateway 2001:db8:c000:100::254

Sätt upp 6rd interfacet tun6rd, /etc/network/interfaces

auto tun6rd
iface tun6rd inet6 v4tunnel
	address 2001:db8:c000:0101::1 
	netmask 32
	local 192.0.2.1
	endpoint any
	ttl 64
	up ip tunnel 6rd dev tun6rd 6rd-prefix  2001:db8::/32 
	up ip link set mtu 1280 dev tun6rd

Aktivera routing, /etc/sysctl.conf

net.ipv6.conf.all.forwarding=1
net.ipv4.ip_forward=1

Till sist vill du aktivera det för alla hemmaroutrar som hanterar 6rd DHCP option 212, jag har testat med Dlink DIR-645.

dhcpd.conf:

option 6rd code 212 = { integer 8, integer 8,
                       ip6-address, array of ip-address };
option 6rd 0 32 2001:db8:: 192.0.2.1;