FortiLink环形组网配置举例
组网需求
FortiGate运行HA-Cluster,核心交换和接入交换机采用全聚合接口(FortiSwitch全自动聚合,接线即可,无需手工配置聚合接口)对接的环形组网结构。
网络拓扑
- 两台FortiGate配置为HA主备模式。
- 整体规划:
- 外网IP网段规划:
- WAN1联通出口:IP 202.100.1.21,GW 202.100.1.192
- WAN2电信出口:IP 101.100.1.21,GW 101.100.1.192
- WAN1和WAN2合并成SD-WAN接口。
- 内网IP网段规划,FGT通过FortiLink+Capwap协议统一的接管FortiSW和FortiAP,为有线和无线统一进行管理和业务处理:
- 有线网络规划:VLAN 10,192.168.10.1
- 无线网络规划:员工WIFI VLAN 20,192.168.20.1
- 无线网络规划:访客WIFI VLAN 30,192.168.30.1
- 管理FortiAP:VLAN 99,192.168.99.1
- FortiLink互联部分规划:
- FortiGate的a和b做聚合接口与Fortiswitch的后两个接口互联即可实现聚合接口的FortiLink管理。
- 加入FortiLink的接口自动变为聚合口成员。
- 外网IP网段规划:
配置步骤
准备事项
首先确认FortiGate如下全局配置已开启(一般默认为开启状态)。
config system settings set gui-switch-controller enable end
配置两台FortiGate的HA主备模式(配置方法请参考HA双机热备→HA典型基础配置)。
配置wan1和wan2的IP地址。
配置FortiLink实现FortiSwith上线,我们只需要将用于FortiLink的成员接口加入FortiLink接口即可。此拓扑中,FortiGate用于连接FortiSwitch的接口为a和b,编辑FortiLink接口,将a和b加入FortiLink(某些产品型号会默认将两个接口加入FortiLink),开启自动授权设备,关闭FortiLink分离接口,其他配置保持默认,可以看到FortiLink为一个聚合接口。
FortiLink分离接口什么时候应该开启? 分离接口的意是,如果聚合接口的port1和port2分别连接了一台SW,在没有使用MCLAG的情况下(没开启堆叠功能),则聚合接口的port1和port2没办法同时UP(同时开启聚合接口无法正常工作),因此必须开启FortiLink分离接口功能,让聚合接口只有一个物理接口(port1)是处于UP状态的,另外一个物理接口(port2)处于DOWN的备份状态,当port1接口状态DOWN,则Port2立即接管Port1的工作,让聚合接口的FortiLink继续运行,这是一个聚合接口在FortiLink管理时候的备份机制。
FortiLink split interface 什么时候应该disable? 如果FGT的聚合接口只接到了一台交换机上,并没有跨交换机聚合(没有MCLAG,也不需要FortiLink split interface),因此这种情况应该让聚合接口的两个物理接口port1和port2同时UP,两个接口同时工作起来,以便提供更高带宽和备份的作用。相关CLI:
NTP: config system ntp set ntpsync enable set server-mode enable set interface "fortilink" end ---------------------------------------------------------------------- DHCP: config system dhcp server edit 2 set dns-service local set ntp-service local set default-gateway 10.255.1.1 set netmask 255.255.255.0 set interface "fortilink" config ip-range edit 1 set start-ip 10.255.1.2 set end-ip 10.255.1.254 next end set vci-match enable set vci-string "FortiSwitch" "FortiExtender" next end ---------------------------------------------------------------------- FortiLink: config system interface edit "fortilink" set vdom "root" set fortilink enable set ip 10.255.1.1 255.255.255.0 set allowaccess ping fabric set type aggregate set member "a" "b" set lldp-reception enable set lldp-transmission enable set auto-auth-extension-device enable set fortilink-split-interface disable set switch-controller-nac "fortilink" set switch-controller-dynamic "fortilink" set swc-first-create 255 next end
连接FortiLink
配置完FortiGate之后,这个时候再去接FortiGate的FortiLink到FortiSwitch的线,以及FortiSwitch之间的线,严格按照拓扑图,从核心交换机往接入交换机这样的顺序接线。FortiSwitch如果以前有使用过,建议都恢复一下出厂设置,然后再加入到FortiLink。
FortiSwitch的靠后接口一般都默认开启了FortiLink接口属性,如果接前面的接口可能会无法加入到FortiLink,因此FortiSwitch的FortiLink最好都使用靠后的接口进行接线。FortiSwitch各型号默认开启FortiLink功能的接口如下:
FortiSwitch型号 默认开启FortiLink的接口 FS-108D-POE port9–port10 FS-108E, FS-108E-POE, FS-108E-FPOE port7–port10 FSR-112D-POE port5–port12 FS-124D, FS-124D-POE port23–port26 FSR-124D port1-port4, port21–port28 FS-124E, FS-124E-POE, FS-124E-FPOE port21–port28 FS-148E, FS-148E-POE port21–port52 FS-224D-POE port21–port24 FS-224D-FPOE port21–port28 FS-224E, FS-224E-POE port21–port28 FS-248D, FS-248D-FPOE port45–port52 FS-248D-POE port47–port50 FS-248E-POE, FS-248E-FPOE port45–port52 FS-424D, FS-424D-POE, FS-424D-FPOE port23–port26 FS-424E-Fiber port1-port30 FS-426E-FPOE-MG port23-port30 FS-448D, FS-448D-POE, FS-448D-FPOE port45–port52 FS-524D, FS-524D-FPOE port21–port30 FS-548D port39–port54 FS-548D-FPOE, FS-548DN port45–port54 FS-1024D port1–port24 FS-1048D, FS-1048E port1–port52 FS-3032D, FS-3032E port1–port32 如果FortiSwitch无法被FortiGate管理,登陆到FortiSwitch上进行确认接口是否开启了FortiLink。
FortiSwitch # show switch interface port9 config switch interface edit "port9 set auto-discovery-fortilink enable //接口下又此命令的接口才可以自动加入到FortiLink中 next end
交换机之间如果接多根线,会自动进行聚合,但是FortiLink自动聚合会花比较长的时间,建议可以先接单线,等FortiLink的拓扑较快的形成结束之后,再增加彼此之间的另外一根线,再进行自动聚合,这样效率会比较高一些。
接线是很重要的步骤,仔细看拓扑图,做好接口标签,不要接错。
接好线之后,FortiSwitch和FortiGate之间会自动在后台进行FortiLink、CAPWAP、MSTP、聚合接口的协商加入等操作,等FortiLink的管理结束之后,在FortiGate上会看到一个网站的FortiSwitch拓扑图,和我们规划的拓扑图应该是一致的,可以仔细核对接线是否正确。
在FortiGate上进入无线&交换机控制器→FortiSwitch管理页面,查看交换机被管理状态,可以看到4台交换机均已上线。
修改视图为拓扑,可以更直观的看到当前防火墙与交换机的接口连接。
交换机加入到FortiGate的FortiLink,会先清除配置再重启,然后从standalone的状态进入到“Fortilink remote control”的状态,后续所有的配置都通过FortiGate下发即可。
编辑交换机,可以修改交换机名字以及升级版本,如果交换机很多的话,规划好的命名可以有效的迅速找到交换机的位置。
FortiSwitch之间接多根线进行FortiLink互联,会默认自动聚合。其实接一根网线也是聚合的,只是聚合组里面只有一个接口而已,因此多根网线直连,这些直连的线都会自动加入到一个聚合接口里面(注意不能跨交换机,跨交换机的聚合是MCLAG)。
FortiGate # exec ssh admin@10.255.1.2 Warning: Permanently added '10.255.1.2' (ED25519) to the list of known hosts. admin@10.255.1.2's password: S108EN5918001303 # show switch trunk path=switch, objname=trunk, tablename=(null), size=752 config switch trunk edit "GT61FTK22054783" set mode lacp-active set auto-isl 1 set fortilink 1 set members "port7" "port8" next edit "4ENTF20002824-0" set mode lacp-active set auto-isl 1 set members "port5" "port6" next edit "4ENTF22001220-0" set mode lacp-active set auto-isl 1 set members "port3" "port4" next edit "8EN5919002951-0" set mode lacp-active set auto-isl 1 set members "port1" "port2" next end
另外建议给每台交换机命名一个名字,如果交换机很多的话,规划好的命名可以有效的迅速找到交换机的位置。
STP状态查看
FortiLink之间的交换机互联,如果不用MCLAG的话,本质上是MSTP(多实例生成树)在整网统一的进行接口环路计算,从而实现网络的备份,与快速收敛恢复。 可以通过FGT的命令行界面用Telent/SSH到FortiSwitch上并分别查看四台FortiSwitch的STP状态。
主核心交换机(303)上查看:
FortiGate # exec ssh admin@10.255.1.2 Warning: Permanently added '10.255.1.2' (ED25519) to the list of known hosts. admin@10.255.1.2's password: Primary_Core_Switch # diagnose stp instance list MST Instance Information, primary-Channel: ... Instance ID 15 Config Priority 24576, VLANs 4094 Bridge MAC e81cba1c0900 Regional Root MAC e81cba1c0900, Priority 24576, Path Cost 0 (This bridge is the regional root) //直连主FGT的FSW会自动将网桥优先级降低到:Priority 24576,因此整个FortiLink二层网络中,自己就是根网桥 TCN Events Triggered 10 (0d 0h 24m 59s ago), Received 67 (0d 0h 24m 26s ago) Port Speed Cost Priority Role State Flags ________________ ______ _________ _________ ___________ __________ _______________ internal 1G 20000 128 DESIGNATED FORWARDING ED GT61FTK22054783 2G 10000 128 DESIGNATED FORWARDING ED //与主FortiGate_FortiLink互联的自动生成的聚合接口,STP为指定接口,转发状态 4ENTF22001220-0 2G 1 128 DESIGNATED FORWARDING EN //与序列号220结尾的FSW互联的自动生成的聚合接口,STP为指定接口,转发状态 8EN5919002951-0 2G 1 128 DESIGNATED FORWARDING EN //与备核心交换机303互联的自动生成的聚合接口,STP为指定接口,转发状态 Flags: EN(STP enable), ED(Edge), LP(Loop Protection Triggered) RG(Root Guard Triggered), BG(BPDU Guard Triggered), IC(PVST Port Inconsistent) MV(PVST Port Vlan Mismatch)
备核心交换机(951)上查看:
FortiGate # exec ssh admin@10.255.1.5 Warning: Permanently added '10.255.1.5' (ED25519) to the list of known hosts. admin@10.255.1.2's password: Secondary_Core_Switch # diagnose stp instance list MST Instance Information, primary-Channel: ... Instance ID 15 Config Priority 28672, VLANs 4094 Bridge MAC 04d59010ff48 //自己的MAC Regional Root MAC e81cba1c0900, Priority 24576, Path Cost 1, Root Port 8EN5918001303-0 //互联根网桥的信息:根网桥MAC e81cba1c0900,根网桥优先级 24576,互联根网桥的接口 8EN5918001303-0 TCN Events Triggered 4 (0d 0h 41m 4s ago), Received 2 (0d 0h 41m 32s ago) Port Speed Cost Priority Role State Flags ________________ ______ _________ _________ ___________ __________ _______________ internal 1G 20000 128 DESIGNATED FORWARDING ED 8EN5918001303-0 2G 1 128 ROOT FORWARDING EN //与主核心交换机303互联的自动生成的聚合接口,STP为root接口,转发状态 4ENTF20002824-0 2G 1 128 DESIGNATED FORWARDING EN //与序列号824结尾的FSW互联的自动生成的聚合接口,STP为指定接口,转发状态 GT61FTK22054602 2G 10000 128 DESIGNATED FORWARDING ED //与备FortiGate_FortiLink互联的自动生成的聚合接口,STP为指定接口,转发状态(但由于连的是备防火墙,实际物理口是discarding状态) Flags: EN(STP enable), ED(Edge), LP(Loop Protection Triggered) RG(Root Guard Triggered), BG(BPDU Guard Triggered), IC(PVST Port Inconsistent) MV(PVST Port Vlan Mismatch)
接入交换机(220)上查看:
FortiGate # exec ssh admin@10.255.1.3 admin@10.255.1.3's password: Access_TAC_Switch # diagnose stp instance list MST Instance Information, primary-Channel: Instance ID 15 Config Priority 28672, VLANs 4094 Bridge MAC ac712e465448 //自己的MAC地址 Regional Root MAC e81cba1c0900, Priority 24576, Path Cost 1, Root Port 8EN5918001303-0 //互联根网桥的信息:根网桥MAC e81cba1c0900,根网桥优先级 24576,互联根网桥的接口8EN5918001303-0 TCN Events Triggered 1 (0d 1h 12m 46s ago), Received 6 (0d 1h 9m 25s ago) Port Speed Cost Priority Role State Flags ________________ ______ _________ _________ ___________ __________ _______________ internal 1G 20000 128 DESIGNATED FORWARDING ED 8EN5918001303-0 2G 1 128 ROOT FORWARDING EN //接主核心交换机303,STP为根接口,转发状态 4ENTF20002824-0 2G 1 128 DESIGNATED FORWARDING EN //接Sales接入交换机824,STP为指定接口,转发状态 Flags: EN(STP enable), ED(Edge), LP(Loop Protection Triggered) RG(Root Guard Triggered), BG(BPDU Guard Triggered), IC(PVST Port Inconsistent) MV(PVST Port Vlan Mismatch)
接入交换机(824)上查看:
FortiGate # exec ssh admin@10.255.1.4 admin@10.255.1.4's password: Access_Sales_Switch # diagnose stp instance list MST Instance Information, primary-Channel: Instance ID 15 Config Priority 28672, VLANs 4094 Bridge MAC e023ff54e7e0 //自己的MAC地址 Regional Root MAC e81cba1c0900, Priority 24576, Path Cost 1, Root Port 8EN5918001303-0 //互联根网桥的信息:根网桥MAC e81cba1c0900,根网桥优先级 24576,互联根网桥的接口8EN5918001303-0 TCN Events Triggered 1 (0d 1h 22m 45s ago), Received 7 (0d 1h 18m 58s ago) Port Speed Cost Priority Role State Flags ________________ ______ _________ _________ ___________ __________ _______________ internal 1G 20000 128 DESIGNATED FORWARDING ED 4ENTF22001220-0 2G 1 128 ALTERNATIVE DISCARDING EN //接TAC接入交换机303,STP为备份接口ALTERNATIVE DISCARDING,处于阻塞状态 8EN5919002951-0 2G 1 128 ROOT FORWARDING EN //接备核心交换机951,STP为根接口,转发状态 Flags: EN(STP enable), ED(Edge), LP(Loop Protection Triggered) RG(Root Guard Triggered), BG(BPDU Guard Triggered), IC(PVST Port Inconsistent) MV(PVST Port Vlan Mismatch)
FortiLink组网中STP是很重要部分,通常STP是一个稳定的状态,一旦出现FortiLink不稳定,则需要观察STP的状态和选举结果,从中找到相关线索,以便查出为何STP不稳定的原因,对于排错来说是很重要的。
FortiLink+STP稳定状态的实际数据转发拓扑图如下。
在FortiGate查看交换机管理状态。
FortiGate # execute switch-controller get-conn-status Managed-devices in current vdom root: FortiLink interface : fortilink SWITCH-ID VERSION STATUS FLAG ADDRESS JOIN-TIME NAME S108EN5918001303 v7.0.6 (092) Authorized/Up - 10.255.1.2 Mon Mar 6 18:20:48 2023 Primary_Core_Switch S224ENTF20002824 v7.0.6 (092) Authorized/Up - 10.255.1.4 Tue Mar 7 14:32:14 2023 Access_Sales_Switch S224ENTF22001220 v7.0.6 (092) Authorized/Up - 10.255.1.3 Tue Mar 7 14:32:43 2023 Access_TAC_Switch S108EN5919002951 v7.0.6 (092) Authorized/Up - 10.255.1.5 Tue Mar 7 14:35:03 2023 Secondary_Core_Switch Flags: C=config sync, U=upgrading, S=staged, D=delayed reboot pending, E=config sync error, 3=L3 Managed-Switches: 4 (UP: 4 DOWN: 0)
最后不要忘记,在FortiLink的聚合接口和FortiLink管理配置完毕,记得把这个FortiLink聚合接口加入到HA的监控接口列表中,这样当主核心交换机挂了(比如断电)之后,业务才可以平稳切换到备防火墙上。
创建VLAN
FortiGate通过FortiLink + Capwap协议统一的接管FortiSwitch和FortiAP,为有线和无线统一进行管理和业务处理。
进入FortiGate的无线&交换机控制器→FortiSwitch VLAN页面,新建有线网络VLAN 10、员工无线网络VLAN 20、访客无线网络VLAN 30、管理FortiAP VLAN 99。注意管理FortiAP的VLAN接口要开启Security Fabric,包含CAPWAP。
VLAN创建完成。
分配VLAN
Sales接入交换机的port1接FortiAP,配置为Trunk模式,允许 VLAN20和VLAN30,VLAN20用于WIFI-STAFF的SSID用户,VLAN30用于WIFI-GUEST的SSID用户。另外本地VLAN设置为VLAN 99,用于FortiAP的管理(FortiAP的管理相当于使用不打vlan-tag的VLAN 99,本地VLAN默认是VLAN 1,因此只需要将本地VLAN设置为VLAN 99即可)。
TAC接入交换机的Port2接具体的物理PC,因此只需要将Port2设置为access口,分配VLAN 10即可,用FortiSwitch的概念来说就是将本地VLAN设置为VLAN 10,本地VLAN不打vlan-tag,相当于就是设置接口为access vlan 10。
无线配置
FortiAP连接后,会通过VLAN 99的DHCP获取到192.168.99.0/24网段的IP地址。
在之前的配置中,VLAN 99的接口开启了CAPWAP协议(包含在Security Fabric中),激活了FortiGate的无线管理功能,这时候FortiAP会自动找到FGT进行注册。因此在FortiAP管理的地方可以看到这个FortiAP的信息(如果没有看到检查配置,并将FortiAP恢复出厂,让FortiAP重新获取IP地址并发起注册)。
右键点击上图中等待认证的FortiAP,点击授权按钮,等待几分钟,FortiAP成功上线。
编辑FortiAP设置,配置FortiAP的名称,或进行升级操作。
进入无线&交换机控制器→SSIDs页面,点击新建按钮。
新建SSID:Fortinet_WiFi_Staff VLAN 20用于员工WIFI使用,Fortinet_WiFi_Guest VLAN 30用于访客WiFi使用。
将SSID关联到FortiAP上,然后让FortiAP发布无线SSID信号,这样用户就可以通过SSID连接到无线了。进入FortiAP配置文件页面,编辑FortiAP关联的配置文件。
桥模式的SSID需要在FortiAP配置文件里面手工指定一下,另外下图标示出的配置为推荐配置。
FortiAP会自动关联到这个FortiAP配置文件里面的内容,发起SSID的信号。
SD-WAN配置
将wan1和wan2加入SD-WAN接口,并配置各自的网关。
添加SD-WAN的默认路由。
配置SD-WAN的SLA,以便wan1和wan2相互备份和切换。
SD-WAN规则可根据需求配置,这里保持默认的按照源IP负载均衡。
安全策略配置
需求与规划:
- 员工的有线与无线都需要访问互联网
- 访客的无线仅仅可以访问互联网
- 员工的有线和无线需要互访
建议将防火墙的接口划分区域,以区域的方式配置策略,有时候可以做到简化配置的目的,甚至未来替换设备的时候,策略的备份和还原也会更加简单一些。规划区域两个区域:
- 员工网络区域:包括员工的有线VLAN 10和员工的无线VLAN 20 (区域之间的隔离关闭,这样VLAN 10和VLAN 20之间的数据可通)
- 访问网络区域:包括访问的无线VLAN 30
进入网络→接口页面,新建所属区域。
分别创建Staff_Zone(包含VLAN 10和VLAN20)和Guest_Zone(包含VLAN30)。
如此只需要配置两条策略,就可以实现我们规划的需求,新建Staff-Zone到SD-WAN与Guest-Zone到SD-WAN的安全策略。
结果验证
客户端访问
进入无线&交换机控制器→WiFi客户端,查看在线的无线客户端。可以看到WiFi_Staff和WiFi_Guest各有一个终端在线。
在DHCP状态检测中查看所有的客户端信息,可以看到有线网络的PC也正常上线。
有线网络(VLAN 10)用户访问互联网。
无线网络用户访问互联网。
使用VLAN 20下的客户端访问VLAN 20下的另一个客户端(Staff区域)。
使用VLAN 30下的客户端访问VLAN 30下的另一个客户端(Guest区域),可以看到由于该区域配置了禁止相互访问,所以VLAN 30下的客户端是无法互相访问的。
FortiLink切换测试
在我们的测试场景下FortiLink聚合接口的a和b是同时UP起来的,如果a或b DOWN(不能同时DOWN),是否有影响业务呢?
经过测试,DOWN a或b接口,客户端丢包1个或者不丢包。
HA切换测试
重启当前主防火墙查看内网PC丢包情况,HA切换丢包1个。
此时查看原备(新主)防火墙的FortiLink交换机接管状态,流量全部会切换到备防火墙和备核心交换机上(FortiGate HA主备切换后,原主FortiGate下的核心交换机会在新主FortiGate重新上线)。