Dari nol hingga pusat data dengan VXLAN / EVPN atau cara memasak Cumulus Linux. Bagian 1

Dalam enam bulan terakhir, kami berhasil mengerjakan sebuah proyek besar dan menarik, yang mencakup semuanya: mulai dari memasang peralatan hingga membuat satu domain VXLAN / EVPN di 4 pusat data. Karena Saya memiliki banyak pengalaman dan banyak rintangan dalam prosesnya, saya memutuskan bahwa menulis beberapa artikel tentang topik ini akan menjadi solusi terbaik. Saya memutuskan untuk membuat bagian pertama lebih umum dan pengantar. Desain target pabrik akan diungkapkan di bagian selanjutnya.







Memperkenalkan Cumulus Linux. Instalasi perangkat keras dan pengaturan awal



Pengantar awal pekerjaan adalah sebagai berikut:



  1. Peralatan dibeli
  2. Rak disewa
  3. Garis ke pusat data lama diletakkan


Perangkat keras pertama yang perlu dikirimkan adalah 4 x Mellanox SN2410 dengan Cumulus Linux yang telah diinstal sebelumnya. Pada awalnya, masih belum ada pemahaman tentang bagaimana segala sesuatunya akan terlihat (ini akan berkembang hanya pada tahap implementasi VXLAN / EVPN), oleh karena itu, kami memutuskan untuk mengangkatnya sebagai sakelar L3 sederhana dengan CLAG (Analog of MLAG dari Cumulus). Sebelumnya, baik saya maupun kolega saya tidak memiliki banyak pengalaman dengan Cumulus, jadi semuanya masih baru, lalu hanya tentang itu.



Tanpa lisensi - tidak ada port



Secara default, saat Anda menghidupkan perangkat, hanya 2 port yang tersedia untuk Anda - konsol dan eth0 (alias port Manajemen). Untuk membuka blokir port 25G / 100G, Anda perlu menambahkan lisensi. Dan segera menjadi jelas bahwa Linux atas nama perangkat lunak bukan untuk apa-apa, sejak itu setelah menginstal lisensi, Anda perlu me-restart daemon switchd melalui "systemctl restart switchd.service" (pada kenyataannya, kurangnya lisensi hanya mencegah daemon ini untuk memulai).



Hal berikutnya yang akan segera membuat Anda ingat bahwa ini masih Linux, adalah memperbarui perangkat menggunakan peningkatan apt-get, seperti di Ubuntu biasa, tetapi tidak selalu memungkinkan untuk memperbarui dengan cara ini. Saat beralih antar rilis, misalnya, dari 3.1.1 ke 4.1.1, Anda perlu menginstal gambar baru, yang memerlukan pengaturan ulang konfigurasi ke default. Tetapi itu menyimpan bahwa DHCP diaktifkan pada antarmuka Manajemen dalam konfigurasi default, yang memungkinkan Anda untuk mengembalikan kontrol.



Instalasi lisensi
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




Sistem komit



Sebagai orang yang telah banyak bekerja dengan Juniper, bagi saya hal-hal seperti rollback, commit confirm, dll. bukanlah hal baru, tetapi berhasil menginjak beberapa garu.



Hal pertama yang saya hadapi adalah penomoran kumulus, karena kebiasaan rollback 1 == konfigurasi kerja terakhir. Saya menjalankan perintah ini dengan sangat percaya diri untuk mengembalikan perubahan terbaru. Tetapi apa yang mengejutkan saya ketika perangkat keras menghilang begitu saja, dan untuk beberapa waktu saya tidak mengerti apa yang terjadi. Kemudian, setelah membaca dok dari kumulus, menjadi jelas apa yang terjadi: dengan menjalankan perintah "rollback bersih 1" alih-alih memutar kembali ke konfigurasi terakhir, saya memutar kembali ke konfigurasi perangkat PERTAMA. (Dan lagi, DHCP disimpan dari kegagalan dalam konfigurasi default)



melakukan sejarah
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:~$




Hal kedua yang harus saya hadapi adalah algoritma konfirmasi komit: tidak seperti "komit konfirmasi 10" biasa, di mana dalam 10 menit Anda perlu menulis "komit" lagi, Cumulus memiliki visi sendiri tentang fitur ini. "Komit konfirmasi" Anda cukup menekan Enter setelah memasukkan perintah, yang dapat memainkan lelucon kejam pada Anda jika konektivitas tidak hilang segera setelah komit.



konfirmasi komit bersih 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.




Topologi pertama



Tahap selanjutnya adalah menyusun logika switch di antara mereka sendiri, pada tahap ini perangkat keras hanya dipasang dan diuji, belum ada pembicaraan tentang skema target apa pun. Tetapi salah satu syaratnya adalah server yang terhubung ke pasangan MLAG yang berbeda harus dalam domain L2 yang sama. Saya tidak ingin membuat salah satu pasangan L2 sederhana, dan oleh karena itu diputuskan untuk meningkatkan konektivitas L3 melalui SVI, OSPF dipilih untuk perutean, karena ini telah digunakan di pusat data lama, membuatnya lebih mudah untuk menghubungkan infrastruktur di langkah berikutnya.







Diagram ini menunjukkan diagram fisika + pembagian perangkat menjadi pasangan-pasangan, semua tautan dalam diagram bekerja dalam mode Batang.







Seperti yang telah disebutkan, semua konektivitas L3 dilakukan melalui SVI, oleh karena itu, hanya 2 dari 4 perangkat yang memiliki alamat IP di setiap Vlan, yang memungkinkan Anda membuat semacam bundel L3 p2p.



Perintah dasar bagi mereka yang tertarik



Bond (Port-channel) + 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




Trunk / Access port mode
# 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 + Statis
#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



Kesimpulan



Saya harap seseorang akan menganggap artikel ini menarik. Saya ingin melihat tanggapan: apa yang harus ditambahkan, dan apa yang sama sekali tidak perlu. Pada artikel berikutnya, kita akan beralih ke yang paling menarik - desain jaringan target dan konfigurasi VXLAN / EVPN. Dan di masa depan, artikel tentang otomatisasi VXLAN / EVPN menggunakan Python dapat dilakukan.



All Articles