IPv6-in-IPv4 Tunnel: Setup 6to4 tunnel

From OnnoWiki
Revision as of 08:36, 27 June 2013 by Onnowpurbo (talk | contribs)
Jump to navigation Jump to search

Perhatikan bahwa dukungan untuk 6to4 tunnel tidak baik di kernel versi 2.2.x. Juga perhatikan bahwa panjang prefix untuk 6to4 address adalah 16 karena cara pandang jaringan, semua host 6to4 host berada pada layer 2 yang sama.


Menambahkan 6to4 tunnel

Pertama-tama, kita harus menghitung 6to4 prefix dari IPv4 public yang kita punya. Jika kita tidak mempunyai IPv4 address public, maka spesial NAT / border gateway mungkin digunakan:

Asumsi IPv4 address kita adalah

1.2.3.4

Maka 6to4 prefix yang kita gunakan adalah:

2002:0102:0304::

Gateway Local 6to4 sebaiknya menggunakan suffix "::1" (walaupun tidak harus, kita juga dapat menggunakan nomor sembarang dari local-scope), oleh karenanya local 6to4 address adalah

2002:0102:0304::1

Use e.g. following for automatic generation:

ipv4="1.2.3.4"; printf "2002:%02x%02x:%02x%02x::1" `echo $ipv4 | tr "." " "`

There are two ways possible to setup 6to4 tunneling now.

9.4.1.1. Using "ip" and a dedicated tunnel device

This is now the recommended way (a TTL must be specified because the default value is 0).

Create a new tunnel device

# /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local <localipv4address> 

Bring interface up

# /sbin/ip link set dev tun6to4 up 

Add local 6to4 address to interface (note: prefix length 16 is important!)

# /sbin/ip -6 addr add <local6to4address>/16 dev tun6to4 

Add (default) route to the global IPv6 network using the all-6to4-routers IPv4 anycast address

# /sbin/ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

It was reported that some versions of “ip” (e.g. SuSE Linux 9.0) don't support IPv4-compatible IPv6 addresses for gateways, in this case the related IPv6 address has to be used:

# /sbin/ip -6 route add 2000::/3 via 2002:c058:6301::1 dev tun6to4 metric 1

9.4.1.2. Using "ifconfig" and "route" and generic tunnel device “sit0” (deprecated)

This is now deprecated because using the generic tunnel device sit0 doesn't let specify filtering per device.

Bring generic tunnel interface sit0 up

# /sbin/ifconfig sit0 up 

Add local 6to4 address to interface

# /sbin/ifconfig sit0 add <local6to4address>/16

Add (default) route to the global IPv6 network using the all-6to4-relays IPv4 anycast address

# /sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0

9.4.2. Remove a 6to4 tunnel

9.4.2.1. Using "ip" and a dedicated tunnel device

Remove all routes through this dedicated tunnel device

# /sbin/ip -6 route flush dev tun6to4

Shut down interface

# /sbin/ip link set dev tun6to4 down

Remove created tunnel device

# /sbin/ip tunnel del tun6to4 

9.4.2.2. Using “ifconfig” and “route” and generic tunnel device “sit0” (deprecated)

Remove (default) route through the 6to4 tunnel interface

# /sbin/route -A inet6 del 2000::/3 gw ::192.88.99.1 dev sit0

Remove local 6to4 address to interface

# /sbin/ifconfig sit0 del <local6to4address>/16

Shut down generic tunnel device (take care about this, perhaps it's still in use...)

# /sbin/ifconfig sit0 down


Referensi