一键开关的故事


在我们的LAN聚合中,有六对Arista DCS-7050CX3-32S交换机和一对Brocade VDX 6940-36Q交换机。并不是说该网络上的Brocade交换机对我们造成了很大的压力,它们无法正常工作并执行其功能,但是我们正在准备某些操作的完全自动化,并且这些交换机上没有这些功能。我还想从40GE接口切换到使用100GE预留未来2-3年的可能性。因此,我们决定将Brocade换成Arista。

这些交换机是每个数据中心的LAN聚合交换机。分布交换机(聚合的第二层)直接连接到它们,它们本身已经组装在服务器机架中的机架顶LAN交换机中。


每个服务器都包含在一个或两个访问交换机中。接入交换机连接到一对配电交换机(两个配电交换机和从接入交换机到不同配电交换机的两条物理链路用于冗余)。

每个服务器都可以由其客户端使用,因此为客户端分配了单独的VLAN。然后,将相同的VLAN分配给该客户机在任何机架中的另一台服务器。数据中心由几个这样的行(POD)组成,机架的每一行都有自己的分配开关。然后,将这些分布交换机连接到聚合交换机。


客户端可以在任何行中订购服务器,无法预先预测将在任何特定机架中的任何特定行中分配或安装该服务器,因此,聚合交换机上每个数据中心大约有2500个VLAN。

DCI(数据中心互连)设备连接到聚合交换机。它可用于L2连接(一对形成到另一个数据中心的VXLAN隧道的交换机)和L3连接(两个MPLS路由器)。


正如我已经写过的,为了统一在一个数据中心中的设备上自动配置服务的过程,有必要替换中央聚合交换机。我们在现有交换机旁边安装了新交换机,将它们组合成MLAG对,并开始准备工作。它们立即连接到现有的聚合交换机,因此它们在所有客户端VLAN上都有一个公共的L2域。

电路细节


为特定起见,我们将旧的聚合交换机A1A2称为新的N1N2。想象一下,在POD 1POD 4中有一个客户端C1的服务器,客户端的VLAN用蓝色表示。该客户端将L2连接服务与另一个数据中心一起使用,因此其VLAN在一对VXLAN交换机上提供服务。

客户端C2将服务器放置在POD 2POD 3中,我们将客户端的VLAN表示为深绿色。该客户端还将连接服务与另一个数据中心(L3)一起使用,因此其VLAN在一对L3VPN路由器上提供服务。


我们需要客户端VLAN来了解在替换工作的哪个阶段发生了什么,通信中断发生在哪里以及持续时间如何。在这种方案中不使用STP协议,因为在这种情况下,它的树的宽度很大,并且协议的收敛从设备及其之间的链接数量成倍增长。

通过双链路连接的所有设备形成一个堆栈,一个MLAG对或一个VCS-以太网工厂。此类技术不用于一对L3VPN路由器,因为不需要L2冗余,因此它们通过聚合交换机彼此之间具有L2连接就足够了。

实施方案


在分析其他事件的选项时,我们意识到有几种方法可以进行这些工作。从整个本地网络的全局中断到部分网络上的1-2秒的小中断。

网络,站起来!开关,更换!


最简单的方法-当然是在所有POD和所有服务DCI中宣布全局中断连接,并N的交换机交换来自交换机A的所有链路


除了中断,我们无法保证可以预测的时间(是的,我们知道链接的数量,但是我们不知道发生了多少次错误-从断线或连接器损坏到端口或收发器故障),我们仍然无法提前预测连接到旧交换机A的跳线DAC,AOC的长度是否足以够到它们,尽管它们位于新交换机N旁边,但仍略微分开,以及相同的收发器是否可以工作Arista交换机中Brocade交换机的/ DAC / AOC。

而这一切都是在客户和技术支持的巨大压力下进行的(“ Natasha,站起来!Natasha,那里的一切都不起作用!Natasha,我们已经诚实地写了技术支持!Natasha,他们已经把那里的一切都放了!Natasha,但是有多少没有娜塔莎(Natasha),什么时候起作用?!”)。即使预先宣布了休息时间并已向客户发出通知,也可以保证在此时间有大量电话涌入。

等一下1-2-3-4


如果不是宣布全局中断,而是宣布一系列有关POD和DCI服务的小中断。在第一个中断中,仅将POD 1切换N交换机,在第二天-几天后-POD 2,然后几天POD 3,然后POD 4 ... [N],然后VXLAN交换机,然后是L3VPN路由器。


通过这样的交换工作组织,我们可以减少一次性工作的复杂性,并增加了解决突发问题的时间。与其他POD和DCI切换后,POD 1连接不会丢失。但是工作本身会延迟很长时间,对于在数据中心进行这项工作的时间来说,要求工程师进行物理上的切换,并且在工作期间(而且这种工作通常是在晚上,从凌晨2点到5点在早晨进行),在线网络工程师的出席率很高资格。但是,另一方面,我们的通讯中断时间很短,通常,工作可以在半小时的间隔内完成,最多可以中断2分钟(实际上,对于设备的预期行为,通常需要20-30秒)。

在上面的示例中,客户端C1或客户端C2 您必须至少三遍警告通信中断的工作-第一次在其中一个服务器所在的POD上进行工作,第二次-在第二次和第三次-为DCI服务切换设备时。

切换汇总的通讯渠道


我们为什么要谈论设备的预期性能,以及聚合通道如何在最小化通信中断的情况下进行切换。想象一下下面的图片:


一方面,链接是分配开关POD- D1D2,它们形成MLAG对(堆栈,VCS工厂,vPC对),另一方面,旧的MLAG对中包括两个链接- 链接1链接2-。聚合交换机在交换机D的一侧形成了称为Port-channel A的聚合接口,在聚合交换机A的一侧形成了称为Port D-channel的聚合接口

聚合接口在工作中使用LACP,即两端的交换机定期在两条链路上交换LACPDU数据包,以确保链路:

  • 工人;
  • .

在数据包中交换数据包时,将传输system-id,该指示其中包含这些链接的设备。对于MLAG对(堆栈,工厂等),构成聚合接口的设备的system-id值相同。交换机D1发送Link 1系统id-D,而交换机D2发送Link 2系统id-D

交换机A1A2分析在同一Po D接口上收到的LACPDU数据包,并验证它们中的system-id是否匹配。如果某条链路接收到的system-id突然不同于当前工作值,然后从聚合接口中删除此链接,直到情况得到纠正。现在我们将系统ID LACP-partner- A的当前值切换到D,并在A-LACP-partner- D的当前system-id值切换到D侧

如果需要切换聚合接口,我们可以采取两种不同的方式:

方法1-简单
A. .


N, LACP, Po D N system-id N.



方法2-最小化中断
2 Link 2. D , .


Link 2 N2. N Po DN, N2 LACPDU system-id N. , N2 , Link 2, Up, LACPDU .


, D2 Po A Link 2 system-id N, system-id A, D Link 2 Po A. N Link 2 , LACP- D2. Link 2 .

Link 1 A1, D . , D system-id Po A.


D N system-id A-N Po A Po DN, Link 2. , , 2 .


Link 1 N1, Po A Po DN. system-id , .



其他连结


但是切换时可以在没有工程师在场的情况下进行切换。为此,我们需要在D分布交换机和新的N聚合交换机之间预先铺设其他链路


我们正在N个汇聚交换机和所有POD分配交换机之间建立新的链接。这需要订购和铺设额外的跳线,并在ND中都安装额外的收发器。之所以可以这样做,是因为每个POD D开关中都有空闲端口(或者我们首先释放它们)。结果,每个POD通过两条链路物理连接到旧交换机A和新交换机N。


两个聚合接口形成 于开关d - 蒲阿与链接链路1链路2,和蒲Ñ的链接链接N1链接N2。在此阶段,我们检查接口和链路的正确连接,链路两端的光信号水平(通过交换机的DDM信息),甚至可以检查链路在负载下的工作能力,或者监控光信号和收发器温度几天的状态。

流量仍然通过Po A接口传输,而Po N接口没有流量。接口上的设置大致如下:

Interface Port-channel A
Switchport mode trunk
Switchport allowed vlan C1, C2

Interface Port-channel N
Switchport mode trunk
Switchport allowed vlan none

交换机D通常支持会话配置更改;使用具有此功能的此类交换机模型。因此,我们可以一次性更改Po A和Po N接口的设置:

Configure session
Interface Port-channel A
Switchport allowed vlan none
Interface Port-channel N
Switchport allowed vlan C1, C2
Commit

然后,配置更改将足够快地发生,并且实际上中断时间不会超过5秒。

这种方法使我们能够提前进行所有准备工作,进行所有必要的检查,与过程中的参与者进行协调,在没有任何创造性错误的情况下,在“一切都出错”的情况下详细预测生产工作的行动,并且手头有恢复到先前配置的计划。该计划的工作由网络工程师执行,而物理上执行交换的工程师现场没有数据中心。

使用此切换方法更重要的是-已预先设置了所有新链接以进行监视。错误,单元中包含链接,链接加载-所有必需的信息已在监视系统中,并且已在地图上绘制。

D日



我们为客户选择的痛苦最小,并且最不容易出现带有其他链接的“出问题”的切换路径。因此,一连两晚,我们将所有POD切换到了新的聚合交换机。


但是交换提供DCI服务的设备仍然存在。

L2


在设备提供L2连接的情况下,我们无法通过其他链接来进行类似的工作。至少有两个原因:

  • VXLAN交换机上缺少所需速度的可用端口。
  • 在VXLAN交换机上缺少会话配置更改的功能。

我们没有在一次新的系统ID批准期间就“一次一次”地断开链接,因为我们没有100%的信心确定该程序可以正常工作,并且在实验室进行的测试表明,如果“出事了”,我们仍然会断开连接,最糟糕的情况不仅是与其他数据中心具有L2连接的客户,而且对于这个数据中心的所有客户而言。

我们提前进行了从L2通道过渡的搅动工作,因此受VXLAN交换机操作影响的客户数量已经比一年前减少了几倍。结果,我们决定中断L2连接服务上的通信,只要我们在一个数据中心内保持本地网络服务的正常运行即可。此外,此服务的SLA还提供了有计划的休息时间的可能性。

L3


为什么我们在组织DCI服务时建议大家都改用L3VPN?原因之一是能够在提供此服务的其中一个路由器上工作的能力,只需将冗余级别降低到N + 0,而不会中断通信。

更仔细地考虑服务提供方案。在此服务中,L2网段仅从客户端服务器转到L3VPN Selectel路由器。在路由器上,客户端网络已终止。

每个客户端的服务器,例如,S2S3上面的图中,有它自己的私有IP地址- 10.0.0.2/24的S2服务器10.0.0.3/24的S3服务器。地址10.0.0.252/2410.0.0.253/24由Selectel分别分配给路由器L3VPN-1L3VPN-2IP地址10.0.0.254/24是 Selectel路由器上的VRRP VIP地址

您可以在我们的博客上阅读有关L3VPN服务的更多信息

在切换之前,所有内容看上去都大致与图中所示相同:


两个路由器L3VPN-1L3VPN-2分别连接到旧交换机聚合L3VPN-1路由器是VRRP VIP地址10.0.0.254的主服务器他将此地址的优先级设置为高于L3VPN-2路由器的优先级

unit 1006 {
    description C2;
    vlan-id 1006;
    family inet {       
        address 10.0.0.252/24 {
            vrrp-group 1 {
                priority 200;
                virtual-address 10.100.0.254;
                preempt {
                    hold-time 120;
                }
                accept-data;
            }
        }
    }
}

S2服务器使用10.0.0.254网关与其他位置的服务器进行通信。因此,从网络断开L3VPN-2路由器的连接(当然,如果您首先从MPLS域断开连接)不会影响客户端服务器的连接。在这一点上,电路的冗余水平简单地降低。


之后,我们可以安全地将L3VPN-2路由器重新连接到这对N交换机布置链接,更换收发器。客户端服务的工作所依赖的路由器的逻辑接口,直到确认所有功能均应正常工作之前,都已关闭。

在检查了链路,收发器,信号电平,接口上的错误级别之后,路由器开始运行,但已连接到新的一对交换机。


接下来,我们降低L3VPN-1路由器的VRRP优先级,并将VIP地址10.0.0.254移至L3VPN-2路由器。这些工作也可以在不中断通信的情况下进行。


将VIP地址传输到路由器10.0.0.254 L3VPN-2允许您在不中断客户端联系的情况下禁用路由器L3VPN-1,并将其连接为一对新的N汇聚交换机


是否将VRRP VIP返还给L3VPN-1路由器是另一回事,并且如果您返还,则可以不中断地进行。


完成所有这些步骤之后,我们真正地替换了我们其中一个数据中心的聚合交换机,同时最大程度地减少了对客户的影响。


剩下的就是拆除。拆除旧交换机,拆除交换机A和D之间的旧链路,从这些链路拆除收发器,修复监控,修复文档和监控中的网络图。

在其他项目或其他类似的交换中,我们可以在交换后使用交换器,收发器,跳线,AOC,DAC。

“娜塔莎,我们换了一切!”

All Articles