IPv6-in-IPv4 Tunnel: Setup 6to4 tunnel

From OnnoWiki
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

Kita dapat menggunakan script berikut untuk membuat secara automatix IPv6 untuk 6to4

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

Ada dua pilihan untuk membuat 6to4 tunneling.

Menggunakan "ip" dan device tunnel dedicated

Cara ini lebih di rekomendasikan. TTL harus di set karena nilai default-nya adalah 0.

Buat device tunnel yang baru

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

Aktifkan interface

# /sbin/ip link set dev tun6to4 up 

Tambahkan address local 6to4 ke interface (catatan: panjang prefix 16 penting!).

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

Tambahkan route default ke jaringan global IPv6 menggunakan all-6to4-router IPv4 anycast address

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

Di laporkan bahwa beberapa versi "ip" (seperti di SuSE Linux 9.0) tidak mendukunng alamat IPv6 IPv4-compatible untuk gateway, jika hal ini teradi maka address IPv6 yang berkaitan harus digunakan:

# /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