引入Cumulus Linux。硬件安装和初始设置
开始工作的介绍如下:
- 购买设备
- 租的架子
- 铺设到旧数据中心的线路
需要交付的第一批硬件是预先安装了Cumulus Linux的4 x Mellanox SN2410。最初,人们对一切看起来还不了解(它只会在VXLAN / EVPN实施阶段发展),因此,我们决定使用CLAG(来自Cumulus的MLAG的模拟产品)将它们提升为简单的L3交换机。以前,我和我的同事都没有关于Cumulus的丰富经验,所以一切都在某种程度上是新的,然后就此。
没有许可证-没有端口
默认情况下,打开设备电源时,只有2个端口可用-控制台和eth0(也称为管理端口)。要取消阻止25G / 100G端口,您需要添加许可证。马上就可以清楚地看到,以软件名义的Linux并非一无是处,因为 安装许可证后,您需要通过“ systemctl restart switchd.service”重新启动switchd守护程序(实际上,缺少许可证只会阻止该守护程序启动)。
接下来的事情将立即让您记住这仍然是Linux,它将像常规Ubuntu一样使用apt-get upgrade更新设备,但并非总是可以这种方式进行更新。在版本之间进行切换时(例如,从3.1.1切换到4.1.1),您需要安装新映像,这需要将配置重置为默认值。但是它保存了在默认配置下在管理界面上启用了DHCP的功能,这使您可以返回控制。
许可证安装
cumulus@Switch1:~$ sudo cl-license -i
balagan@telecom.ru|123456789qwerty
^+d
cumulus@Switch1:~$ sudo systemctl restart switchd.service
P.S. eth0(mgmt) :
cumulus@Switch1:~$ net show configuration commands | grep eth
net add interface eth0 ip address dhcp
net add interface eth0 vrf mgmt
balagan@telecom.ru|123456789qwerty
^+d
cumulus@Switch1:~$ sudo systemctl restart switchd.service
P.S. eth0(mgmt) :
cumulus@Switch1:~$ net show configuration commands | grep eth
net add interface eth0 ip address dhcp
net add interface eth0 vrf mgmt
提交系统
作为与Juniper一起工作了很多的人,对我而言,诸如回滚,提交确认等工作。不是新手,但设法踩了几把耙子。
由于回滚1 ==最后一个工作配置的习惯,我遇到的第一件事是对积云进行回滚编号。我非常有信心地执行此命令以回滚最新更改。但是,当一块硬件刚刚失控时,我感到惊讶的是,有一段时间我不明白发生了什么。然后,从积云中读取扩展坞后,可以清楚地了解发生了什么:通过驱动命令“ net rollback 1”而不是回滚到最后一个配置,我回滚到了FIRST设备配置(再次,DHCP从默认情况下从惨败中保存了下来)
提交历史
cumulus@Switch1:mgmt:~$ net show commit history
# Date Description
— — — 2 2020-06-30 13:08:02 nclu «net commit» (user cumulus)
208 2020-10-17 00:42:11 nclu «net commit» (user cumulus)
210 2020-10-17 01:13:45 nclu «net commit» (user cumulus)
212 2020-10-17 01:16:35 nclu «net commit» (user cumulus)
214 2020-10-17 01:17:24 nclu «net commit» (user cumulus)
216 2020-10-17 01:24:44 nclu «net commit» (user cumulus)
218 2020-10-17 12:12:05 nclu «net commit» (user cumulus)
cumulus@Switch1:mgmt:~$
# Date Description
— — — 2 2020-06-30 13:08:02 nclu «net commit» (user cumulus)
208 2020-10-17 00:42:11 nclu «net commit» (user cumulus)
210 2020-10-17 01:13:45 nclu «net commit» (user cumulus)
212 2020-10-17 01:16:35 nclu «net commit» (user cumulus)
214 2020-10-17 01:17:24 nclu «net commit» (user cumulus)
216 2020-10-17 01:24:44 nclu «net commit» (user cumulus)
218 2020-10-17 12:12:05 nclu «net commit» (user cumulus)
cumulus@Switch1:mgmt:~$
我必须面对的第二件事是提交确认算法:与通常的“提交确认10”不同,在10分钟之内您需要再次编写“提交”,Cumulus对这个功能有自己的看法。您的“提交确认”只是在输入命令后按Enter键,如果在提交后没有立即断开连接,这会给您造成残酷的笑话。
净提交确认10
cumulus@Switch1:mgmt:~$ net commit confirm 10
— /etc/network/interfaces 2020-10-17 12:12:08.603955710 +0300
+++ /run/nclu/ifupdown2/interfaces.tmp 2020-10-29 19:02:33.296628366 +0300
@@ -204,20 +204,21 @@
auto swp49
iface swp49
+ alias Test
link-autoneg on
net add/del commands since the last «net commit»
================================================
User Timestamp Command
— — — cumulus 2020-10-29 19:02:01.649905 net add interface swp49 alias Test
Press ENTER to confirm connectivity.
— /etc/network/interfaces 2020-10-17 12:12:08.603955710 +0300
+++ /run/nclu/ifupdown2/interfaces.tmp 2020-10-29 19:02:33.296628366 +0300
@@ -204,20 +204,21 @@
auto swp49
iface swp49
+ alias Test
link-autoneg on
net add/del commands since the last «net commit»
================================================
User Timestamp Command
— — — cumulus 2020-10-29 19:02:01.649905 net add interface swp49 alias Test
Press ENTER to confirm connectivity.
第一拓扑
下一阶段是弄清它们之间的切换逻辑,在此阶段仅安装和测试了硬件,还没有任何目标方案的讨论。但是条件之一是,连接到不同MLAG对的服务器必须位于同一L2域中。我不想将一对简单的L2做成一对,因此决定通过SVI提高L3连接性,因此选择OSPF进行路由,因为它已在较旧的数据中心中使用,这使下一步连接基础架构变得更加容易。
该图显示了物理图+将设备分成几对,图中的所有链接都在Trunk模式下工作。
如前所述,所有L3连接都是通过SVI完成的,因此,每4个VLAN中只有2个设备具有IP地址,这使您可以创建L3 p2p捆绑包。
感兴趣的人的基本命令
键合(端口通道)+ CLAG(MLAG)
# vrf mgmt best-practice
net add interface peerlink.4094 clag backup-ip ... vrf mgmt
# ( linklocal IP )
net add interface peerlink.4094 clag peer-ip linklocal
# 44:38:39:ff:00:00-44:38:39:ff:ff:ff
net add interface peerlink.4094 clag sys-mac .X.X.X.X
#C Bond#
net add bond bond-to-sc bond slaves swp1,swp2
# LACP
net add bond bond-to-sc bond mode 802.3ad
# VLAN Bond
net add bond bond-to-sc bridge vids 42-43
# ID
net add bond bond-to-sc clag id 12
P.S. /etc/network/interfaces
cumulus@Switch1:mgmt:~$ net show clag
The peer is alive
Our Priority, ID, and Role: 32768 1c:34:da:a5:6a:10 secondary
Peer Priority, ID, and Role: 100 b8:59:9f:70:0e:50 primary
Peer Interface and IP: peerlink.4094 fe80::ba59:9fff:fe70:e50 (linklocal)
VxLAN Anycast IP: 10.223.250.9
Backup IP: 10.1.254.91 vrf mgmt (active)
System MAC: 44:39:39:aa:40:97
net add interface peerlink.4094 clag backup-ip ... vrf mgmt
# ( linklocal IP )
net add interface peerlink.4094 clag peer-ip linklocal
# 44:38:39:ff:00:00-44:38:39:ff:ff:ff
net add interface peerlink.4094 clag sys-mac .X.X.X.X
#C Bond#
net add bond bond-to-sc bond slaves swp1,swp2
# LACP
net add bond bond-to-sc bond mode 802.3ad
# VLAN Bond
net add bond bond-to-sc bridge vids 42-43
# ID
net add bond bond-to-sc clag id 12
P.S. /etc/network/interfaces
cumulus@Switch1:mgmt:~$ net show clag
The peer is alive
Our Priority, ID, and Role: 32768 1c:34:da:a5:6a:10 secondary
Peer Priority, ID, and Role: 100 b8:59:9f:70:0e:50 primary
Peer Interface and IP: peerlink.4094 fe80::ba59:9fff:fe70:e50 (linklocal)
VxLAN Anycast IP: 10.223.250.9
Backup IP: 10.1.254.91 vrf mgmt (active)
System MAC: 44:39:39:aa:40:97
中继/接入端口模式
# Vlan
net add vlan 21 ip address 100.64.232.9/30
# ID
net add vlan 21 vlan-id 21
# L2 Bridge
net add vlan 21 vlan-raw-device bridge
P.S. VLAN Bridge
#Trunk ( bridge vlan)
net add bridge bridge ports swp49
#Trunk ( VLAN)
net add interface swp51-52 bridge vids 510-511
#Access
net add interface swp1 bridge access 21
P.S. /etc/network/interfaces
net add vlan 21 ip address 100.64.232.9/30
# ID
net add vlan 21 vlan-id 21
# L2 Bridge
net add vlan 21 vlan-raw-device bridge
P.S. VLAN Bridge
#Trunk ( bridge vlan)
net add bridge bridge ports swp49
#Trunk ( VLAN)
net add interface swp51-52 bridge vids 510-511
#Access
net add interface swp1 bridge access 21
P.S. /etc/network/interfaces
OSPF +静态
#Static route mgmt
net add routing route 0.0.0.0/0 10.1.255.1 vrf mgmt
#OSPF Network
net add ospf network 0.0.0.0 area 0.0.0.0
#OSPF
net add interface lo ospf area 0.0.0.0
P.S. Cumulus Loopback
#OSPF
net add ospf redistribute connected
P.S. vtysh(c Cisco like ), .. Cumulus FRR
net add routing route 0.0.0.0/0 10.1.255.1 vrf mgmt
#OSPF Network
net add ospf network 0.0.0.0 area 0.0.0.0
#OSPF
net add interface lo ospf area 0.0.0.0
P.S. Cumulus Loopback
#OSPF
net add ospf redistribute connected
P.S. vtysh(c Cisco like ), .. Cumulus FRR
结论
我希望有人会觉得这篇文章有趣。我希望看到反馈:添加什么,什么是完全不必要的。在下一篇文章中,我们将继续进行最有趣的操作-目标网络的设计和VXLAN / EVPN配置。将来,可能还会有一篇有关使用Python进行VXLAN / EVPN自动化的文章。