GNU/Linux >> Belajar Linux >  >> Linux

Buat SDN di Linux dengan open source

Protokol perutean jaringan terbagi dalam dua kategori utama:protokol gateway interior dan protokol gateway eksterior. Protokol gateway interior digunakan oleh router untuk berbagi informasi dalam satu sistem otonom. Jika Anda menjalankan Linux, Anda dapat membuat sistem Anda berfungsi sebagai router melalui tumpukan perutean open source (GPLv2) Quagga.

Apa itu Quagga?

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Quagga adalah rangkaian perangkat lunak perutean dan cabang dari GNU Zebra. Ini menyediakan implementasi dari semua protokol routing utama seperti Open Shortest Path First (OSPF), Routing Information Protocol (RIP), Border Gateway Protocol (BGP), dan Intermediate System to Intermediate System (IS-IS) untuk platform mirip Unix.

Meskipun Quagga mengimplementasikan protokol perutean untuk IPv4 dan IPv6, Quagga tidak bertindak sebagai router yang lengkap. Router yang sebenarnya tidak hanya mengimplementasikan semua protokol routing tetapi juga memiliki kemampuan untuk meneruskan lalu lintas jaringan. Quagga hanya mengimplementasikan tumpukan perutean, dan tugas meneruskan lalu lintas jaringan ditangani oleh kernel Linux.

Arsitektur

Quagga mengimplementasikan protokol perutean yang berbeda melalui daemon khusus protokol. Nama daemon sama dengan protokol routing yang diikuti dengan huruf "d". Zebra adalah daemon inti dan protokol-independen yang menyediakan lapisan abstraksi ke kernel dan menyajikan API Zserv melalui soket TCP ke klien Quagga. Setiap daemon khusus protokol bertanggung jawab untuk menjalankan protokol yang relevan dan membangun tabel perutean berdasarkan informasi yang dipertukarkan.

Penyiapan

Tutorial ini mengimplementasikan protokol OSPF untuk mengkonfigurasi routing dinamis menggunakan Quagga. Pengaturan mencakup dua host CentOS 7.7, bernama Alpha dan Beta. Kedua host berbagi akses ke 192.168.122.0/24 jaringan.

Alfa Host:

IP:192.168.122.100/24

Gateway:192.168.122.1

Host Beta:

IP:192.168.122.50/24

Gateway:192.168.122.1

Instal paket

Pertama, instal paket Quagga di kedua host. Ini tersedia di repo dasar CentOS:

yum install quagga -y

Aktifkan penerusan IP

Selanjutnya, aktifkan penerusan IP pada kedua host karena itu akan dilakukan oleh kernel Linux:

sysctl -w net.ipv4.ip_forward = 1
sysctl -p

Konfigurasi

Sekarang, masuk ke /etc/quagga direktori dan buat file konfigurasi untuk pengaturan Anda. Anda memerlukan tiga file:

  • zebra.conf :File konfigurasi daemon Quagga, tempat Anda akan menentukan antarmuka dan alamat IP serta penerusan IP
  • ospfd.conf :File konfigurasi protokol, tempat Anda akan menentukan jaringan yang akan ditawarkan melalui protokol OSPF
  • daemon :Di mana Anda akan menentukan daemon protokol yang relevan yang diperlukan untuk dijalankan

Di host Alfa,

 [root@alpha]# cat /etc/quagga/zebra.conf
interface eth0
 ip address 192.168.122.100/24
 ipv6 nd suppress-ra
interface eth1
 ip address 10.12.13.1/24
 ipv6 nd suppress-ra
interface lo
ip forwarding
line vty


[root@alpha]# cat /etc/quagga/ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
 network 192.168.122.0/24 area 0.0.0.0
 network 10.12.13.0/24 area 0.0.0.0
line vty

[root@alphaa ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes

Pada host Beta,

[root@beta quagga]# cat zebra.conf
interface eth0
 ip address 192.168.122.50/24
 ipv6 nd suppress-ra
interface eth1
 ip address 10.10.10.1/24
 ipv6 nd suppress-ra
interface lo
ip forwarding
line vty

[root@beta quagga]# cat ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
 network 192.168.122.0/24 area 0.0.0.0
 network 10.10.10.0/24 area 0.0.0.0
line vty

[root@beta ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes

Konfigurasi firewall

Untuk menggunakan protokol OSPF, Anda harus mengizinkannya di firewall:

firewall-cmd --add-protocol=ospf –permanent

firewall-cmd –reload

Sekarang, jalankan daemon zebra dan ospfd.

# systemctl start zebra
# systemctl start ospfd

Lihat tabel rute pada kedua host menggunakan:

[root@alpha ~]# ip route show   
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.50 dev eth0 proto zebra metric 20
10.12.13.0/24 dev eth1 proto kernel scope link src 10.12.13.1
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100

Anda dapat melihat bahwa tabel perutean di Alfa berisi entri 10.10.10.0/24 melalui 192.168.122.50 ditawarkan melalui protokol zebra . Demikian pula, pada host Beta, tabel berisi entri jaringan 10.12.13.0/24 melalui 192.168.122.100 .

[root@beta ~]# ip route show 
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.1
10.12.13.0/24 via 192.168.122.100 dev eth0 proto zebra metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100

Kesimpulan

Seperti yang Anda lihat, pengaturan dan konfigurasinya relatif sederhana. Untuk menambah kerumitan, Anda dapat menambahkan lebih banyak antarmuka jaringan ke router untuk menyediakan perutean untuk lebih banyak jaringan. Anda juga dapat mengimplementasikan protokol BGP dan RIP menggunakan metode yang sama.


Linux
  1. Berbagi file sumber terbuka dengan alat Linux ini

  2. Lakukan forensik memori Linux dengan alat sumber terbuka ini

  3. Pengusaha untuk meningkatkan perekrutan profesional TI dengan keterampilan open source

  1. Seni piksel 3D sumber terbuka dengan Goxel

  2. Pemetaan pikiran sumber terbuka dengan Draw.io

  3. Kisah Linux saya:memecahkan hambatan bahasa dengan open source

  1. Akses iPhone Anda di Linux dengan alat sumber terbuka ini

  2. Simpan beberapa distro Linux di USB dengan alat sumber terbuka ini

  3. Kelola anggaran Anda di Linux dengan alat keuangan sumber terbuka ini