请选择 进入手机版 | 继续访问电脑版
查看: 799|回复: 10

[分享] ER-X SFP原生IPv6设置

[复制链接]

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
发表于 2018-9-11 15:29:29 | 显示全部楼层 |阅读模式
本帖最后由 csvw 于 2018-9-12 16:50 编辑

RT,原生IPv6部分及相应防火墙的设置,需通过cli或者ssh手动输入,因为到目前为止,ubnt固件ipv6的gui部分并不完整
网上查了一下相关资料,不少都有一些小问题或错误,此设置可完整通过如test-ipv6.com等网站的IPv6测试
ipv4部分可自行通过向导或手动输入补全,因为gui已经很完善
适用于ER-X SFP或ER-X,edgerouter其他机型可做相应修改后适用
wan:eth0; switch0:eth1,eth2,eth3,eth4
所用某中部省份联通宽带,默认prefix长度为60

configure
#Configure the PPPoE for IPv6(eth0):
set interfaces ethernet eth0 pppoe 0 ipv6 enable
set interfaces ethernet eth0 pppoe 0 ipv6 address autoconf
set interfaces ethernet eth0 pppoe 0 ipv6 dup-addr-detect-transmits 1
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 prefix-length /60
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd rapid-commit enable
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd prefix-only

#Enable IPv6 SLAAC on the LAN(switch0):
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 host-address ::1
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 prefix-id :0
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service slaac

#Enable IPv6 on switch0:
set interfaces switch switch0 ipv6 dup-addr-detect-transmits 1
set interfaces switch switch0 ipv6 router-advert cur-hop-limit 64
set interfaces switch switch0 ipv6 router-advert link-mtu 0
set interfaces switch switch0 ipv6 router-advert managed-flag false
set interfaces switch switch0 ipv6 router-advert max-interval 600
set interfaces switch switch0 ipv6 router-advert other-config-flag false
set interfaces switch switch0 ipv6 router-advert prefix '::/64' autonomous-flag true
set interfaces switch switch0 ipv6 router-advert prefix '::/64' on-link-flag true
set interfaces switch switch0 ipv6 router-advert prefix '::/64' valid-lifetime 2592000
set interfaces switch switch0 ipv6 router-advert reachable-time 0
set interfaces switch switch0 ipv6 router-advert retrans-timer 0
set interfaces switch switch0 ipv6 router-advert send-advert true

#create a policy for WAN->LAN Clients:
set firewall ipv6-name WANv6_IN default-action drop
set firewall ipv6-name WANv6_IN description 'IPv6 packets from the internet to LAN and WAN'
set firewall ipv6-name WANv6_IN enable-default-log
set firewall ipv6-name WANv6_IN rule 10 action accept
set firewall ipv6-name WANv6_IN rule 10 description 'Allow established/related packets'
set firewall ipv6-name WANv6_IN rule 10 protocol all
set firewall ipv6-name WANv6_IN rule 10 state established enable
set firewall ipv6-name WANv6_IN rule 10 state related enable
set firewall ipv6-name WANv6_IN rule 20 action drop
set firewall ipv6-name WANv6_IN rule 20 description 'Drop invalid packets'
set firewall ipv6-name WANv6_IN rule 20 protocol all
set firewall ipv6-name WANv6_IN rule 20 state invalid enable
set firewall ipv6-name WANv6_IN rule 30 action accept
set firewall ipv6-name WANv6_IN rule 30 description 'Allow ICMPv6 packets'
set firewall ipv6-name WANv6_IN rule 30 protocol icmpv6

#create a policy for WAN->Router:
set firewall ipv6-name WANv6_LOCAL default-action drop
set firewall ipv6-name WANv6_LOCAL description 'IPv6 packets from the internet to the router'
set firewall ipv6-name WANv6_LOCAL enable-default-log
set firewall ipv6-name WANv6_LOCAL rule 10 action accept
set firewall ipv6-name WANv6_LOCAL rule 10 description 'Allow established/related packets'
set firewall ipv6-name WANv6_LOCAL rule 10 protocol all
set firewall ipv6-name WANv6_LOCAL rule 10 state established enable
set firewall ipv6-name WANv6_LOCAL rule 10 state related enable
set firewall ipv6-name WANv6_LOCAL rule 20 action accept
set firewall ipv6-name WANv6_LOCAL rule 20 description 'Allow ICMPv6 packets'
set firewall ipv6-name WANv6_LOCAL rule 20 protocol icmpv6
set firewall ipv6-name WANv6_LOCAL rule 30 action accept
set firewall ipv6-name WANv6_LOCAL rule 30 description 'Allow DHCPv6 client/server'
set firewall ipv6-name WANv6_LOCAL rule 30 destination port 546
set firewall ipv6-name WANv6_LOCAL rule 30 source port 547
set firewall ipv6-name WANv6_LOCAL rule 30 protocol udp
set firewall ipv6-name WANv6_LOCAL rule 40 action drop
set firewall ipv6-name WANv6_LOCAL rule 40 description 'Drop invalid packets'
set firewall ipv6-name WANv6_LOCAL rule 40 protocol all
set firewall ipv6-name WANv6_LOCAL rule 40 state invalid enable
set firewall ipv6-receive-redirects disable
set firewall ipv6-src-route disable
set interfaces ethernet eth0 pppoe 0 firewall in ipv6-name WANv6_IN
set interfaces ethernet eth0 pppoe 0 firewall local ipv6-name WANv6_LOCAL

commit
save
exit
reboot
y

回复

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 2018-9-12 20:57:08 | 显示全部楼层
rchbk 发表于 2018-9-12 17:53
我的意思是你这个配置,主机只能获取IPv4的DNS,而没有IPv6的DNS
尽管IPv4的DNS能够支持解析IPv6站点,但 ...

明白你的意思了。
不过关于这个参数的设置你的说法有问题,设置为false并不会导致dns无法配置完成。
实际上ipv6的dns问题一直是存在的,并且在不同操作系统中存在不同的兼容问题
ipv6的dns分配有三种方式,rdnss,dhcpv6 stateless和dhcpv6 stateful
win10之前的版本都不支持rdnss,好像最近的win10才开始支持rdnss,但适用条件比较苛刻,使用dhcpv6也会有些小问题
安卓不支持dhcpv6 stateful
可以说到目前为止,并不存在在不同使用环境中给终端提供ipv6 dns统一的完全可靠的方式
回复 支持 1 反对 0

使用道具 举报

11

主题

113

帖子

537

积分

飞鸽传书

Rank: 4Rank: 4Rank: 4Rank: 4

积分
537
发表于 2018-9-11 16:03:19 | 显示全部楼层
DNS如何分配?这样只能slaac分配地址。还是无法完整的使用ipv6

关于DNS的配置看文档需要配置RDNSS扩展选项或者DHCPv6 Only或者SLAAC+DHCPv6混合
目前根本没找到RDNSS的配置,DHCPv6 Only由于前缀拨号时会变化也没找到合适的方法
回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 2018-9-11 19:28:55 | 显示全部楼层
rchbk 发表于 2018-9-11 16:03
DNS如何分配?这样只能slaac分配地址。还是无法完整的使用ipv6

关于DNS的配置看文档需要配置RDNSS扩展选项 ...

dns直接来源于isp,并没有自定义dns服务器,完整使用ipv6没有任何问题
不太理解你的意思
回复 支持 反对

使用道具 举报

11

主题

113

帖子

537

积分

飞鸽传书

Rank: 4Rank: 4Rank: 4Rank: 4

积分
537
发表于 2018-9-12 17:53:08 | 显示全部楼层
本帖最后由 rchbk 于 2018-9-12 18:17 编辑
csvw 发表于 2018-9-11 19:28
dns直接来源于isp,并没有自定义dns服务器,完整使用ipv6没有任何问题
不太理解你的意思 ...

我的意思是你这个配置,主机只能获取IPv4的DNS,而没有IPv6的DNS
尽管IPv4的DNS能够支持解析IPv6站点,但是还是不完善。
华为和思科的路由器可以通过slaac和DHCPv6混合方式给主机配置IPv6 DNS你上面的配置里面有一个
set interfaces switch switch0 ipv6 router-advert other-config-flag false
这个直接导致了DNS无法配置完成。实际上,应该是配置了DHCPv6之后这样设定
set interfaces switch switch0 ipv6 router-advert other-config-flag true
v6dns.jpg


回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 2018-9-13 12:08:19 | 显示全部楼层
本帖最后由 csvw 于 2018-9-13 16:15 编辑

set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service slaac
如果改成
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service dhcpv6-stateless
windows终端(最新版win10)能正确获取ipv6 dns服务器,并能完整通过ipv6测试
可惜的是,安卓手机dns获取就不正常了,不能通过ipv6测试

ps:不同版本的win10在ipv6支持度上都不相同,比如之前一直不支持rdnss,某个版本升级后竟然不支持dhcpv6 stateless了,见:https://social.technet.microsoft ... in10itpronetworking
回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 2018-9-13 16:36:56 | 显示全部楼层
本帖最后由 csvw 于 2018-9-13 19:44 编辑

研究了固件向导里关于ipv6设置的部分,为了最大程度的利用gui,减少手动输入的工作量,发现启用gui向导里的dhcpv6 pd后,需要手动输入若干命令后才能完整支持ipv6:
1. 首先在gui里启用dhcpv6 pd,如图: 2.PNG

2. 重启后,打开cli或ssh输入如下命令
configure
#enable the IPv6 option for the PPPoE connection
set interfaces ethernet eth0 pppoe 0 ipv6 enable


#set up a default route to use the PPPoE interface
set protocols static interface-route6 ::/0 next-hop-interface pppoe0
commit
save
exit
reboot
y


3. 现在设置已经完成,安卓手机能顺利通过ipv6测试,windows终端无法获取ipv6的dns服务器而无法通过,因为windos不支持默认的rdnss,如果想要windows终端能自动获取ipv6的dns服务器,可通过cli,ssh或config tree做如下修改:
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service slaac改为:
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd pd 0 interface switch0 service dhcpv6-stateless
现在windows终端能完整通过ipv6测试。
回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 2018-10-10 16:20:37 | 显示全部楼层
ps:和ipv4防火墙规则有所不同,因为icmp对dhcpv6-pd来说非常重要,而路由器默认模板里的ipv6防火墙规则并未允许icmpv6数据包进入,所以需要在WANv6_IN规则里加入一条:
configure
set firewall ipv6-name WANv6_IN rule 30 action accept
set firewall ipv6-name WANv6_IN rule 30 description 'Allow IPv6 icmp'
set firewall ipv6-name WANv6_IN rule 30 protocol ipv6-icmp
commit
save

ps1: 此外,win10默认的防火墙也没有允许icmp数据包,必须同时手动加入一条允许icmpv6的规则,否则在www.ipv6-test网站进行ipv6测试时,IPv Connectivity里的ICMP项将永远是Filtered
回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 4 天前 | 显示全部楼层
本帖最后由 csvw 于 2018-10-14 10:14 编辑

ps2: 如上设置都会使用isp自动分配的dns服务器,如需使用自设定的dns(这里用的百度dns),可做如下修改:
configure
//pppoe0不获取isp ipv4 dns
set interfaces ethernet eth0 pppoe 0 name-server none
//pppoe0不获取isp ipv6 dns
set interfaces ethernet eth0 pppoe 0 dhcpv6-pd no-dns
//自定义dns
set system name-server 180.76.76.76
set system name-server 2400:da00::6666
set service dns forwarding system
commit
save








回复 支持 反对

使用道具 举报

7

主题

42

帖子

179

积分

烽火狼烟

Rank: 3Rank: 3Rank: 3

积分
179
发表于 3 天前 | 显示全部楼层
csvw 发表于 2018-9-12 20:57
明白你的意思了。
不过关于这个参数的设置你的说法有问题,设置为false并不会导致dns无法配置完成。
实际 ...

大兄弟,我最近也在折腾ipv6,我想请教一下,ipv6的三种dns分配方式,rdnss,dhcpv6 stateless和dhcpv6 stateful,和终端对应资料哪里有?
现在总共有3个平台:安卓平台、IOS平台以及windows平台;从您的描述中,我得知:win10支持rdnss,安卓不支持dhcpv6 stateful,那么win10是否支持dhcpv6 stateless,另外IOS平台呢
我想做的是,既然找不到一个通用的,就设置一个适用范围最广的,但我不知道应该选哪个;另外,是不是手动指定DNS就不用关心这个了(终端还是自动获取)?
回复 支持 反对

使用道具 举报

3

主题

55

帖子

1436

积分

有线传输

Rank: 5

积分
1436
 楼主| 发表于 3 天前 | 显示全部楼层
aa51513 发表于 2018-10-15 15:39
大兄弟,我最近也在折腾ipv6,我想请教一下,ipv6的三种dns分配方式,rdnss,dhcpv6 stateless和dhcpv6 s ...

不,win10一直都不支持rdnss,安卓一直能支持rdnss,新版安卓同时支持rdnss和dhcpv6 stateless,老版安卓是否支持dhcpv6不确定,手里没有ios平台,无法测试
其实,这根本就不是问题,因为影响的仅仅是终端是否能自动获取ipv6 dns服务器,而实际上ipv4 dns是支持ipv6域名解析的。从www.test-ipv6.com等ipv6测试网站上也能确认,即使终端无法自动获取ipv6 dns服务器,也是能通过测试的。如果你实在想用ipv6 dns,也能在终端的tcp/ipv6网络设置里手动输入。
回复 支持 反对

使用道具 举报

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

本版积分规则

优倍快网络技术咨询(上海)有限公司 沪ICP备13034452

© ubnt.com.cn All Rights Reserved.本站发布的所有内容,未经许可,不得转载.

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