在 EVPN 多宿主设置中升级 Junos OS
关于此网络配置示例
使用此网络配置示例,可将配置为 EVPN 多宿主(也称为 ESI-LAG)的一对 Junos OS 或 Junos Evolved 设备上的 Junos OS 手动升级到连接的服务器(主机)。
此示例基于使用 QFX 交换机的预先存在的边缘路由桥接 (ERB) EVPN 配置。此处演示的步骤也适用于集中路由桥接 (CRB) 和桥接叠加 EVPN 架构。
有关受支持的平台以及 Junos 或 Junos Evolved 版本对 EVPN ESI-LAG 的支持的详细信息,请参阅 功能浏览器。
示例:在 EVPN 多宿主用例中升级 Junos OS
要求
此程序用于升级配置为支持 EVPN 多宿主主机连接的一对 QFX 系列叶交换机。
准备工作:
确保控制台访问可用于两个叶设备。
确保主机 MAC 地址存在于两个叶设备的 EVPN 数据库中。
建议您在两个枝叶交换机的 LAG 接口上配置
hold-time up
60 秒(60000 毫秒)的计时器值。有关此选项的详细信息,请参阅 保持时间 。配置保持计时器有助于确保在交换机在重新启动事件后完成其 BGP 路由交换之前,面向主机的 LAG 成员接口不会开始运行。此示例生成从多宿主主机到 VLAN 的 IRB 接口上配置的虚拟网关地址的 ping。您必须将
virtual-gateway-accept-data
选项添加到两台交换机的 IRB 接口,以便它们生成 ping 回复。
此示例使用以下硬件和软件组件:
两台最初运行 Junos OS 19.1R3.9 版的 QFX5100-48S-6Q 设备
Junos OS 19.2R1.8 版
带有指向两个 ToR 交换机的链接的 Ubuntu 或 Centos 服务器。服务器配置了模式 4 绑定接口,以支持基于 LACP 的链路聚合。
程序概述
本节概述了升级过程。步骤序列旨在最大程度地减少升级一对支持多宿主主机的叶交换机时的中断:
准备升级:
确认两台交换机上的 LAG 接口正常运行,并且 EVPN 控制平面已融合。
将所需的 Junos OS 映像复制到两台交换机上的 /var/tmp 目录中。
启动从多宿主主机到同一 VLAN 中的叠加网络目标的 ping。例如,CRB 的主干设备上的 IRB 接口或 ERB 的叶设备上的 IRB 接口。执行此步骤是为了让您以后确定与升级过程关联的数据包丢失程度。
选择要升级的交换机,并禁用服务器或主机的下行链路接口。
将交换机升级并重新启动到新的 Junos 版本。确认交换机正在运行新版本。
检查 EVPN 控制平面,确认升级后的交换机已重新学习下行链路主机的 MAC 地址。
启用已升级交换机的下行链路接口。
在另一台交换机上重复步骤 3 到 6 以完成升级。
停止主机生成的 ping 并确认升级过程中丢失的数据包数。
注意:升级过程并非无中断。在准备升级时禁用接口时,下行链路上传输中的数据包可能会丢失。禁用接口后,流量将切换到另一个叶交换机并继续流动。在此过程中,当您在每台要升级的交换机上禁用 LAG 成员接口时,会有两个小的丢失窗口。这些丢失窗口不应超过 50 毫秒。
拓扑
图 1 说明了此 EVPN 多宿主升级示例的拓扑。请注意,两台交换机都为与连接的主机关联的 VLAN 配置了一个 IRB 接口。这些 IRB 配置了共享虚拟网关地址 192.168.0.1。主机在其 bond0 接口上分配的地址为 192.1689.1.100。该图还详细说明了主机上 bond0 接口的 MAC 地址以及在两个叶交换机的 LAG 接口上配置的以太网段标识符 (ESI)。
EVPN 多宿主升级配置
准备升级
分步过程
验证 EVPN 多宿主是否正常运行。登录服务器并确认绑定接口已打开。在此过程中,记下 bond0 接口的 MAC 地址。在此示例中,主机正在运行 Ubuntu,因此
ifconfig
使用命令。如果使用 Centos 发行版,请使用ip link show bond0
命令。在此示例中,主机 bond0 接口的 MAC 地址为 00:1B:21:79:5A:EC。root@server-host# ifconfig bond0 bond0 Link encap:Ethernet HWaddr 00:1B:21:79:5A:EC inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::21b:21ff:fe79:5aec/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:99980 errors:0 dropped:0 overruns:0 frame:0 TX packets:2997762 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:12393700 (11.8 MiB) TX bytes:371717722 (354.4 MiB)
使用命令确认
show interfaces ae1
LAG 接口在两个叶设备上均可运行。在此示例中,LAG 接口位于 ae1 两个叶设备上。请注意,聚合接口号是一个本地索引,在两个叶设备之间可能会有所不同。在逻辑上绑定两个叶之间的 LAG 接口的不是接口名称,而是匹配的 ESI 和system-id
参数的配置。请务必确认两个叶设备上的 LAG 接口均已打开。输出确认 LAG 接口正在运行,并且 ESI 在两个叶上配置为 00:01:01:01:01:01:01:01:01:01:01:01:01。
root@leaf3> show interfaces ae1 Physical interface: ae1, Enabled, Physical link is Up Interface index: 640, SNMP ifIndex: 529 Link-level type: Ethernet, MTU: 1514, Speed: 10Gbps, BPDU Error: None, Ethernet-Switching Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Disabled, Minimum links needed: 1, Minimum bandwidth needed: 1bps Device flags : Present Running Interface flags: SNMP-Traps Internal: 0x4000 Current address: 10:0e:7e:b5:7e:f0, Hardware address: 10:0e:7e:b5:7e:f0 Ethernet segment value: 00:01:01:01:01:01:01:01:01:01, Mode: all-active Last flapped : 2020-05-06 21:44:35 UTC (1d 09:25 ago) Input rate : 960 bps (0 pps) Output rate : 0 bps (0 pps) Logical interface ae1.0 (Index 550) (SNMP ifIndex 530) Flags: Up SNMP-Traps 0x24024000 Encapsulation: Ethernet-Bridge Statistics Packets pps Bytes bps Bundle: Input : 0 0 0 0 Output: 0 0 0 0 Adaptive Statistics: Adaptive Adjusts: 0 Adaptive Scans : 0 Adaptive Updates: 0 Protocol eth-switch, MTU: 1514 Flags: Is-Primary
root@leaf2> show interfaces ae1 Physical interface: ae1, Enabled, Physical link is Up Interface index: 640, SNMP ifIndex: 541 Link-level type: Ethernet, MTU: 1514, Speed: 10Gbps, BPDU Error: None, Ethernet-Switching Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Disabled, Minimum links needed: 1, Minimum bandwidth needed: 1bps Device flags : Present Running Interface flags: SNMP-Traps Internal: 0x4000 Current address: f4:b5:2f:44:af:30, Hardware address: f4:b5:2f:44:af:30 Ethernet segment value: 00:01:01:01:01:01:01:01:01:01, Mode: all-active Last flapped : 2020-05-08 05:58:07 UTC (01:22:18 ago) Input rate : 968 bps (0 pps) Output rate : 0 bps (0 pps) Logical interface ae1.0 (Index 554) (SNMP ifIndex 542) Flags: Up SNMP-Traps 0x24024000 Encapsulation: Ethernet-Bridge Statistics Packets pps Bytes bps Bundle: Input : 0 0 0 0 Output: 0 0 0 0 Adaptive Statistics: Adaptive Adjusts: 0 Adaptive Scans : 0 Adaptive Updates: 0 Protocol eth-switch, MTU: 1514 Flags: Is-Primary
使用上一步中记录的 ESI 值确认主机 MAC 地址存在于两个成员交换机的 EVPN 数据库中。
root@leaf3> show evpn database | match esi 00:01:01:01:01:01:01:01:01:01 Instance: default-switch VLAN DomainId MAC address Active source Timestamp IP address 10100 00:1b:21:79:5a:ec 00:01:01:01:01:01:01:01:01:01 May 08 08:23:11 192.168.100.100
root@leaf3> show evpn database | match esi 00:01:01:01:01:01:01:01:01:01 Instance: default-switch VLAN DomainId MAC address Active source Timestamp IP address 10100 00:1b:21:79:5a:ec 00:01:01:01:01:01:01:01:01:01 May 07 22:06:11 192.168.100.100
显示两个叶设备上的聚合接口配置。请注意,该
hold-time up
选项配置为 6 秒,以符合此示例中的建议。root@leaf3> show configuration interfaces ae1 esi { 00:01:01:01:01:01:01:01:01:01; all-active; } aggregated-ether-options { lacp { active; system-id 00:00:01:01:01:01; hold-time up 6000; } } unit 0 { family ethernet-switching { interface-mode access; vlan { members v100; } } }
root@leaf2> show configuration interfaces ae1 esi { 00:01:01:01:01:01:01:01:01:01; all-active; } aggregated-ether-options { lacp { active; system-id 00:00:01:01:01:01; hold-time up 6000; } } unit 0 { family ethernet-switching { interface-mode access; vlan { members v100; } } }
记下两台交换机上的 LAG 成员接口名称。您需要关闭正在升级的交换机上的此接口。LAG 成员接口名称通常在一对交换机之间有所不同。在此示例中,两个叶设备上的 LAG 成员接口均为 xe-0/0/46。
root@leaf3> show lacp interfaces Aggregated interface: ae1 LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity xe-0/0/46 Actor No No Yes Yes Yes Yes Fast Active xe-0/0/46 Partner No No Yes Yes Yes Yes Slow Active LACP protocol: Receive State Transmit State Mux State xe-0/0/46 Current Slow periodic Collecting distributing . . .
root@leaf2# run show lacp interfaces Aggregated interface: ae1 LACP state: Role Exp Def Dist Col Syn Aggr Timeout Activity xe-0/0/46 Actor No No Yes Yes Yes Yes Fast Active xe-0/0/46 Partner No No Yes Yes Yes Yes Slow Active LACP protocol: Receive State Transmit State Mux State xe-0/0/46 Current Slow periodic Collecting distributing . . .
将所需的 Junos OS 映像传输到两个叶设备,如图 2 所示。请务必将映像放在交换机上的 /var/tmp 目录中。通常,FTP 或 SCP 用于将映像复制到叶设备。有关使用 CLI 复制文件的详细信息,请参阅 文件复制。
注意:请考虑在传输新映像之前运行
request system storage cleanup
命令,以确保有足够的空间进行升级。图 2:传输新的 Junos 映像确认两个 EVPN 多宿主叶上的起始 Junos OS 版本。在此示例中,起始 Junos OS 版本为 19.1R3.9。为简洁起见,仅显示叶 2 的输出。
root@leaf2> show version localre: -------------------------------------------------------------------------- Hostname: leaf2 Model: qfx5100-48s-6q Junos: 19.1R3.9 JUNOS OS Kernel 64-bit [20200219.fb120e7_builder_stable_11] JUNOS OS libs [20200219.fb120e7_builder_stable_11] JUNOS OS runtime [20200219.fb120e7_builder_stable_11] JUNOS OS time zone information [20200219.fb120e7_builder_stable_11] JUNOS OS libs compat32 [20200219.fb120e7_builder_stable_11] JUNOS OS 32-bit compatibility [20200219.fb120e7_builder_stable_11] JUNOS py extensions [20200326.053318_builder_junos_191_r3] . . .
到目前为止执行的步骤表明 LAG 接口正在运行,并且 EVPN 控制平面已融合。在开始升级之前,请启动从主机到分配给 VLAN 的 IRB 接口的虚拟网关 IP 地址的 ping。此流量将散列到一个成员链接或另一个成员链接。主机将流量发送到哪个交换机并不重要,因为两台交换机配置了相同的虚拟网关 IP。
请务必注意,任一交换机都能够回复 ping。这意味着当一台交换机重新启动时,另一台交换机仍然可用并能够响应 ping。
注意:要使 ping 成功,必须确保在两台交换机上都配置了
virtual-gateway-accept-data
IRB 接口选项。[root@serverhost ~]# ping 192.168.100.1 PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. 64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=3.80 ms 64 bytes from 192.168.100.1: icmp_seq=2 ttl=64 time=1.93 ms 64 bytes from 192.168.100.1: icmp_seq=3 ttl=64 time=8.81 ms 64 bytes from 192.168.100.1: icmp_seq=4 ttl=64 time=2.91 ms 64 bytes from 192.168.100.1: icmp_seq=5 ttl=64 time=1.34 ms 64 bytes from 192.168.100.1: icmp_seq=6 ttl=64 time=15.0 ms ...
确保主机到 IRB 接口 ping 在整个升级过程中保持运行状态,以便确定丢失的数据包总数。
升级叶 3
分步过程
通过关闭面向 LAG 成员 xe-0/0/46 的服务器,开始叶 3 上的升级过程,如图 3 中的红色“X”所示。
注意:在此步骤中,叶 3 的 xe-0/0/46 接口上传输的少量数据包可能会丢失。此时,ping 流量流经叶 2 设备,直到升级完成并重新启用叶 3 上的下行链路接口。
图 3:禁用叶 3 上的下行链路接口[edit interface xe-0/0/46] root@leaf3# set disable
[edit interface xe-0/0/46] root@leaf3# commit and-quit
使用控制台连接通过命令在
request system software add /var/tmp/jinstall-host-qfx-5e-x86-64-19.2R1.8-secure-signed.tgz reboot
叶 3 开始升级。映像加载和后续重新启动过程由 图 4 中的齿轮图标表示。升级过程需要几分钟才能完成。在此期间,您的 ping 应流经叶 2,因为它在叶 3 升级期间保持完全运行。图 4:开始升级叶 3交换机重新启动后,确认升级成功。
root@leaf3> show version localre: -------------------------------------------------------------------------- Hostname: leaf3 Model: qfx5100-48s-6q Junos: 19.2R1.8 JUNOS OS Kernel 64-bit [20190517.f0321c3_builder_stable_11] JUNOS OS libs [20190517.f0321c3_builder_stable_11] JUNOS OS runtime [20190517.f0321c3_builder_stable_11] JUNOS OS time zone information [20190517.f0321c3_builder_stable_11] JUNOS OS libs compat32 [20190517.f0321c3_builder_stable_11] JUNOS OS 32-bit compatibility [20190517.f0321c3_builder_stable_11] JUNOS py extensions [20190621.152752_builder_junos_192_r1] JUNOS py base [20190621.152752_builder_junos_192_r1] JUNOS OS vmguest [20190517.f0321c3_builder_stable_11] JUNOS OS crypto [20190517.f0321c3_builder_stable_11] . . .
此时,应重新建立所有底层和叠加 BGP 会话。在叶 3 启用 lag 成员接口之前,确认所有 BGP 对等方均已备份,并且 EVPN 控制平面已重新融合。
root@leaf3> show evpn database esi 00:01:01:01:01:01:01:01:01:01 Instance: default-switch VLAN DomainId MAC address Active source Timestamp IP address 10100 00:1b:21:79:5a:ec 00:01:01:01:01:01:01:01:01:01 May 08 08:40:33 192.168.100.100
启用叶 3 上的下行链路接口,如图 5 中的绿色复选标记所示。
图 5:启用叶 3 上的下行链路接口[edit interface xe-0/0/46] root@leaf3# delete disable
[edit interface xe-0/0/46] root@leaf3# commit and-quit
升级叶2
分步过程
通过禁用叶 2 的下行链路接口开始升级过程,如图 6 中的红色 X 所示。由于 ping 可能流经叶 2,因此此步骤标志着过程中的第二个丢失窗口。升级叶 2 时,ping 应继续流经叶 3 设备。
图 6:禁用叶 2 上的下行链路接口[edit interface xe-0/0/46] root@leaf2# set disable
[edit interface xe-0/0/46] root@leaf2# commit and-quit
使用命令在
request system software add /var/tmp/jinstall-host-qfx-5e-x86-64-19.2R1.8-secure-signed.tgz
叶 2 处启动映像加载并重新启动。叶 2 的升级和重新启动如图 7 中的齿轮图标所示。图 7:从叶 2 开始升级叶 2 重新启动后,请检查 Junos OS 版本以确保升级成功。
root@leaf2> show version localre: -------------------------------------------------------------------------- Hostname: leaf2 Model: qfx5100-48s-6q Junos: 19.2R1.8 JUNOS OS Kernel 64-bit [20190517.f0321c3_builder_stable_11] JUNOS OS libs [20190517.f0321c3_builder_stable_11] JUNOS OS runtime [20190517.f0321c3_builder_stable_11] JUNOS OS time zone information [20190517.f0321c3_builder_stable_11] JUNOS OS libs compat32 [20190517.f0321c3_builder_stable_11] JUNOS OS 32-bit compatibility [20190517.f0321c3_builder_stable_11] JUNOS py extensions [20190621.152752_builder_junos_192_r1] JUNOS py base [20190621.152752_builder_junos_192_r1] JUNOS OS vmguest [20190517.f0321c3_builder_stable_11] JUNOS OS crypto [20190517.f0321c3_builder_stable_11] . . .
检查 EVPN 控制平面是否已在叶 2 处重新融合。重新建立所有 BGP 会话并在 EVPN 数据库中填充主机的 MAC 地址可能需要几分钟时间。
root@leaf2> show evpn database esi 00:01:01:01:01:01:01:01:01:01 Instance: default-switch VLAN DomainId MAC address Active source Timestamp IP address 10100 00:1b:21:79:5a:ec 00:01:01:01:01:01:01:01:01:01 May 08 08:53:30
启用叶 2 上的 LAG 成员接口,如图 8 中的绿色复选标记所示。
图 8:启用叶 2 上的下行链路接口[edit interface xe-0/0/46] root@leaf2# delete disable
[edit interface xe-0/0/46] root@leaf2# commit and-quit
两台交换机现已升级,所有 LAG 成员接口均可正常运行。要测量升级过程中的流量中断,请停止 ping 并记下 ping 统计信息。在此示例中,在升级支持多宿主主机的一对叶设备期间,总共丢失了两个数据包。
在许多情况下,当正在进行的 ping 被中断时,会显示单个数据包的丢失。无论如何,无论是实际丢失的 1 个还是 2 个数据包,升级都被视为几乎无中断。这符合此示例中演示的过程的预期。
[root@serverhost ~]# ping 192.168.100.1 ... 64 bytes from 192.168.100.1: icmp_seq=1621 ttl=64 time=0.465 ms 64 bytes from 192.168.100.1: icmp_seq=1622 ttl=64 time=7.52 ms 64 bytes from 192.168.100.1: icmp_seq=1623 ttl=64 time=0.920 ms 64 bytes from 192.168.100.1: icmp_seq=1624 ttl=64 time=8.48 ms 64 bytes from 192.168.100.1: icmp_seq=1625 ttl=64 time=9.89 ms 64 bytes from 192.168.100.1: icmp_seq=1626 ttl=64 time=8.95 ms 64 bytes from 192.168.100.1: icmp_seq=1627 ttl=64 time=1.85 ms ^C --- 192.168.100.1 ping statistics --- 1627 packets transmitted, 1625 received, 0% packet loss, time 1628654ms rtt min/avg/max/mdev = 0.260/8.371/87.282/11.096 ms
结论
EVPN 多宿主是必须同时支持高性能和高可用性的数据中心架构的一项重要功能。此示例演示了升级一对叶交换机所需的配置和步骤,这些叶交换机支持多宿主主机连接,并将中断降至最低。