03 Aug

Ease out your IPv6 gateway!

One of very cool features of IPv6 is link-local address which stays local to a given link. For this fe80::/10 is reserved. A /10 is a huge amount of address space in IPv6 (and in IPv4 too šŸ™‚ ). This means fromĀ fe80:0000:0000:0000:0000:0000:0000:0000 to


Since by design link-local address stays local, the address configured on the upstream/gateway router can be kept same for ease of use and comfort. This wasn’t the case of IPv4 where each VLAN/layer 2 domain had it’s own gateway.


So e.g if you have two VLANs or interfaces say: Gi1/0Ā and Gi2/0. You decide to use on Gi1/0 and on Gi2/0. Thus usual configuration in IPv4 world goes as:


Link 1 – Uplink/gateway router – User/downstream device


Link 2 –Ā Uplink/gateway router – User/downstream device


Thus linkĀ 1 user has to use gateway different from link 2 user.


Traditional IPv4 networking


IPv4 network setup



In case of IPv6 since each interface has unique global address as well as link local address, we can give any cool/easy-to-remember link local like fe80::1 on multiple interfaces and hence gateway can remainĀ same across multiple end machines.

Say we have got a pool:Ā  2a04:ec40:e01a::/48. Now we grab two /64 slices out of it (for each interface) –Ā  2a04:ec40:e01a:100::/64 andĀ 2a04:ec40:e01a:200::/64.

Link 1
2a04:ec40:e01a:100::1 – Uplink/gateway router
2a04:ec40:e01a:100::2 – User/downstream device

Link 2
2a04:ec40:e01a:200::1 –Ā Uplink/gateway router
2a04:ec40:e01a:100::2 – User/downstream device



IPv6 networking


Link Local IPv6




Config of GW


User 1


User 2



Quick connectivity tests


Example of a Linux interface config file (assuming user 1 is a Linux server)



I hope you enjoyed it. With hope to see more IPv6, time for me to get some sleep! šŸ™‚

Leave a Reply