SixXS::Sunset 2017-06-06

Linux IPv6 Multihomed
[at] Shadow Hawkins on Saturday, 08 September 2007 16:43:46
I have got 2 tunnels on one machine to different POPs and wanted to use both of them. That brought up the routing issue with only one default route. Since 2.6.19 it is possible to have multipe IPv6 routing tables. See here my setup on Debian: Howto have 2 or more IPv6 tunnels on one machine (Multihomed IPv6 Setup) Since 2.6.19 linux has support for CONFIG_IPV6_MULTIPLE_TABLES (Support multiple routing tables) and since 2.6.20 CONFIG_IPV6_SUBTREES (Enable routing by source address or prefix). With this infrastructure it is possible to have multiple IPv6 addresses on different subnets (read differnet SixxS tunnels to different POPs) working. With a normal setup, you would end up with one default route and route all traffic through this link. My setup is the following: One SixxS tunnel Maribor, Slovenia (sixxs-si), and one to Hamburg, Germany (sixxs-de). First added a new table to /etc/iproute2/rt_tables: echo "100 sixxs" >> /etc/iproute2/rt_tables In /etc/network/interfaces I have the following setup (Static IPv4 Adress): auto sixxs-si iface sixxs-si inet6 v4tunnel address 2001:1::2 netmask 64 endpoint 212.18.63.73 ttl 64 up ip link set mtu 1280 dev sixxs-si up ip route add default via 2001:1::1 dev sixxs-si auto sixxs-de iface sixxs-de inet6 v4tunnel address 2001:ffff::2 netmask 64 endpoint 212.224.0.188 ttl 64 up ip link set mtu 1280 dev sixxs-de up ip -6 rule add from 2001:ffff::2 table sixxs up ip -6 route add default via 2001:ffff::1 table sixxs down ip -6 rule del table sixxs down ip -6 route flush table sixxs IPv6 adresses are not the actual ones.
Linux IPv6 Multihomed
[at] Shadow Hawkins on Saturday, 08 September 2007 16:46:29
I will update this howto here when needed: http://www.kolmann.at/philipp/linux/IPv6-Multihome-Howto.txt
Linux IPv6 Multihomed
[de] Shadow Hawkins on Monday, 10 December 2007 13:40:44
Whenever I do the ip -6 route add default via <sixxs-tunnel-endpoint-ipv6> dev sixxs table sixxs I get a "RTNETLINK answers: No route to host" The table "sixxs" already has a host-route to <sixxs-tunnel-endpoint-ipv6>. The tunnel "sixxs" is up and I can be pinged via it from the outside. Any ideas?
########### sixxs=100 routing-table
ip -6 route list table sixxs
2001:6f8:xxxx:xxxx::1 via 2001:6f8:xxxx:xxxx::1 dev sixxs metric 0 cache mtu 1280 advmss 1220 hoplimit 4294967295 2001:6f8:xxxx:xxxx::1 dev sixxs metric 1024 expires 21333468sec mtu 1280 advmss 1220 hoplimit 4294967295 ########### failing to add default route in sixxs-table
ip -6 route add default via 2001:6f8:xxxx:xxxx::1 table sixxs
RTNETLINK answers: No route to host ########### default routing-table
ip -6 route list
::/96 via :: dev tun6to4 metric 256 expires 19367706sec mtu 1480 advmss 1420 hoplimit 4294967295 2001:6f8:xxxx:xxxx::2/127 via :: dev sixxs metric 256 expires 21333982sec mtu 1280 advmss 1220 hoplimit 4294967295 .... fe80::/64 dev eth0 metric 256 expires 19367675sec mtu 1500 advmss 1440 hoplimit 4294967295 fe80::/64 dev tun6to4 metric 256 expires 19367706sec mtu 1480 advmss 1420 hoplimit 4294967295 fe80::/64 via :: dev sixxs metric 256 expires 21331662sec mtu 1280 advmss 1220 hoplimit 4294967295 default via ::192.88.99.1 dev tun6to4 metric 1 expires 19367706sec mtu 1480 advmss 1420 hoplimit 4294967295 ########### rules ip -6 rule 0: from all lookup local 16383: from 2001:6f8:xxxx:xxxx::1/64 lookup sixxs 32766: from all lookup main ########### interfaces
ip -6 addr
1: lo: <LOOPBACK,UP,10000> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 3: eth0: ... 7: tun6to4@NONE: <NOARP,UP,10000> mtu 1480 inet6 2002:xxxx:xxxx::1/16 scope global valid_lft forever preferred_lft forever inet6 ::xxx.xxx.xxx.xxx/128 scope global valid_lft forever preferred_lft forever 11: sixxs@NONE: <POINTOPOINT,NOARP,UP,10000> mtu 1280 inet6 2001:6f8:xxxx:xxxx::2/127 scope global valid_lft forever preferred_lft forever inet6 fe80::xxxx:xxxx/128 scope link valid_lft forever preferred_lft forever
Linux IPv6 Multihomed
[de] Shadow Hawkins on Monday, 10 December 2007 14:07:09
Ok, found it. I needed the ipv4-endpoint of the tunnel, not the ipv6-endpoint. ip -6 route add default via ::<tunnel-endpoint-ipv4> dev sixxs table sixxs
Linux IPv6 Multihomed
[pl] Shadow Hawkins on Monday, 10 September 2007 19:10:14
And it will be works like source based routing? When someone access your sixxs-si address then sixxs-si will answer and route thru tunnel-si and the same for de? When someone access sixxs-de then reply will go from sixxs-de thru tunnel-de?
Linux IPv6 Multihomed
[at] Shadow Hawkins on Sunday, 16 September 2007 12:40:11
yea, it's source based routing. it works as you described. Philipp

Please note Posting is only allowed when you are logged in.

Static Sunset Edition of SixXS
©2001-2017 SixXS - IPv6 Deployment & Tunnel Broker