{"id":4084,"date":"2021-02-08T10:00:00","date_gmt":"2021-02-08T16:00:00","guid":{"rendered":"https:\/\/www.foell.org\/justin\/?p=4084"},"modified":"2021-02-07T15:53:29","modified_gmt":"2021-02-07T21:53:29","slug":"openwrt-bridging-with-ipv6-support","status":"publish","type":"post","link":"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/","title":{"rendered":"OpenWrt Bridging with IPv6 support"},"content":{"rendered":"\n<p>My network topology at home is pretty simple, it looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network.png\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"695\" data-attachment-id=\"4108\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/home-network\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network.png\" data-orig-size=\"900,695\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Home-Network\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network.png\" alt=\"\" class=\"wp-image-4108\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network.png 900w, https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network-300x232.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/02\/Home-Network-768x593.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/figure>\n\n\n\n<p>After my recent <a href=\"https:\/\/www.foell.org\/justin\/dynamic-dns-with-openwrt-19-07-and-nsupdate-info\/\">router hardware and OpenWrt 19.07 firmware upgrades<\/a>, I noticed my access point connected to my cable modem looked like this on the Status Overview page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI.png\"><img loading=\"lazy\" decoding=\"async\" width=\"963\" height=\"231\" data-attachment-id=\"4085\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap-overview-luci\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI.png\" data-orig-size=\"963,231\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap-Overview-LuCI\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI.png\" alt=\"\" class=\"wp-image-4085\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI.png 963w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI-300x72.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap-Overview-LuCI-768x184.png 768w\" sizes=\"auto, (max-width: 963px) 100vw, 963px\" \/><\/a><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Pro-tip: Notice I&#8217;m using the <a href=\"https:\/\/blog.cloudflare.com\/announcing-1111\/\">cloudflare DNS servers<\/a> rather than the ISP-provided ones. The Comcast DNS servers have gone down on me before and their performance is generally lacking.<\/p><\/blockquote>\n\n\n\n<!--more-->\n\n\n\n<p>But over on my bridged router it looked like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI.png\"><img loading=\"lazy\" decoding=\"async\" width=\"966\" height=\"211\" data-attachment-id=\"4087\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap2-overview-luci\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI.png\" data-orig-size=\"966,211\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap2-Overview-LuCI\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI.png\" alt=\"\" class=\"wp-image-4087\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI.png 966w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-300x66.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-768x168.png 768w\" sizes=\"auto, (max-width: 966px) 100vw, 966px\" \/><\/a><\/figure>\n\n\n\n<p>Further more, when I went to the command line on my bridged router, I couldn&#8217;t ping any IPv6 addresses:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ap2:~# ping ipv6.google.com\nPING ipv6.google.com (2607:f8b0:4009:807::200e): 56 data bytes\nping: sendto: Permission denied<\/code><\/pre>\n\n\n\n<p>My concern was if the bridged router can&#8217;t contact IPv6 addresses, the same is probably true for the devices that are connecting through it.<\/p>\n\n\n\n<p><a href=\"https:\/\/forum.openwrt.org\/t\/dumb-openwrt-wireless-access-point-w-ipv6-need-help\/36515\/15\">I found the solution in this thread on the OpenWrt forums.<\/a> While it&#8217;s easy to statically assign an IPv4 address, along with a default gateway and DNS server &#8211; for IPv6 it&#8217;s easiest to set up another lan interface specifically for IPv6 that gets it&#8217;s IPv6 address (and routes) automatically from the upstream router &#8211; rather than assigning it statically.<\/p>\n\n\n\n<p>The TL;DR version of this post is to add this to your network config:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>config interface 'lan6'\n\toption ifname '@lan'\n\toption proto 'dhcpv6'\n\toption reqprefix 'no'<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Configuring IPv6 Bridging through the Web Interface<\/h2>\n\n\n\n<p>To do the same thing above via LuCI &#8211; the OpenWrt web interface, here&#8217;s how. Initially on the Network -&gt; Interfaces page, ou can see my IPv4 lan with the wan ports disabled:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI.png\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"651\" data-attachment-id=\"4089\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap2-interfaces-luci\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI.png\" data-orig-size=\"964,651\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap2-Interfaces-LuCI\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI.png\" alt=\"\" class=\"wp-image-4089\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI.png 964w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-300x203.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-768x519.png 768w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/a><\/figure>\n\n\n\n<p>Click &#8220;Add new interface&#8230;&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface.png\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"318\" data-attachment-id=\"4090\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap2-interfaces-luci-new-interface\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface.png\" data-orig-size=\"913,318\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap2-Interfaces-LuCI-New-Interface\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface.png\" alt=\"\" class=\"wp-image-4090\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface.png 913w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface-300x104.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-New-Interface-768x267.png 768w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/a><\/figure>\n\n\n\n<p>Name it &#8220;lan6&#8221; and choose the DHCPv6 client protocol. For the interface, select the @lan alias. Then click Create Interface. You&#8217;ll be brought to a second screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface.png\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"386\" data-attachment-id=\"4091\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap2-interfaces-luci-edit-interface\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface.png\" data-orig-size=\"913,386\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap2-Interfaces-LuCI-Edit-Interface\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface.png\" alt=\"\" class=\"wp-image-4091\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface.png 913w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface-300x127.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Interfaces-LuCI-Edit-Interface-768x325.png 768w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/a><\/figure>\n\n\n\n<p>All I had to do on this page was change the &#8220;Request IPv6-prefix&#8221; value to disabled. No need to change anything on the other tabs &#8211; the defaults are fine.<\/p>\n\n\n\n<p>Now the Status -&gt; Overview page on my bridged router looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"963\" height=\"250\" data-attachment-id=\"4093\" data-permalink=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/ap2-overview-luci-ipv6\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6.png\" data-orig-size=\"963,250\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ap2-Overview-LuCI-IPv6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6.png\" alt=\"\" class=\"wp-image-4093\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6.png 963w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6-300x78.png 300w, https:\/\/www.foell.org\/justin\/files\/2021\/01\/ap2-Overview-LuCI-IPv6-768x199.png 768w\" sizes=\"auto, (max-width: 963px) 100vw, 963px\" \/><\/a><\/figure>\n\n\n\n<p>Now I can ping IPv6 addresses from the command line on my bridged router:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@ap2:~# ping -c 2 ipv6.google.com\nPING ipv6.google.com (2607:f8b0:4009:807::200e): 56 data bytes\n64 bytes from 2607:f8b0:4009:807::200e: seq=0 ttl=115 time=17.884 ms\n64 bytes from 2607:f8b0:4009:807::200e: seq=1 ttl=115 time=17.351 ms\n\n--- ipv6.google.com ping statistics ---\n2 packets transmitted, 2 packets received, 0% packet loss\nround-trip min\/avg\/max = 17.351\/17.617\/17.884 ms<\/code><\/pre>\n\n\n\n<p>One of my 2021 goals is to better understand IPv6 concepts (at least as well as I can understand IPv4). If there&#8217;s any *nix configurations I find helpful along the way, I&#8217;ll post &#8217;em here.<\/p>\n<div class='kindleWidget kindleLight' ><img decoding=\"async\" src=\"https:\/\/www.foell.org\/justin\/wp-content\/plugins\/send-to-kindle\/media\/white-15.png\" \/><span>Send to Kindle<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>My network topology at home is pretty simple, it looks like this: After my recent router hardware and OpenWrt 19.07 firmware upgrades, I noticed my access point connected to my cable modem looked like this on the Status Overview page: Pro-tip: Notice I&#8217;m using the cloudflare DNS servers rather than the ISP-provided ones. The Comcast&hellip; <a href=\"https:\/\/www.foell.org\/justin\/openwrt-bridging-with-ipv6-support\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,8],"tags":[178,24],"class_list":["post-4084","post","type-post","status-publish","format-standard","hentry","category-business","category-ubuntu","tag-ipv6","tag-openwrt"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/4084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/comments?post=4084"}],"version-history":[{"count":8,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/4084\/revisions"}],"predecessor-version":[{"id":4109,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/4084\/revisions\/4109"}],"wp:attachment":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/media?parent=4084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/categories?post=4084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/tags?post=4084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}