Fortigate 6 DHCPv6-PD实验2
本文描述一个Fortigate 6 DHCPv6-PD实验。该实验主要的目的是实验二级DHCPv6-PD前缀分发。
FortiGate算是对ipv6支持得比较积极的厂商的(最积极的我觉得是华为),但在FortiOS 6中ipv6仍然是二等公民,很多设置都不能在GUI下进行,只能使用CLI。 为了把手上的FortiOS 6设备利用起来,设计了以下实验。
拓扑结构
有两台路由器
- 上联路由器(FW1)上联接口(wan)接入本地电信运营商桥接光猫
- 上联路由器(FW1)下联接口(lan)接本地设备网段(包含lan1,lan2,lan3等二层接口)
- 上联路由器(FW1)下联接口(lan4)接下联路由器(FW2)上联接口(wan2)
- 下联路由器(FW2)上联接口(wan2)接上联路由器(FW1)下联接口(lan4)
- 下联路由器(FW2)下联接口(internal7)接本地子网
- 下联路由器(FW2)下联接口(internal6)接另一个本地子网
目标
- 上联路由器(FW1)上联接口(wan)接入本地电信运营商桥接光猫:通过PPPoE拨号,DHCP获取本接口ipv4地址(注:ipv4下运营商不会给我分配网段),SLAAC获取本接口ipv6 GUA地址, DHCPv6获取DNS信息,DHCPv6-PD获取运营商分配的网段(注:我这里是::/60,共16个::/64网段)
- 上联路由器(FW1)下联接口(lan)接本地设备网段(包含lan1,lan2,lan3等二层接口): ipv4/ipv6双栈, ipv4通过dhcpv4向客户端设备下发ip;设置xxxx:xxxx:xxxx:xxx1::/64 GUA网段,把自己的GUA地址设置为xxxx:xxxx:xxxx:xxx1::1/64;通过SLAAC向本网段客户端下发ip、路由器、网关等信息
- 上联路由器(FW1)下联接口(lan4)接下联路由器(FW2)上联接口(wan2):ipv6单栈,设置xxxx:xxxx:xxxx:xxx4::/64 GUA网段,把自己的GUA地址设置为xxxx:xxxx:xxxx:xxx4::1/64;通过SLAAC下GUA地址给下游设备,通过DHCPv6-PD下发xxxx:xxxx:xxxx:xxx8::/61给下游路由器自行分配;通过DHCPv6下发DNS信息给下游路由器
- 下联路由器(FW2)上联接口(wan2)接上联路由器(FW1)下联接口(lan4):
ip6单栈,设置xxxx:xxxx:xxxx:xxx4::/64 GUA网段,通过SLAAC设置自己GUA地址,通过DHCPv6-PD获取到上级路有趣二次分配的::/61网段,通过DHCPv6获取DNS信息ip6单栈,通过DHCPv6获取地址、DNS和前缀信息 - 下联路由器(FW2)下联接口(internal7)接本地子网:ipv6单栈,设置xxxx:xxxx:xxxx:xxx8::/64 GUA网段,设置自己GUA地址为xxxx:xxxx:xxxx:xxx8::1/64,通过DHCPv6 stateful下本网段下发信息
- 下联路由器(FW2)下联接口(internal6)接另一个本地子网:xxxx:xxxx:xxxx:xxx9::/64 GUA网段,设置自己GUA地址为xxxx:xxxx:xxxx:xxx9::1/64,通过SLAAC下本网段下发信息,DHCPv6 stateless下发DNS信息
实现如下:
上游路由器 FW1
上联接口 FW1 - wan
config system interface
edit "wan"
set vdom "root"
set mode pppoe
set allowaccess ping fgfm
set type physical
set role wan
set snmp-index 1
config ipv6
set ip6-mode pppoe
set ip6-allowaccess ping https ssh http
set dhcp6-prefix-delegation enable
set dhcp6-prefix-hint ::/60
set dhcp6-prefix-hint-plt 0
set dhcp6-prefix-hint-vlt 0
set autoconf enable
end
set username "<拨号用户名>"
set password ENC <加密后拨号密码>
next
end
注:与FortiOS 7版不同
FW1 dhcp server
config system dhcp server
edit 1
set dns-service default
set default-gateway 192.168.1.1
set netmask 255.255.255.0
set interface "lan"
config ip-range
edit 1
set start-ip 192.168.1.110
set end-ip 192.168.1.200
next
end
next
end
用于FW1 lan接口网段,该网段是双栈网段
FW1 dhcpv6 server
config system dhcp6 server
edit 1
set interface "lan"
# set dns-service delegated <-- 仅DHCPv6才需要
# set subnet 0:0:0:1::/64 <-- 仅DHCPv6才需要
# set upstream-interface "wan" <-- 仅DHCPv6才需要
# set ip-mode delegated <-- 仅DHCPv6才需要
next
edit 2
set subnet xxxx:xxxx:xxxx:xxx0::/60
set interface "lan4"
config prefix-range
edit 1
set start-prefix xxxx:xxxx:xxxx:xxx8::
set end-prefix xxxx:xxxx:xxxx:xxx8::
set prefix-length 61
next
end
config ip-range
edit 1
set start-ip xxxx:xxxx:xxxx:xxx::2
set end-ip xxxx:xxxx:xxxx:xxx::63
next
end
set dns-server1 XXXX::1 <-- 貌似可以从系统DNS获取,也可以不要
set dns-server2 XXXX::2 <-- 貌似可以从系统DNS获取,也可以不要
next
end
下联接口FW1 - lan
config system interface
edit "lan"
set vdom "root"
set ip 192.168.1.1 255.255.255.0
set allowaccess ping https ssh
set type hard-switch
set stp enable
set role lan
set snmp-index 4
config ipv6
set ip6-mode delegated
set ip6-allowaccess ping https ssh
set ip6-send-adv enable
set ip6-other-flag enable
set ip6-upstream-interface "wan"
set ip6-subnet ::1:0:0:0:1/64
config ip6-delegated-prefix-list
edit 1
set upstream-interface "wan"
set subnet 0:0:0:1::/64
set rdnss-service delegated
next
end
end
next
end
下联接口 FW1-lan4
config system interface
edit "lan4"
set vdom "root"
set type physical
set device-identification enable
set lldp-transmission enable
set role lan
set snmp-index 7
config ipv6
set ip6-address xxxx:xxxx:xxxx:xxx4::1/64
set ip6-allowaccess ping https ssh http
set ip6-send-adv enable
set ip6-manage-flag enable
set ip6-other-flag enable
end
next
end
注:与FortiOS 7版不同
下游路由器 FW2
上联接口 FW2 - wan2
config system interface
edit "wan2"
set vdom "root"
set type physical
set role wan
set snmp-index 3
config ipv6
set ip6-mode dhcp
set ip6-allowaccess ping https ssh http
set dhcp6-prefix-delegation enable
set dhcp6-prefix-hint xxxx:xxxx:xxxx:xxx8::/61
set dhcp6-prefix-hint-plt 0
set dhcp6-prefix-hint-vlt 0
end
next
end
注:与FortiOS 7版不同
下联接口 FW1 - internal6
config system interface
edit "internal6"
set vdom "root"
set allowaccess ping https ssh http
set type physical
set snmp-index 8
config ipv6
set ip6-mode delegated
set ip6-allowaccess ping https ssh http
set ip6-send-adv enable
set ip6-other-flag enable
set ip6-upstream-interface "wan2"
set ip6-subnet ::9:0:0:0:1/64
config ip6-delegated-prefix-list
edit 1
set upstream-interface "wan2"
set subnet 0:0:0:9::/64
set rdnss-service delegated
next
end
end
next
end
下联接口 FW1 - internal7
config system interface
edit "internal7"
set vdom "root"
set allowaccess ping https ssh http
set type physical
set snmp-index 7
config ipv6
set ip6-mode delegated
set ip6-allowaccess ping
set ip6-send-adv enable
set ip6-manage-flag enable
set ip6-other-flag enable
set ip6-upstream-interface "wan2"
set ip6-subnet ::8:0:0:0:1/64
config ip6-delegated-prefix-list
edit 1
set upstream-interface "wan2"
set subnet 0:0:0:8::/64
set rdnss-service delegated
next
end
end
next
end
验证
看接口ipv6和dhcpv6信息
config vdom
edit root
diag ipv6 address list
exe dhcp6 lease-list
next
end
看wan接口获取到的prefix
config vdom
edit root
config system interface
edit wan
config ipv6
get
end
next
end
next
end
看dhcpv6服务器debug信息
config vdom
edit root
diagnose debug reset
diagnose debug console timestamp enable
diagnose debug application dhcp6c -1
diagnose debug enable
next
end
看dhcpv6客户端debug信息
config vdom
edit root
diagnose debug reset
diagnose debug console timestamp enable
diagnose debug application dhcp6s -1
diagnose debug enable
next
end
总结
- 二级Prefix分发可以通过在上级服务器自建DHCPv6服务实验,需要写死运营商分配的前缀,单可通过自定义脚步定时任务更新
- 除了以上配置,还需要添加ipv6 Policies,一般LAN->WAN全通,WAN->LAN ICMPv6全通,具体可参考这里
- DHCPv6 server里要写死前缀,IPv6 address里也要写死前缀,太复杂,实际意义不大。日常使用一级分发前缀就够了,一个::/60前缀可当成16个:/64前缀来用。多级路由器,还是使用Unique local address地址吧。
更多
- 测试FW1 lan4口通过SLAAC下FW2 wan2下发地址
- 测速各种接口不配置GUA地址,只配置Link-Local-Address是否也可以
参考
主要参考资料
- https://blog.rdorman.net/my-journey-to-ipv6-part-2/
- https://community.fortinet.com/t5/FortiGate/Troubleshooting-Tip-DHCPv6-Prefix-Delegation/ta-p/207133
- https://handbook.fortinet.com.cn/IPv6/DHCPv6/DHCPv6-PD.html
其他参考资料
- https://docs.fortinet.com/document/fortigate/6.0.0/handbook/800956/dhcpv6
- https://docs.fortinet.com/document/fortigate/7.4.3/administration-guide/37673/ipv6-prefix-delegation
- https://blog.z0ukun.com/?p=3676
- https://support.huawei.com/enterprise/zh/doc/EDOC1100333970/b9fd6017
- https://support.huawei.com/enterprise/zh/doc/EDOC1100127127/4d83b75b
- https://support.huawei.com/enterprise/zh/doc/EDOC1000178148/459891c4
- https://qiita.com/gaichi/items/e96bf638df642b2a9792
- https://post.smzdm.com/p/akk3vl58/
- https://www.ancii.com/ab2zg7yzq/
- https://baijiahao.baidu.com/s?id=1739017968179592289&wfr=spider&for=pc