FortiLink MCLAG - 堆叠组网 1 Tier 配置举例
FortiLink MCLAG - 堆叠组网 1 Tier 配置举例
网络需求
FortiGate 运行 HA-Cluster,核心交换机采用 MCLAG 堆叠组网结构。
网络拓扑

形成堆叠之后的逻辑拓扑:

- 两台 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 配置聚合端口,并设置 split 为 enable 模式。
- 上线 Core-FSW1 和 Core-FSW2,将 FortiGate 和 Core-FSW1 以及 Core-FSW2 连接起来。
- 分别登录到 Core-FSW2 和 Core-FSW1 上,配置二者直连的 ISL 接口为“mclag-icl enable”。配置为 ICL 堆叠线路(Inter-Chassis-Link),形成两台核心交换机的堆叠。
- 配置 FortiGate 聚合端口为 split disable 模式。
- 上线 Access-FSW1 和 Access-FSW2。
- 上线 FortiAP 和有线 PC,并测试无线网络和有线网络的连通性。
- 注意:如果 Switch 上线时,有的 Switch 是旧的版本,最好先升级 Switch 的版本后,再组建 mclag 或是让交换机成环。
配置步骤
准备事项
首先确认 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 管理时候的备份机制。

MCLAG 配置前是上述组网,因此刚刚开始的时候需要,保持 enable 状态。聚合接口的 Port1 和 Port2 只会 UP 一个接口,另外一个接口处于 DOWN 的状态。
重要
FortiLink split interface 什么时候应该 disable?
如果 FGT 的聚合接口只接到了一台交换机上,并没有跨交换机聚合(没有 MCLAG,也不需要 FortiLink split interface),因此这种情况应该让聚合接口的两个物理接口 port1 和 port2 同时 UP,两个接口同时工作起来,以便提供更高带宽和备份的作用。

配置两台交换机 MCLAG 堆叠之后,就是上述组网,因此交换机堆叠完毕之后,需要修改为 disable,让两个聚合接口都可以同时工作起来,最大的利用聚合接口的带宽和资源。这个配置后续会说明。
相关 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 enable set switch-controller-nac "fortilink" set switch-controller-dynamic "fortilink" set swc-first-create 255 next end
连接 FortiLink
连接核心交换机
配置完 FortiGate 之后,这个时候再去接 FortiGate 的 FortiLink 到 FortiSwitch 的线,配置 Core-FSW1 和 Core-FSW2 设备的互联接口 MCLAG 注意,先不要把所有的线都接上去,一台一台的来操作,MCLAG 配置尽量使用 Console 去配置,而不是 GUI,有时候由于在 Fortilink 计算和收敛会导致 GUI 连接不上去,或者先将 CORE - FSW1 下线,先单独配置 CORE - FSW2,然后再将 CORE - FSW2 下线,再单独配置 CORE - FSW1,然后再将二者互联的线接上去,这样是最稳妥的办法,避免 GUI 的 CLI 连不上的情况出现。而接入交换机这个时候是不建议接入的,等 CORE - FSW1 和 CORE - FSW2 的堆叠形成了之后,再将接入层交换机的线。
重要
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 的拓扑较快的形成结束之后,再增加彼此之间的另外一根线,再进行自动聚合,这样效率会比较高一些。
接线是很重要的步骤,仔细看拓扑图,做好接口标签,不要接错。
先接 Core-FSW1 的线,再接 Core-FSW1 和 Core-FSW2 互联的线,先不要接接入层交换机的线,在 FortiGate 上进入无线 & 交换机控制器 → FortiSwitch 管理页面,右上角选择拓扑视图,查看交换机被管理状态。

此时我们看防火墙的 FortiLink 聚合接口,此时应该只有 a 或 b 其中一个物理接口是 UP 的,这是 FortiLink split interface enable 的结果。

配置 MCLAG
通过 FortiGate 管理交换机页面右键交换机即可 SSH 到交换机,分别登录到 Core-FSW1 和 Core-FSW2 上。

配置二者的互联聚合接口为“set mclag-icl enable”。

config switch trunk edit "4DF3X15000373-0" set mclag-icl enable next end
config switch trunk edit "4DF3X15000291-0" set mclag-icl enable next end查看配置 MCLAG 后的交换机拓扑,可以看到两台交换机已经变为一个 MC - LAG 组。

MC - LAG 配置完成后,将 FortiLink 接口下的 split interface 设置为 disable,让聚合接口(a 和 b)全部 UP 起来,充分利用聚合接口的资源,实现 FortiGate 与两台交换机(堆叠 )的跨交换机聚合。

config system interface edit "fortilink" set fortilink-split-interface disable next end等待 CORE - FSW2 重新在 FortiGate 上线后,查看 Switch 管理拓扑,FortiLink 的两个成员接口均已 UP。

在 FortiGate 的 CLI 下查看 FortiLink 成员状态,可以看到与实际物理连线一致。
FortiGate # execute switch-controller get-physical-conn standard fortilink This will display connectivity graph information for FortiLink from FortiGate's perspective NOTE : If FortiSwitch is not authorized, no connectivity information will be shown NOTE : If FortiSwitch is in idle state, no connectivity information will be shown NOTE : If FortiSwitch ISL peer has inconsistent info, no connectivity information will be shown FortiLink interface : fortilink FortiGate(s) FGT61FTK22054783(a) <<------------------>> S224DF3X15000373(port23) FGT61FTK22054602(a) <<------------------>> S224DF3X15000373(port24) FGT61FTK22054783(b) <<------------------>> S224DF3X15000291(port23) FGT61FTK22054602(b) <<------------------>> S224DF3X15000291(port24) Tier 1 S224DF3X15000373(port23) <<------------------>> FGT61FTK22054783(a) S224DF3X15000373(port24) <<------------------>> FGT61FTK22054602(a) S224DF3X15000291(port23) <<------------------>> FGT61FTK22054783(b) S224DF3X15000291(port24) <<------------------>> FGT61FTK22054602(b) Tier 2+ S224DF3X15000373(port1/4DF3X15000291-0) <<------------------>> S224DF3X15000291(port1/4DF3X15000373-0) S224DF3X15000373(port2/4DF3X15000291-0) <<------------------>> S224DF3X15000291(port2/4DF3X15000373-0)
连接接入交换机
将接入层两台交换机的连线接入。在 FortiGate 上进入无线 & 交换机控制器 → FortiSwitch 管理页面,查看交换机被管理状态,修改视图为拓扑,可以看到 4 台交换机均已上线。

接好线之后,FortiSwitch 和 FortiGate 之间会自动在后台进行 FortiLink、CAPWAP、MSTP、聚合接口的协商加入等操作,等 FortiLink 的管理结束之后,在 FortiGate 上会看到一个网站的 FortiSwitch 拓扑图,和我们规划的拓扑图应该是一致的,可以仔细核对接线是否正确。
交换机加入到 FortiGate 的 FortiLink,会先清除配置再重启,然后从 standalone 的状态进入到“Fortilink remote control”的状态,后续所有的配置都通过 FortiGate 下发即可。
再次查看 FortiGate 的 FortiLink 成员,可以看到两台接入交换机已上线,且连线与拓扑一致。
FortiGate # execute switch-controller get-physical-conn standard fortilink This will display connectivity graph information for FortiLink from FortiGate's FortiLink interface : fortilink FortiGate(s) FGT61FTK22054783(a) <<------------------>> S224DF3X15000373(port23) FGT61FTK22054602(a) <<------------------>> S224DF3X15000373(port24) FGT61FTK22054783(b) <<------------------>> S224DF3X15000291(port23) FGT61FTK22054602(b) <<------------------>> S224DF3X15000291(port24) Tier 1 S224DF3X15000373(port23) <<------------------>> FGT61FTK22054783(a) S224DF3X15000373(port24) <<------------------>> FGT61FTK22054602(a) S224DF3X15000291(port23) <<------------------>> FGT61FTK22054783(b) S224DF3X15000291(port24) <<------------------>> FGT61FTK22054602(b) Tier 2+ S224ENTF20002824(port23/_FlInK1_MLAG0_) <<------------------>> S224DF3X15000373(port4/4ENTF20002824-0) S224ENTF22001220(port23/_FlInK1_MLAG0_) <<------------------>> S224DF3X15000373(port3/4ENTF22001220-0) S224DF3X15000373(port1/4DF3X15000291-0) <<------------------>> S224DF3X15000291(port1/4DF3X15000373-0) S224DF3X15000373(port2/4DF3X15000291-0) <<------------------>> S224DF3X15000291(port2/4DF3X15000373-0)编辑交换机,可以修改交换机名字以及升级版本,如果交换机很多的话,规划好的命名可以有效的迅速找到交换机的位置。


FortiSwitch 之间接多根线进行 FortiLink 互联,会默认自动聚合。其实接一根网线也是聚合的,只是聚合组里面只有一个接口而已,因此多根网线直连,这些直连的线都会自动加入到一个聚合接口里面(建议 MC - LAG 环境尽量使用两条或以上的连线)。
FortiGate # exec ssh admin@10.255.1.6 admin@10.255.1.6's password: Core-FSW1 # show switch trunk config switch trunk edit "GT61FTK22054602" set mode lacp-active set auto-isl 1 set fortilink 1 set mclag enable set members "port24" next edit "GT61FTK22054783" set mode lacp-active set auto-isl 1 set fortilink 1 set mclag enable set members "port23" next edit "4DF3X15000291-0" set mode lacp-active set auto-isl 1 set mclag-icl enable set members "port1" "port2" next edit "4ENTF20002824-0" set mode lacp-active set auto-isl 1 set mclag enable set members "port4" next edit "4ENTF22001220-0" set mode lacp-active set auto-isl 1 set mclag enable set members "port3" next end最后不要忘记,在 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

Access-FSW2 交换机的 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 即可)。

Access-FSW1 交换机的 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 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 个。

核心交换机接口故障模拟
Down 掉 Core-FSW2 的 Port3 和 Port4 接口,查看内网 PC 丢包情况,可以看到 Core-FSW2 连接接入层交换机的接口 Down 掉时,丢包 1 个。

查看和 Switch 管理拓扑,Core-FSW2 与接入层交换机的连线已断开。

注意事项
- 只能是堆叠交换机才可以跨交换机聚合,不同的堆叠交换机组,不支持配置为聚合接口。
- 如果是与 FortiSwith 对接,则是自动 MCLAG 聚合。
- 如果是和第三方设备对接,比如交换机、路由器、友商防火墙、服务器等等对接的话,推荐使用 LACP Active 方式动态聚合。