Difference between revisions of "Setup IPv6 subnets on Linux"

From ivc wiki
Jump to navigationJump to search
 
(8 intermediate revisions by the same user not shown)
Line 20: Line 20:
The two networks I'm setting up now are:
The two networks I'm setting up now are:


  Subnet #1: 2001:450:bb44::/117
  Subnet #1: 2001:450:bb44::/117 - main subnet, router #1 needs to route subnet #2 to router #2
  Subnet #2: 2001:450:bb44::800/117
  Subnet #2: 2001:450:bb44::800/117 - subnet connected to a router #2 which is behind subnet #1


== Router for subnet #1 ==
== Router for subnet #1 ==


  External router IP: 2001:470:17:1e5::2/64
  External (eth0) router IP: 2001:470:17:1e5::2/64
  Default gateway: 2001:470:17:1e5::1/128
  Default gateway: 2001:470:17:1e5::1/128
Internal (eth1) router IP: 2001:450:bb44::1/117


  Internal router IP: 2001:450:bb44::1/117
  ip -6 route add 2001:470:17:1e5::2/64 via 2001:470:17:1e5::1 dev eth0


Add route 2001:450:bb44::801/117 via 2001:450:bb44::29 (this is another internal router)
Add route 2001:450:bb44::801/117 via 2001:450:bb44::29 (this is another internal router)


  ip -6 route add 2001:450:bb44::801/117 via 2001:450:bb44::29 eth1
  ip -6 route add 2001:450:bb44::801/117 via 2001:450:bb44::29 dev eth1


== Hosts behind subnet #1 ==
== Hosts behind subnet #1 ==
Calculate or use https://www.ultratools.com/tools/ipv6CIDRToRange to convert the CIDR to the actual range.


  Host IP: pick one between 2001:470:27:2d5::2 to 2001:470:27:2d5::7ff
  Host IP: pick one between 2001:470:27:2d5::2 to 2001:470:27:2d5::7ff
  Default gateway: 2001:450:bb44::1/117
Netmask/block size: 117
  Default gateway: 2001:450:bb44::1
 
Manually assign addresses to the hosts or use ''DHCPv6'' to automate the process - ''radvd'' won't work since it requires /64 subnets.


== Router for subnet #2 ==
== Router for subnet #2 ==


  External router IP: 2001:450:bb44::29/117
  External (eth0) router IP: 2001:450:bb44::29/117
  Default gateway: 2001:450:bb44::1/117
  Default gateway: 2001:450:bb44::1/117
Internal (eth1) router IP: 2001:450:bb44::801/117


  Internal router IP: 2001:450:bb44::801/117
  ip -6 route add 2001:450:bb44::29/117 via 2001:450:bb44::1 dev eth0


Enable IPv6 forwarding:
Enable IPv6 forwarding:
Line 53: Line 61:


  Host IP: pick one between 2001:470:27:2d5::802 to 2001:470:27:2d5::fff
  Host IP: pick one between 2001:470:27:2d5::802 to 2001:470:27:2d5::fff
  Default gateway: 2001:450:bb44::801/117
Netmask/block size: 117
  Default gateway: 2001:450:bb44::801
 
Manually assign addresses to the hosts or use ''DHCPv6'' to automate the process - ''radvd'' won't work since it requires /64 subnets.


== Delete/remove subnets and host addresses ==
== Delete/remove subnets and host addresses ==
Find addresses/subnets:
route -n -6
ifconfig
Remove them:


  ip -6 route del 2001:450:bb44::/64 dev eth0
  ip -6 route del 2001:450:bb44::/64 dev eth0
  ip -6 addr del 2001:450:bb44::1/64 dev eth0
  ip -6 addr del 2001:450:bb44::1 dev eth0


== Test connectivity ==
== Test connectivity ==
Line 68: Line 86:
Find IPv6 aaaa record from DNS:
Find IPv6 aaaa record from DNS:
  dig google.com aaaa
  dig google.com aaaa
== References ==
* [http://computer-outlines.over-blog.com/article-static-ipv6-networking-part-3-2-routers-setup-118288208.html Static IPv6 Networking Part 3 : 2 Routers setup]
* [https://www.jumpingbean.co.za/blogs/mark/set-up-ipv6-lan-with-linux Set up IPv6 LAN with Linux]
* [http://teamarin.net/2014/12/15/set-ipv6-home/ Set IPv6 home]

Latest revision as of 10:32, 24 May 2017

This is a guide on how to delegate a he.net IPv5 /48 subnet into multiple smaller networks that you can route and manage on your own network. This uses Linux as the base.

This is a necessary if you want to run IPv4 on another router that can't handle IPv6 for some reason, this adds a dedicated IPv6 router in parallel to the IPv4 router - dual stack.

Topology

                               / ---- Router #2 ---- Hosts subnet #2
---- he.net ---- Router #1 ----
                               \ ---- Hosts subnet #1

Net info

(obfuscated to hide my ip range)

IP block: 2001:450:bb44::/48

Split into subnets

I decided to split the IP block into blocks of /117, 2048 addresses each, using http://www.gestioip.net/cgi-bin/subnet_calculator.cgi

The two networks I'm setting up now are:

Subnet #1: 2001:450:bb44::/117 - main subnet, router #1 needs to route subnet #2 to router #2
Subnet #2: 2001:450:bb44::800/117 - subnet connected to a router #2 which is behind subnet #1

Router for subnet #1

External (eth0) router IP: 2001:470:17:1e5::2/64
Default gateway: 2001:470:17:1e5::1/128

Internal (eth1) router IP: 2001:450:bb44::1/117
ip -6 route add 2001:470:17:1e5::2/64 via 2001:470:17:1e5::1 dev eth0

Add route 2001:450:bb44::801/117 via 2001:450:bb44::29 (this is another internal router)

ip -6 route add 2001:450:bb44::801/117 via 2001:450:bb44::29 dev eth1

Hosts behind subnet #1

Calculate or use https://www.ultratools.com/tools/ipv6CIDRToRange to convert the CIDR to the actual range.

Host IP: pick one between 2001:470:27:2d5::2 to 2001:470:27:2d5::7ff
Netmask/block size: 117
Default gateway: 2001:450:bb44::1

Manually assign addresses to the hosts or use DHCPv6 to automate the process - radvd won't work since it requires /64 subnets.

Router for subnet #2

External (eth0) router IP: 2001:450:bb44::29/117
Default gateway: 2001:450:bb44::1/117

Internal (eth1) router IP: 2001:450:bb44::801/117
ip -6 route add 2001:450:bb44::29/117 via 2001:450:bb44::1 dev eth0

Enable IPv6 forwarding:

sysctl -w net.ipv6.conf.all.forwarding=1 and store it in /etc/sysctrl.conf

Hosts behind subnet #2

Host IP: pick one between 2001:470:27:2d5::802 to 2001:470:27:2d5::fff
Netmask/block size: 117
Default gateway: 2001:450:bb44::801

Manually assign addresses to the hosts or use DHCPv6 to automate the process - radvd won't work since it requires /64 subnets.

Delete/remove subnets and host addresses

Find addresses/subnets:

route -n -6
ifconfig 

Remove them:

ip -6 route del 2001:450:bb44::/64 dev eth0
ip -6 addr del 2001:450:bb44::1 dev eth0

Test connectivity

From subnet #2 ping router #1:

ping9 2001:450:bb44::1

Find IPv6 aaaa record from DNS:

dig google.com aaaa

References