找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 19718|回复: 23

官方OpenWrt固件中IPv6使用及负载均衡mwan3

  [复制链接]
发表于 2019-6-21 08:36 | 显示全部楼层 |阅读模式
本帖最后由 yumeimm 于 2019-6-21 09:53 编辑

1. 前言
    由于IPv4地址空间有限并且越来越难以得到,而IPv6提供了巨大的地址空间。因此向IPv6靠拢是不得已的办法。
另外,如果拥有了IPv6地址,很多事情会很方便,当然也带来了安全问题。
方便性例如: 如果VPS同时具有IPv4/IPv6地址, 而我们本地也有IPv4/IPv6地址,那么访问VPS时候,就能够同时以v4/v6
连接VPS,相当于一个物理VPS变身两个逻辑VPS。而且通常IPv6的道路比v4的更畅通更快速。

2. 配置

2.1 IPv6地址
通常我们使用到的IPv6地址有3类,
  • Global-unicast IPv6 address(全球唯一单播IPv6地址, GUA,  前缀2000::/3), 对应于IPv4的公网IP地址,全球唯一。
  • Unique Local IPV6 unicast address: (本地唯一单播地址, LUA, 前缀fc00::/7, 覆盖范围从fc00::/8到fd00::/8), 对应于IPv4的私网IP地址,在整个组织/公司/学校/站点内唯一。常用的为fd00::/8。本组织内可以路由。用于IPv6的NAT功能
  • Link-local address: (链路本地地址,前缀fe80::/10, 用于直连链路,无路由功能), 自动分配,一般不用管。


其它的IPv6地址例如site-local address(站点唯一地址)等已经丢弃不用,其功能由LUA代替。


2.2 配置
   现在最新的OpenWrt已经对IPv6有很好的支持。 而且已知的国内三大运营商电信/联通/移动都已经支持IPv6.
如果家庭拨号没有IPv6,  那么一般在光猫上配置连接为IPv4/IPv6都支持即可,然后找个支持IPv6的路由器就OK。
这里以OpenWrt为例:

1) wan口配置
建立一个wan口用于拨号(默认已经有), 然后建立一个wan6口,使用"DHCPv6客户端协议"即可。




然后,wan6接口要位于防火墙的wan区域



拨号成功后,可以在 WAN_6接口处得到IPv6地址和IPv6-PD地址(IPv6前缀委托地址段)。IPv6-PD地址是运营商分配给你的IPv6地址段,用于你的路由器给你下面的子网设备单独分配IPv6地址,例如电视/手机/机顶盒/电饭煲/洗衣机等。这个地址是GUA-全球唯一单播地址。

2) lan口配置
wan6接口得到IPv6-PD地址后,我们需要在lan接口处配置给子网下面的设备分配IPv6地址的方式,有两种SLAAC(无状态)和DHCPv6(有状态)。
无状态也就是给定IPv6前缀后,由设备自己生成IPv6地址,不需要路由器分配,从而不消耗路由器资源。
有状态也即由路由器确定设备的IPv6地址,并记录(避免重复等, 类似传统的IPv4分配私网地址方式),需要消耗服务器资源。
OpenWrt默认为“无状态+有状态”, 这样每个设备会得到2个GUA地址, 这里推荐只用一种方式即可,通常我选择无状态,以减轻路由负担。
lan口配置在“接口” --> "lan" -->"DHCP服务器" --> IPv6设置:




3)  负载均衡:mwan3
如果你的OpenWrt固件本身安装有mwan3负载均衡,而又用不上,那么停止并禁用它,否则回有干扰。
ssh登录路由,然后输入下面命令:
  1. root@OpenWrt:~# /etc/init.d/mwan3 stop
  2. root@OpenWrt:~# /etc/init.d/mwan3 disable
  3. root@OpenWrt:~#
复制代码
或者在OpenWrt界面, “系统”-->"启动项", 选择mwan3,  关闭并禁用。

4) IPV6 - NAT配置
内网IPv6地址,可以随机生成 fd00::/8网段地址,也可以自己手工输入。例如: fd00:100:100::/48,   范围fd00:100:100:xxxx::/64,  其中的xxxx可以为: 0,1,2,...,  ffff一共6万多个子网。
在LUCI界面的“网络”-->“接口”-->"全局网络选项",  输入“fd00:100:100::/48”即可。  由于通常终端的地址段为/64, 所以这里也可以输入为: fd00:100:100:xx00::/56等,其中xx可以为: 0,1,2, ..., ff。

如果不想使用内网IPv6地址,就把这里清空即可。





5) 添加IPv6的默认路由
由于OpenWrt系统的IPv6默认路由,格式都是: "default from 2xxxx:xxxxx::/64 via xxxx"等格式(带from xxxx),导致可能某些IPv6地址段无法匹配上网。因此需要添加不带from格式的默认路由:
SSH登录进入路由,在目录下"/etc/hotplug.d/iface"建立文件, 90-ipv6, 内容如下,然后根据自己路由替换部分内容(ifname, device, METRIC的值):
(其中ifname的值,通过脚本中添加 "echo $INTERFACE   >>  /tmp/haha.txt" 得到, device值可以输入ip -6 route得到。)

  1. root@OpenWrt:~# cd /etc/hotplug.d/iface/

  2. root@OpenWrt:/etc/hotplug.d/iface# vi 90-ipv6
  3. #!/bin/sh
  4. [ "$ACTION" = ifup ] || exit 0
  5. ifname=wan_6
  6. device=pppoe-wan

  7. [ -z "$ifname" -o "$INTERFACE" = "$ifname" ] || exit 0

  8. METRIC=300
  9. ip -6 route add `ip -6 route show default| grep $device | grep via | sed -e 's/from [^ ]* //' |sed -e 's/metric [^ ]* //' | sed -e '2,$d'`  metric $METRIC

  10. #ip -6 route add `ip -6 route show default| grep $device | grep via | sed -e 's/from [^ ]* //' | sed -e '2,$d'`
  11. logger -t IPv6 "Add IPv6 default route for WANCMCC with metric=$METRIC."

  12. root@OpenWrt:/etc/hotplug.d/iface#
复制代码


6) 防火墙
防火墙默认配置:






为了使得IPv6的内网IPv6地址也能NAT上网,在防火墙的自定义规则处(网络-->防火墙-->自定义规则),加入如下内容:
  1. #add ipv6 NAT
  2. ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  3. ip6tables -A FORWARD -i br-lan -j ACCEPT
  4. ip6tables -t nat -A POSTROUTING -s fd00:100:100::/48 -j MASQUERADE
复制代码






3. 总结及FAQ

1)  wan口已经获得IPV6的GUA地址 IPv6-PD, 但是设备不能上网
A:  这里只提供一种情况, 就是默认的负载均衡,其配置在“负载均衡” -->"接口"-->mwan接口, 处,
对接口是否激活以及启用是通过ping的方式。如果不用负载均衡,请关闭并禁用它,一般都能解决。(见上文配置)

2) 内网IPv6地址不能上网

A:  检查是否配置了自定义的防火墙规则。然后用ping测试。
ssh进入Openwrt系统, 然后控制台输入ping命令(例如国内的公共IPv6DNS 240c::6666)

  1. root@OpenWrt:~# ping -I fd00:100:100::1   240c::6666
  2. PING 240c::6666 (240c::6666) from fd00:100:100::1: 56 data bytes
  3. 64 bytes from 240c::6666: seq=0 ttl=53 time=81.043 ms
  4. 64 bytes from 240c::6666: seq=1 ttl=53 time=81.244 ms
  5. 64 bytes from 240c::6666: seq=2 ttl=53 time=81.196 ms
  6. ^C
  7. --- 240c::6666 ping statistics ---
  8. 3 packets transmitted, 3 packets received, 0% packet loss
  9. round-trip min/avg/max = 81.043/81.161/81.244 ms
  10. root@OpenWrt:~#
复制代码


Windows 下面ping:
  1. ping -S fd00:100:100:xxxxx(你PC的ipv6内网地址)      240c::6666
复制代码











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-21 12:44 来自手机 | 显示全部楼层
写太多了,现在openwrt ipv6基本不需要配置,mwan3和ipv6也没冲突的

点评

本来想写IPv6的负载均衡的,但是比较复杂点,就略了。 但是默认的mwan3和IPv6还是有点冲突的,需要配置才可以。  详情 回复 发表于 2019-6-21 17:25
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-6-21 17:25 | 显示全部楼层
huaxie1988 发表于 2019-6-21 12:44
写太多了,现在openwrt ipv6基本不需要配置,mwan3和ipv6也没冲突的

本来想写IPv6的负载均衡的,但是比较复杂点,就略了。

但是默认的mwan3和IPv6还是有点冲突的,需要配置才可以。

点评

确实还有冲突,我的就是能获取ipv6地址,但是就是打不开网页,上不去网  详情 回复 发表于 2019-6-25 11:15
正需要IPv6的负载均衡,希望能写一下!  详情 回复 发表于 2019-6-23 23:04
没有的事,ipv6和mwan3我一直在用,有冲突是好久前了  详情 回复 发表于 2019-6-22 10:01
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-22 10:01 来自手机 | 显示全部楼层
yumeimm 发表于 2019-6-21 17:25
本来想写IPv6的负载均衡的,但是比较复杂点,就略了。

但是默认的mwan3和IPv6还是有点冲突的,需要配 ...

没有的事,ipv6和mwan3我一直在用,有冲突是好久前了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-22 10:40 | 显示全部楼层
学习了  好东西~~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-22 21:21 | 显示全部楼层
谢谢,之前win10一直ipv6不能通,果然把mwan3关了就好了。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-23 23:04 | 显示全部楼层
yumeimm 发表于 2019-6-21 17:25
本来想写IPv6的负载均衡的,但是比较复杂点,就略了。

但是默认的mwan3和IPv6还是有点冲突的,需要配 ...

正需要IPv6的负载均衡,希望能写一下,谢谢!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-23 23:16 来自手机 | 显示全部楼层
谢谢分享有用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-24 23:18 | 显示全部楼层
有点没懂,IPv6还用nat是不是就没意义了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-25 00:32 | 显示全部楼层
不错。。小太白又学习了。。。今天刷了OpenWrt R9.6.1 for x86/x64发现没有IPV6。。。不知道是不是不支持还是。。。。哪里设置不对
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-25 11:15 | 显示全部楼层
yumeimm 发表于 2019-6-21 17:25
本来想写IPv6的负载均衡的,但是比较复杂点,就略了。

但是默认的mwan3和IPv6还是有点冲突的,需要配 ...

确实还有冲突,我的就是能获取ipv6地址,但是就是打不开网页,上不去网
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-17 22:00 | 显示全部楼层
我的也是,从路由器是能ping通ipV6网站,内网设备也能获得v6地址(不是f开头的),但是就是不能访问v6地址或网站
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-23 23:44 | 显示全部楼层
启用mwan3,刚拨号IPV6可以用,过一段时间就不通了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-23 23:50 来自手机 | 显示全部楼层
我的能访问ipv6网站,但是mwan3的wan6接口显示离线。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2020-1-6 00:29 | 显示全部楼层
非常感谢楼主……成功了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-24 04:04

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表