{"id":5179,"date":"2026-04-01T08:35:07","date_gmt":"2026-04-01T08:35:07","guid":{"rendered":"https:\/\/geekmungus.co.uk\/?p=5179"},"modified":"2026-04-01T08:35:07","modified_gmt":"2026-04-01T08:35:07","slug":"bgp-test-lab-part-22-ipv6-considerations","status":"publish","type":"post","link":"https:\/\/geekmungus.co.uk\/?p=5179","title":{"rendered":"BGP Test Lab &#8211; Part 22 &#8211; IPv6 Considerations"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Throughout the whole of the series so far we have talked about IPv4. Although there are some differences when using IPv6, fundamentally you&#8217;re doing the same thing, you&#8217;re using BGP to advertise and route traffic, its just this time you&#8217;re talking about IPv6 routes instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, a key thing to remember is that IPv4 and IPv6 are different protocols, if traffic is sent out as an IPv6 packet, it cannot then change part way through its journey to use IPv4 instead to route the packet(s) &#8211; unless of course you put in place some form of technology that can convert these from IPv6 to IPv4 (and back again if required), such as NAT64.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Fundamentally though you really should be running &#8220;Dual Stack&#8221;, so the IPv4 traffic and IPv6 traffic are routed side by side as they traverse your network; however for this to work, you must have a fully&nbsp;routeable&nbsp;network using IPv4 and IPv6, and not just the routes (network prefixes) being advertised around.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You are in essence running two networks in parallel, one IPv4 based and one IPv6 based, how much the latter relies on the former to operate (e.g. route transfer) depends on how long you expect to be using both protocols side by side and your appetite for risk management.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-AddressingPlan\">Addressing Plan<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">We need to create an addressing plan so we can have some investigations into BGP with IPv6. So below is a simple addressing plan. Let&#8217;s say we&#8217;ve been allocated a global IPv6 range:&nbsp;<strong>2001:db8:1000::\/48<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re going to assume that we&#8217;ll divide this up into 8 x \/51 subnets, so each AS will have a \/51 subnets. Within each AS we&#8217;ll then have a number of \/54 subnets, which will then be divided into \/64 subnets for our pretend LAN networks so that autoconfiguration (EUI-64) would work properly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a real situation you&#8217;d need to consider things like having a range for Loopback addresses and so on, but in this case we&#8217;re just going to just limit to the minimum number of things that we need.&nbsp;All the possible addresses and subnets won&#8217;t be written out, because that would be very excessive and just make things unclear.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Point to Point &#8211; 2001:db8:1000:0000::\/51<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:db8:1000:0000::\/54\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000:0000:0000:0000:0000:0000\/64\n<ul class=\"wp-block-list\">\n<li><strong>2001:0db8:1000::\/127 &#8211;\u00a0RK-RL<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::\/127<\/li>\n\n\n\n<li>2001:0db8:1000::1\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::2\/127 &#8211;\u00a0RF-RK<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::2\/127<\/li>\n\n\n\n<li>2001:0db8:1000::3\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::4\/127 &#8211; RF-RB<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::4\/127<\/li>\n\n\n\n<li>2001:0db8:1000::5\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::6\/127 &#8211; RF-RD<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::6\/127<\/li>\n\n\n\n<li>2001:0db8:1000::7\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::8\/127 &#8211; RD-RC<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::8\/127<\/li>\n\n\n\n<li>2001:0db8:1000::9\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::10\/127 &#8211;\u00a0RD-RH<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::10\/127<\/li>\n\n\n\n<li>2001:0db8:1000::11\/127<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>2001:0db8:1000::12\/127 &#8211; RC-RH<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000::12\/127<\/li>\n\n\n\n<li>2001:0db8:1000::13\/127<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>2001:0db8:1000:0001:0000:0000:0000:0000\/64<\/li>\n\n\n\n<li>2001:0db8:1000:0002:0000:0000:0000:0000\/64<\/li>\n\n\n\n<li>2001:0db8:1000:0003:0000:0000:0000:0000\/64<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AS Red &#8211; 2001:db8:1000:2000::\/51<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:db8:1000:2000::\/54\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000:2000:0000:0000:0000:0000\/64 &#8211; RouterK-LAN1<\/li>\n\n\n\n<li>2001:0db8:1000:2001:0000:0000:0000:0000\/64 &#8211; RouterF-LAN1<\/li>\n\n\n\n<li>2001:0db8:1000:2002:0000:0000:0000:0000\/64<\/li>\n\n\n\n<li>2001:0db8:1000:2003:0000:0000:0000:0000\/64<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>AS Purple- 2001:db8:1000:4000::\/51<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:db8:1000:4000::\/54\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000:4000:0000:0000:0000:0000\/64 &#8211; RouterL-LAN1<\/li>\n\n\n\n<li>2001:0db8:1000:4001:0000:0000:0000:0000\/64<\/li>\n\n\n\n<li>2001:0db8:1000:4002:0000:0000:0000:0000\/64<\/li>\n\n\n\n<li>2001:0db8:1000:4003:0000:0000:0000:0000\/64<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>AS Yellow &#8211; 2001:db8:1000:6000::\/51<\/li>\n\n\n\n<li><strong>AS Blue &#8211; 2001:db8:1000:8000::\/51<\/strong><\/li>\n\n\n\n<li><strong>AS Green &#8211; 2001:db8:1000:a000::\/51<\/strong>\n<ul class=\"wp-block-list\">\n<li>2001:db8:1000:a000::\/54\n<ul class=\"wp-block-list\">\n<li>2001:0db8:1000:a000:0000:0000:0000:0000\/64 &#8211; RouterD-LAN1<\/li>\n\n\n\n<li>2001:0db8:1000:a001:0000:0000:0000:0000\/64 &#8211; RouterC-LAN1<\/li>\n\n\n\n<li>2001:0db8:1000:a002:0000:0000:0000:0000\/64 &#8211; RouterH-LAN1<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Unused &#8211; 2001:db8:1000:c000::\/51<\/li>\n\n\n\n<li>Unused &#8211; 2001:db8:1000:e000::\/51<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Topology\">Topology<\/h1>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"707\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-1024x707.png\" alt=\"\" class=\"wp-image-5180\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-1024x707.png 1024w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-300x207.png 300w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-768x530.png 768w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image.png 1439w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">First Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s start simple with just enabling IPv6 on Router K and Router L, we&#8217;ll then ensure each of these are advertising a network each too.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Router K<a href=\"https:\/\/ssg-confluence.internal.sanger.ac.uk\/plugins\/gliffy\/editor.action?inline=false&amp;pageId=320177625&amp;name=BGP%20Test%20Lab%20-%20Part%2022%20-%20IPv6%20Considerations&amp;displayName=BGP%20Test%20Lab%20-%20Part%2022%20-%20IPv6%20Considerations&amp;ceoid=320177625&amp;key=IMT&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D320177625&amp;macroId=\"><\/a><a href=\"https:\/\/ssg-confluence.internal.sanger.ac.uk\/plugins\/gliffy\/editor.action?inline=false&amp;pageId=320177625&amp;name=BGP%20Test%20Lab%20-%20Part%2022%20-%20IPv6%20Considerations&amp;displayName=BGP%20Test%20Lab%20-%20Part%2022%20-%20IPv6%20Considerations&amp;ceoid=320177625&amp;key=IMT&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D320177625&amp;macroId=\"><\/a><a href=\"https:\/\/ssg-confluence.internal.sanger.ac.uk\/plugins\/gliffy\/viewer.action?inline=false&amp;pageId=320177625&amp;name=BGP%20Test%20Lab%20-%20Part%2022%20-%20IPv6%20Considerations&amp;version=1&amp;ceoid=320177625&amp;key=IMT&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D320177625&amp;imageUrl=%2Fdownload%2Fattachments%2F320177625%2FBGP%2520Test%2520Lab%2520-%2520Part%252022%2520-%2520IPv6%2520Considerations.png%3Fversion%3D1%26modificationDate%3D1774858170000%26api%3Dv2&amp;gonUrl=%2Fdownload%2Fattachments%2F320177625%2FBGP%2520Test%2520Lab%2520-%2520Part%252022%2520-%2520IPv6%2520Considerations%3Fapi%3Dv2%26version%3D1\"><\/a><a href=\"https:\/\/ssg-confluence.internal.sanger.ac.uk\/spaces\/IMT\/pages\/320177625\/BGP+Test+Lab+-+Part+22+-+IPv6+Considerations#\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RK-RL\nconfigure vlan RK-RL ipaddress 2001:0db8:1000::\/127\nconfigure vlan RK-RL ipaddress 192.168.100.65\/30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For some reason when applying, it removed the IPv4 IP address, so I needed to re-add that again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterL\">Router L<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RL-RK\nconfigure vlan RL-RK ipaddress 2001:0db8:1000::1\/127\nconfigure vlan RL-RK ipaddress 192.168.100.66\/30<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For some reason when applying, it removed the IPv4 IP address, so I needed to re-add that again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Verify\">Verify<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ll then perform a ping test, to verify we have IPv6 connectivity between these two routers, from Router K, if you ping the other end of the point to point link&#8230;.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping 2001:0db8:1000::1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">When you ping an IPv6 address, rather than using the &#8220;from&#8221; to denote the source address, you need to use <strong>%&lt;VLAN_NAME><\/strong> instead, so the router knows which interface to send out of, more details within:\u00a0<a href=\"https:\/\/geekmungus.co.uk\/?p=5119\">https:\/\/geekmungus.co.uk\/?p=5119<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-EnableIPv6BGPonPointtoPointLinks\">Enable IPv6 BGP on Point to Point Links<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterK.1\">Router K<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>create bgp neighbor 2001:0db8:1000::1 remote-AS-number 65005\nconfigure bgp neighbor 2001:db8:1000::1 password encrypted \"#$siH6r+ht\/1Vd8GQVeOKmpIkVgkzc8A==\"\nenable bgp neighbor 2001:db8:1000::1\n\nenable bgp neighbor 2001:db8:1000::1 capability ipv6-unicast<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Router L<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>create bgp neighbor 2001:0db8:1000:: remote-AS-number 65004\nconfigure bgp neighbor 2001:db8:1000:: password encrypted \"#$siH6r+ht\/1Vd8GQVeOKmpIkVgkzc8A==\"\nenable bgp neighbor 2001:db8:1000::\n\nenable bgp neighbor 2001:db8:1000:: capability ipv6-unicast<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-EnableIPv6onLANNetworks\">Enable IPv6 on LAN Networks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;re now going to add the Subnets and IP addresses for each of the LAN networks that are connected. We&#8217;re configuring these with EUI-64 (Extended Unique Identifier) is a mechanism that will automatically generate the 64-bit interface ID portion of an IPv6 address using a device\u2019s 48-bit MAC address. So that you don\u2019t have to configure IPv6 addresses manually on every interface, and each IPv6 address will be still unique. Although we&#8217;re not enabling this in this case, this can fit in with RA (Router Advertisement) so that this router can advertise to devices on this VLAN (Layer 2 Segment) that it is a router so they can autoconfigure to use it as their default gateway. The use of the EUI-64, coupled with&nbsp;SLAAC&nbsp;(Stateless Address Auto-Configuration) that would allow devices connected to this network to automatically determine their IP address (without DHCP) and use a global IPv6 address within that subnet&#8217;s range, e.g. 2001:0db8:1000:2000::\/64 (rather than FE80&#8230;.).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterK.2\">Router K<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RouterK-LAN1\nconfigure vlan RouterK-LAN1 ipaddress eui64 2001:0db8:1000:2000::\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:2000:0000:0000:0000:0000\/64<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Router L<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RouterL-LAN1\nconfigure vlan RouterL-LAN1 ipaddress eui64 2001:0db8:1000:4000::\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:4000:0000:0000:0000:0000\/64<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Verify.1\">Verify<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ll now check the IPv6 routes (network prefixes) that are being advertised via BGP, for this we need to run a slightly different command to what we would do for IPv4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show bgp routes ipv6-unicast all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And there we can see our route (network prefix) for\u00a0<strong>RouterL-LAN1 2001:0db8:1000:4000::\/64<\/strong>, being advertised via BGP from Router L (AS Purple).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"461\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-1.png\" alt=\"\" class=\"wp-image-5181\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-1.png 616w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-1-300x225.png 300w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-SecondConfiguration\">Second Configuration<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Now let&#8217;s go a step further and add another router to be configured with IPv6, in this case Router F.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-ConfigurePointtoPointLink\">Configure Point to Point Link<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Firstly we add the point to point links.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterF\">Router F<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For some reason when applying, it removed the IPv4 IP address, so I needed to re-add that again.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RF-RK\nconfigure vlan RF-RK ipaddress 2001:0db8:1000::2\/127\nconfigure vlan RF-RK ipaddress 192.168.100.61\/30<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterK.3\">Router K<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For some reason when applying, it removed the IPv4 IP address, so I needed to re-add that again.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RK-RF\nconfigure vlan RK-RF ipaddress 2001:0db8:1000::3\/127\nconfigure vlan RK-RF ipaddress 192.168.100.62\/30<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-EnableOSPFonPointtoPointLink\">Enable OSPF on Point to Point Link<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before we enable BGP on the point to point link, we also need to distribute the point to point links via our OSPF protocol, otherwise routes show up as &#8220;u&#8221; (unfeasible). Why? If you think back to earlier articles, when a route is learned by a Router, it has the next-hop IP of that route, when that route is distributed unless the &#8220;next-hop-self&#8221; configuration is used, the route is sent with the original next-hop IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a route to that next-hop is not present in the receiving router&#8217;s Route Table, then it is marked as &#8220;u&#8221; unfeasible and not installed into the BGP Route Table, and thus can&#8217;t be used.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So let&#8217;s fix that by adding OSPF for IPv6, so the point to point links are included into OSPF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, if you get the message: &#8220;Error: Interface &lt;VLAN_NAME&gt; not found in current VR&#8221; this is because you have not enabled IPv6 (and set an interface IP) on it yet for example:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"41\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-2.png\" alt=\"\" class=\"wp-image-5182\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-2.png 590w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-2-300x21.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So we&#8217;ll do that as part of our configuration steps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterF.1\">Router F<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We enable IPv6 on the two interfaces from Router F to Router B and Router D, we turn on OSPFv3 (IPv6 OSPF) and remember we enable OSPFv3 on these two VLANs (as point to point links), but we only set it to &#8220;passive&#8221; so it won&#8217;t form an adjacency, otherwise that would defeat the point of using BGP!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ll also create a LAN1 network on Router F, so we can see that routes being originated from this Router reach Router K and also Router L in the AS Purple autonomous system too.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RF-RB\nconfigure vlan RF-RB ipaddress 2001:0db8:1000::4\/127\nconfigure vlan RF-RB ipaddress 192.168.100.42\/30\n\nenable ipforwarding ipv6 vlan RF-RD\nconfigure vlan RF-RD ipaddress 2001:0db8:1000::6\/127\nconfigure vlan RF-RD ipaddress 192.168.100.42\/30\n\nconfigure ospfv3 routerid 1.1.1.6\nenable ospfv3\nconfigure ospfv3 add vlan RF-RK area 0.0.0.0 link-type point-to-point\nconfigure ospfv3 add vlan RF-RB area 0.0.0.0 passive\nconfigure ospfv3 add vlan RF-RD area 0.0.0.0 passive\n\nenable ipforwarding ipv6 vlan RouterF-LAN1\nconfigure vlan RouterF-LAN1 ipaddress eui64 2001:0db8:1000:2001::\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:2001:0000:0000:0000:0000\/64<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Router K<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>configure ospfv3 routerid 1.1.1.12\nenable ospfv3\nconfigure ospfv3 add vlan RK-RF area 0.0.0.0 link-type point-to-point\nconfigure ospfv3 add vlan RK-RL area 0.0.0.0 passive<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Without this, if we were to look at the route table we&#8217;d see something like the below. Note that I have already configured BGP on the point to point link to illustrate, but we&#8217;ll do that next.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notice the &#8220;u&#8221; next to the second route (network prefix).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"605\" height=\"506\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-4.png\" alt=\"\" class=\"wp-image-5184\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-4.png 605w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-4-300x251.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">All appears to be in order, we can see there Router K&#8217;s LAN1 network:&nbsp;<strong>2001:db8:1000:2000::\/64<\/strong>&nbsp;being advertised as well as Router L&#8217;s LAN1 network being advertised from the other AS (Purple). Both are showing up as active routes so from that we know that the IGP is working and advertising the point to point network prefixes around the AS Red (65004) needed to ensure these are advertised.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-AddingIPv6toAnotherAutonomousSystem\">Adding IPv6 to Another Autonomous System<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">So we can continue the exploration of IPv6, we&#8217;re going to enable IPv6 on another Autonomous System. First we need to enable IPv6 on the link between Router D and Router F. We already added an interface IP, so it&#8217;s just a case of creating the BGP Neighbour. Then, we&#8217;ll enable IPv6 on all the AS Green routers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterF.3\">Router F<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add a BGP neighbour on Router F which has a peering directly with Router D so it is IPv6 enabled.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>create bgp neighbor 2001:0db8:1000::7 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::7 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::7<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Router C<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RC-RD\nconfigure vlan RC-RD ipaddress 2001:0db8:1000::9\/127\nconfigure vlan RC-RD ipaddress 192.168.100.29\/30\n\ncreate bgp neighbor 2001:0db8:1000::8 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::8 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::8\n\nenable ipforwarding ipv6 vlan RC-RH\nconfigure vlan RC-RH ipaddress 2001:0db8:1000::12\/127\nconfigure vlan RC-RH ipaddress 192.168.100.17\/30\n\ncreate bgp neighbor 2001:0db8:1000::13 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::13 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::13\n\nenable ipforwarding ipv6 vlan RouterC-LAN1\nconfigure vlan RouterC-LAN1 ipaddress eui64 2001:0db8:1000:a001:0000:0000:0000:0000\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:a001:0000:0000:0000:0000\/64\n\nconfigure ospfv3 routerid 1.1.1.3\nenable ospfv3\nconfigure ospfv3 add vlan RC-RD area 0.0.0.0 link-type broadcast\nconfigure ospfv3 add vlan RC-RH area 0.0.0.0 link-type broadcast<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterD\">Router D<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RD-RF\nconfigure vlan RD-RF ipaddress 2001:0db8:1000::7\/127\nconfigure vlan RD-RF ipaddress 192.168.100.45\/30\n\ncreate bgp neighbor 2001:0db8:1000::6 remote-AS-number 65004\nenable bgp neighbor 2001:db8:1000::6 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::6\n\nenable ipforwarding ipv6 vlan RD-RC\nconfigure vlan RD-RC ipaddress 2001:0db8:1000::8\/127\nconfigure vlan RD-RC ipaddress 192.168.100.30\/30\n\ncreate bgp neighbor 2001:0db8:1000::9 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::9 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::9\n\nenable ipforwarding ipv6 vlan RD-RH\nconfigure vlan RD-RH ipaddress 2001:0db8:1000::10\/127\nconfigure vlan RD-RH ipaddress 192.168.100.21\/30\n\ncreate bgp neighbor 2001:0db8:1000::11 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::11 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::11\n\nenable ipforwarding ipv6 vlan RouterD-LAN1\nconfigure vlan RouterD-LAN1 ipaddress eui64 2001:0db8:1000:a000:0000:0000:0000:0000\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:a000:0000:0000:0000:0000\/64\n\nconfigure ospfv3 routerid 1.1.1.4\nenable ospfv3\nconfigure ospfv3 add vlan RD-RF area 0.0.0.0 passive\nconfigure ospfv3 add vlan RD-RC area 0.0.0.0 link-type broadcast\nconfigure ospfv3 add vlan RD-RH area 0.0.0.0 link-type broadcast<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-RouterH\">Router H<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>enable ipforwarding ipv6 vlan RH-RD\nconfigure vlan RH-RD ipaddress 2001:0db8:1000::11\/127\nconfigure vlan RH-RD ipaddress 192.168.100.22\/30\n\ncreate bgp neighbor 2001:0db8:1000::10 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::10 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::10\n\nenable ipforwarding ipv6 vlan RH-RC\nconfigure vlan RH-RC ipaddress 2001:0db8:1000::13\/127\nconfigure vlan RH-RC ipaddress 192.168.100.18\/30\n\ncreate bgp neighbor 2001:0db8:1000::12 remote-AS-number 65002\nenable bgp neighbor 2001:db8:1000::12 capability ipv6-unicast\nenable bgp neighbor 2001:db8:1000::12\n\nenable ipforwarding ipv6 vlan RouterH-LAN1\nconfigure vlan RouterH-LAN1 ipaddress eui64 2001:0db8:1000:a002:0000:0000:0000:0000\/64\nconfigure bgp add network ipv6-unicast 2001:0db8:1000:a002:0000:0000:0000:0000\/64\n\nconfigure ospfv3 routerid 1.1.1.9\nenable ospfv3\nconfigure ospfv3 add vlan RH-RD area 0.0.0.0 link-type broadcast\nconfigure ospfv3 add vlan RH-RC area 0.0.0.0 link-type broadcast<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Verify.3\">Verify<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ping and traceroute from Router H&#8217;s LAN1 network to Router L&#8217;s LAN1 network, because it&#8217;s a long path through the network. In the below we are pinging or trace routing from Router H&#8217;s LAN1 network interface IP address to Router L&#8217;s LAN1 network interface IP. If you just do a ping without specifying a from address, you&#8217;ll likely find it goes nowhere, because it doesn&#8217;t know which interface to send the traffic from.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"117\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-5.png\" alt=\"\" class=\"wp-image-5185\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-5.png 833w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-5-300x42.png 300w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-5-768x108.png 768w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"876\" height=\"223\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-6.png\" alt=\"\" class=\"wp-image-5186\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-6.png 876w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-6-300x76.png 300w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-6-768x196.png 768w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Excellent, all appears to be in order, there is connectivity through from Router H to Router L, and back again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-ExaminetheRouteTables\">Examine the Route Tables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s now have a look at the Route Tables on both Router L and Router H, we can see some interesting stuff in them. You can examine the route tables with:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show bgp routes ipv6-unicast all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Examining Router H first, we can see a number of routes from both its local AS (Green 65002) which appear without an AS number listed (circled in green), then we can also see routes from the other two AS: AS Red 65004 circled in Red, and AS Purple 65005 circled in Purple.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"609\" height=\"672\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-7.png\" alt=\"\" class=\"wp-image-5187\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-7.png 609w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-7-272x300.png 272w\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s take a look Router L now, and we can see what Router L sees which is the routes from AS Green are circled in green, the routes from AS Red which are circled in Red, being that Router L is just a single router in AS Purple, we don&#8217;t see its own local LAN network shown.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"599\" height=\"678\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-8.png\" alt=\"\" class=\"wp-image-5188\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-8.png 599w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-8-265x300.png 265w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Whatifthereisagap?\">What if there is a gap?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">So in our topology, we have only partially implemented IPv6, some AS have support for it, while others do not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So what happens if you were using a network in AS Blue, and you wanted to reach an IPv6 address, the simple answer is you can&#8217;t! IPv6 has not been enabled within that AS, so it can&#8217;t learn any IPv6 routes, nor has it any IPv6 interfaces for any connected devices to use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have enabled IPv6 in AS Green, AS Red and AS Purple. But not in AS Blue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From an IPv4 point of view, there are multiple paths across our networks, traffic can flow from AS Green to AS Purple for example, directly from AS Green to AS Red, or via AS Blue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However from an IPv6 point view, it cannot. AS&nbsp;Blue has&nbsp;no support for IPv6, so the loss of the single link (shown below) between AS Green and AS Red, would in effect isolate the two IPv6 networks from each other. An example of some of the reduced resilience or unexpected behaviour during network failures\/maintainance that can occur if full IPv6 routing is not available.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"710\" src=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-9-1024x710.png\" alt=\"\" class=\"wp-image-5189\" srcset=\"https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-9-1024x710.png 1024w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-9-300x208.png 300w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-9-768x533.png 768w, https:\/\/geekmungus.co.uk\/wp-content\/uploads\/2026\/04\/image-9.png 1436w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-Conclusion\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">We have implemented a very basic IPv6 configuration to prove how this second protocol can work side by side with IPv4, although IPv6 has been around a long time, it&#8217;s not yet fully been implemented, so for many people you&#8217;ll still be providing services on IPv4 or IPv4 and IPv6. Although in recent times we have seen IPv6 only services starting to pop-up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Within our topology we have not gone to the lengths of removing the dependency on IPv4, however in time this would need to happen. We&#8217;ve also had to ensure our IGP (in this case OSPF) has IPv6 enabled, so it is capable of distributing the IPv6 routes around the network that underpins how BGP actually works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We haven&#8217;t gone into full detail of IPv6 in relation to all the previous aspects of IPv6, but in many cases it all behaves the same way. Things like policies and filtering are all the same, you just need to use the IPv6 addresses instead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Other things to consider is around performance and scalability, when you enable IPv6 you are in effect doubling the workload on the router, it now has to hold IPv4 routes and IPv6 routes, this comes at a cost of CPU and memory, so ensure you take this into consideration.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"BGPTestLabPart22IPv6Considerations-AdditionalInformation\">Additional Information<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/documentation.extremenetworks.com\/exos_32.7.1\/GUID-0EF7F180-463C-4308-8C8C-C3D988BBF723.shtml\">https:\/\/documentation.extremenetworks.com\/exos_32.7.1\/GUID-0EF7F180-463C-4308-8C8C-C3D988BBF723.shtml<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.gestioip.net\/cgi-bin\/subnet_calculator.cgi\">http:\/\/www.gestioip.net\/cgi-bin\/subnet_calculator.cgi<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Throughout the whole of the series so far we have talked about IPv4. Although there are some differences when using IPv6, fundamentally you&#8217;re doing the same thing, you&#8217;re using BGP to advertise and route traffic, its just this time you&#8217;re talking about IPv6 routes instead. Now, a key thing to remember is that IPv4 and &#8230; <a title=\"BGP Test Lab &#8211; Part 22 &#8211; IPv6 Considerations\" class=\"read-more\" href=\"https:\/\/geekmungus.co.uk\/?p=5179\" aria-label=\"Read more about BGP Test Lab &#8211; Part 22 &#8211; IPv6 Considerations\">Read more<\/a><\/p>\n","protected":false},"author":4,"featured_media":4783,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,41,17],"tags":[],"class_list":["post-5179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bgp","category-extreme-networks","category-networking"],"_links":{"self":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5179"}],"version-history":[{"count":1,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5179\/revisions"}],"predecessor-version":[{"id":5190,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/posts\/5179\/revisions\/5190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=\/wp\/v2\/media\/4783"}],"wp:attachment":[{"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekmungus.co.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}