何もないところからVXLAN / EVPNを使用したデータセンター、またはCumulusLinuxの調理方法まで。パート1

過去6か月で、機器の設置から4つのデータセンターでの単一のVXLAN / EVPNドメインの作成まで、すべてを含む大規模で興味深いプロジェクトに取り組むことができました。なぜなら 私はその過程で多くの経験と多くのバンプを持っていたので、このトピックに関するいくつかの記事を書くことが最善の解決策であると判断しました。私は最初の部分をより一般的で入門的なものにすることに決めました。工場の目標設計は次のセクションで明らかにされます。







CumulusLinuxのご紹介。ハードウェアのインストールと初期設定



作業開始の概要は次のとおりです。



  1. 購入した機器
  2. レンタルラック
  3. 古いデータセンターへの回線が敷設されました


納品する必要のある最初のハードウェアは、CumulusLinuxがプリインストールされた4x MellanoxSN2410でした。最初は、すべてがどのように見えるか(VXLAN / EVPN実装の段階でのみ開発される)がまだ理解されていなかったため、CLAG(CumulusのMLAGのアナログ)を備えた単純なL3スイッチとしてそれらを上げることにしました。以前は、私も同僚もCumulusの経験があまりなかったので、すべてがある程度新しいものでした。



ライセンスなし-ポートなし



デフォルトでは、デバイスの電源を入れると、コンソールとeth0(別名管理ポート)の2つのポートしか使用できません。25G / 100Gポートのブロックを解除するには、ライセンスを追加する必要があります。そして、ソフトウェアの名の下にあるLinuxは、何の役にも立たないことがすぐに明らかになります。ライセンスをインストールした後、「systemctl restartswitchd.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




コミットシステム



ジュニパーと多くの仕事をした人として、私にとってはロールバック、コミット確認などのことです。新しくはありませんでしたが、なんとかいくつかのレーキを踏むことができました。



私が最初に遭遇したのは、ロールバック1 ==最後の作業構成の習慣のため、累積のロールバック番号付けでした。私はこのコマンドを自信を持って推進し、最新の変更をロールバックしています。しかし、ハードウェアの一部が制御不能になったときの驚きは何でしたか。しばらくの間、何が起こったのか理解できませんでした。次に、cumulusからドキュメントを読んだ後、何が起こったのかが明らかになりました。最後の構成にロールバックする代わりに「net rollback 1」コマンドを実行することで、最初のデバイス構成にロールバックしました(また、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:~$




次に直面しなければならなかったのは、コミット確認アルゴリズムでした。通常の「コミット確認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.




最初のトポロジー



次の段階は、それらの間のスイッチのロジックを理解することでした。この段階では、ハードウェアはインストールされ、テストされただけで、ターゲットスキームの話はまだありませんでした。ただし、条件の1つは、異なるMLAGペアに接続されているサーバーが同じL2ドメインにある必要があることでした。ペアの1つを単純なL2にしたくなかったため、SVIを介してL3接続を上げることにしました。ルーティングには、OSPFが選択されました。古いデータセンターですでに使用されているため、次のステップでインフラストラクチャを簡単に接続できます。







この図は、物理図とデバイスのペアへの分割を示しています。図内のすべてのリンクはトランクモードで機能します。







前述のように、すべてのL3接続はSVIを介して行われるため、4つのデバイスのうち2つだけが各VlanにIPアドレスを持ち、一種のL3p2pバンドルを作成できます。



興味のある人のための基本的なコマンド



ボンド(ポートチャネル)+ 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




トランク/アクセスポートモード
# 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



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



結論



誰かがこの記事を面白いと思ってくれることを願っています。何を追加するのか、何が完全に不要なのか、フィードバックをお願いします。次の記事では、すでに最も興味深いもの、つまりターゲットネットワークの設計とVXLAN / EVPN構成に移ります。そして将来的には、Pythonを使用したVXLAN / EVPN自動化に関する記事が可能になります。



All Articles