LEDE 配置 IPv6 以及公网访问 2020年07月23日 Vanish 854 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 偶然发现云南联通宽带已经分配了 IPv6地址前缀,就想着折腾搞一下。 <div id="toc_container" class="no_bullets" style="background:#F9F9F9;border:1px solid #AAAAAA;padding:10px;font-size:14.25px;color:#555555;font-family:""> <p class="toc_title" style="text-align:center;font-weight:700;"> Contents <span class="toc_toggle" style="font-weight:400;font-size:12.825px;">[<a href="https://www.chenhe.cc/p/284#">hide</a>]</span> <ul class="toc_list" style="background:0px 0px;"> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#i"><span class="toc_number toc_depth_1">1</span> 基础概念</a> </li> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#i-2"><span class="toc_number toc_depth_1">2</span> 如果无法访问光猫</a> </li> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#i-3"><span class="toc_number toc_depth_1">3</span> 配置光猫</a> </li> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#i-4"><span class="toc_number toc_depth_1">4</span> 配置路由</a> </li> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#_IP"><span class="toc_number toc_depth_1">5</span> 外网访问内部设备的公网 IP</a> </li> <li style="background:0px 0px;"> <a href="https://www.chenhe.cc/p/284#IPv6"><span class="toc_number toc_depth_1">6</span> IPv6 常识</a> </li> </ul> </div> <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="i">基础概念</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> IPv6 与 v4 不同。v4 时代运营商一般只给用户分配1个公网 ip,然后用户自己的路由器通过 NAT 再给局域网设备分配内网 IP,也就是 192.168.x.x 这种。这种情况下内网设备没有独立的公网 IP,要想从公网访问必须配置路由器端口转发。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 随着 v4 资源枯竭,现在运营商默认已经不再分配公网 IP 了。要想正常从外网访问,必须做内网穿透。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> IPv6 有无数个地址可供分配,“可以给地球上的每一粒沙子都分配一个 IP 地址”。因此运营商分配的策略也会变化。v4 分配的是一个地址,而 v6 分配的是一个前缀,也就是所谓的 pd,相当于是一整个网段,我们可以自己继续往下分配,从而使得每一个局域网设备都能获得公网 IP 地址。 <blockquote style="font-size:15px;font-family:"color:#555555;background-color:#FFFFFF;"> 这里采用的方案是光猫桥接,LEDE 路由拨号。 </blockquote> <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="i-2">如果无法访问光猫</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 很多人用 LEDE 连接后可以上网但是打不开光猫的管理页面。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">要求:知道光猫的 IP 且不与 LEDE 在同一网段。</span> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 假设光猫接到了路由器的 eth0 口,光猫 IP 是192.168.1.1,进入 LEDE 终端执行下面指令: <pre class=" line-numbers language-bash"><span class="token comment" style="color:#999999;">#eth0是接光猫的网口名称,192.168.1.2随便写(是分配给LEDE WAN的IP),不冲突且位于光猫网段就行。</span> <span class="token function" style="color:#F08D49;">ifconfig</span> eth0 <span class="token number" style="color:#F08D49;">192.168</span>.1.2 netmask <span class="token number" style="color:#F08D49;">255.255</span>.255.0 <span class="token comment" style="color:#999999;">#下面两个是添加防火墙规则允许访问光猫</span> <span class="token comment" style="color:#999999;">#192.168.1.1为光猫自身IP</span> iptables -I forwarding_rule -d <span class="token number" style="color:#F08D49;">192.168</span>.1.1 -j ACCEPT <span class="token comment" style="color:#999999;">#192.168.1.1为光猫自身IP</span> iptables -t nat -I postrouting_rule -d <span class="token number" style="color:#F08D49;">192.168</span>.1.1 -j MASQUERADE <span class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 然后就可以访问光猫的自身 IP 了。 <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="i-3">配置光猫</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 首先得确认光猫启用了 IPv6。一般来说电信应该远程下发配置支持 v6 了,登录光猫后台,进入 状态-网络侧信息,查看 INTERNET 的 IPv6 是否启用就行了。 <blockquote style="font-size:15px;font-family:"color:#555555;background-color:#FFFFFF;"> 如果进去后界面比较美观,显得「不专业」,找不到网络侧状态。那么尝试访问 8080 端口进入专业的登录界面。或者回到标准登录界面,找到并点击类似 快速装维入口 的按钮,再点击 返回登录页面 就好了。 </blockquote> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/ff064335993b9c890a72d7c6f29485a5.png" alt="" style="height:auto;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">如果 IPv6 没有启用</span>,要想办法拿到光猫的超级密码,可以自己搜索型号或者去X宝找人帮忙。进入后台后点击 网络-宽带设置,连接名称选择 INTERNET B_ VID,IP 模式选择 IPv4&IPv6 就好了。(或者尝试联系宽带师傅帮忙更改) <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/016fee4fc214aa9fa47ef47b23770999.png" alt="光猫配置" style="height:auto;" /> <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="i-4">配置路由</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">WAN:</span> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 进入 网络-接口-WAN-高级设置,勾选 使用内置 IPv6管理,自动获取 IPv6 地址。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/0912633090de23e33bf088dfc6ed17ef.png" alt="WAN 设置" style="height:auto;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">LAN:</span> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> LAN-一般设置-高级设置,勾选 使用内置 IPv6 管理,DHCP-IPv6设置,改为服务器模式。 <blockquote style="font-size:15px;font-family:"color:#555555;background-color:#FFFFFF;"> 如果 WAN 配置 IPv4 的时候没有勾选使用对端通告的 DNS 而是手动指定的,那么此处必须同步指定 IPv6 的 DNS。 </blockquote> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/177b53ea76c6cc8b9824278223fb1449.png" alt="" style="height:auto;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">负载均衡:</span> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 这一步必不可少否则 IPv6 流量会不可达。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 在 网络-负载均衡-策略,将所有条目的 备用成员 修改为 默认(使用主路由表)。 <blockquote style="font-size:15px;font-family:"color:#555555;background-color:#FFFFFF;"> 其实也可以在 规则 选项卡看看实际使用了哪些策略,只改这一部分也行。 </blockquote> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/ea9fa801f4c6c8b77be8254e2a258777.png" alt="" style="height:auto;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">到此为止路由器以及下属的设备应该就可以访问 IPv6 啦</span> <img align="absmiddle" alt=":tada:" class="emoji" src="//vzone.me/usr/uploads/auto_save_image/a196e702ca0bdfc8c8396cd150d5b054.png" title=":tada:" style="height:1.5em;width:1.5em;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 可以在 网络-诊断 里 Ping 一下 ipv6.baidu.com,或者在命令行执行 ping -6 ipv6.baidu.com 来测试。 <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="_IP">外网访问内部设备的公网 IP</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 一开始已经讲到,IPv6 一大特点就是可以给局域网每一个设备都分配一个公网 IP 而不需要使用路由器 IP 进行端口转发。现在我们已经成功得到地址了,在网络-接口里看到 LAN 的 IPv6 地址,我们可以用另一个外网设备(例如手机使用流量)进行 ping 是通的,当然前提是你的手机也得有 IPv6 才行,可以使用流量打开 http://www.test-ipv6.com/ 进行测试。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 但是如果 ping 内网设备就不通了,原因是防火墙拦截。进入 网络-防火墙-通信规则-新建转发规则,名字随便填,源区域为 WAN,目标区域为 LAN 添加并编辑。限制地址为 仅IPv6,协议任何,动作接受。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <img src="//vzone.me/usr/uploads/auto_save_image/4937d005b922e5c799d7d6ecafd5de2d.png" alt="防火墙规则" style="height:auto;" /> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> 这样就可以顺利从外网访问内部设备的 IPv6 地址了。 <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">警告 <img align="absmiddle" alt=":bangbang:" class="emoji" src="https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.0.8/assets/Emojify.js/images/basic/bangbang.png" title=":bangbang:" style="height:1.5em;width:1.5em;" /> 上述规则仅供测试,把所有设备所有端口所有协议暴露在公网是非常危险的 <img align="absmiddle" alt=":bomb:" class="emoji" src="https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.0.8/assets/Emojify.js/images/basic/bomb.png" title=":bomb:" style="height:1.5em;width:1.5em;" /> 如有需要,请至少指明目标地址与协议,并妥善配置设备自身的防火墙。测试完成后请立即删除上述转发规则<img align="absmiddle" alt=":heavy_exclamation_mark:" class="emoji" src="https://cdn.jsdelivr.net/wp/wp-editormd/tags/10.0.8/assets/Emojify.js/images/basic/heavy_exclamation_mark.png" title=":heavy_exclamation_mark:" style="height:1.5em;width:1.5em;" /></span> <h2 style="font-family:"font-weight:500;color:#555555;font-size:30px;background-color:#FFFFFF;"> <span id="IPv6">IPv6 常识</span> </h2> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">地址前缀:</span> <ul style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <li> 240e::/20: 中国电信 </li> <li> 2409:8000::/20: 中国移动 </li> <li> 2408:8000::/20: 中国联通 </li> <li> 2000::/3: 全局单播地址。也就是全球可路由的公网地址。上述三个都属于这个。 </li> <li> FE80::/10: 链路本地地址。类似 192.168.x.x </li> <li> 2002::/16: 仅供 6to4 隧道使用 </li> </ul> <p style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <span style="font-weight:700;">特殊地址:</span> <ul style="color:#555555;font-family:"font-size:15px;background-color:#FFFFFF;"> <li> ::: 相当于 0.0.0.0 </li> <li> ::1: 相当于 127.0.0.1 </li> </ul> 版权声明:本文为原创文章,版权归 V-ZONE 所有,允许非商业转载,转载请用链接注明出处。 本文地址:https://vzone.me/882/ 如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。 学习 IPv6 LEDE