您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“Linux系統中如何使用開源軟件創建SDN”。內容詳細易懂,對“Linux系統中如何使用開源軟件創建SDN”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“Linux系統中如何使用開源軟件創建SDN”的知識吧。
網絡路由協議分為兩大類:內部網關協議和外部網關協議。路由器使用內部網關協議在單個自治系統內共享信息。如果你用的是 Linux,則可以通過開源(GPLv2)路由協議棧 Quagga 使其表現得像一臺路由器。
Quagga 是一個路由軟件包,并且是 GNU Zebra 的一個分支。它為類 Unix 平臺提供了所有主流路由協議的實現,例如開放最短路徑優先(OSPF),路由信息協議(RIP),邊界網關協議(BGP)和中間系統到中間系統協議(IS-IS)。
盡管 Quagga 實現了 IPv4 和 IPv6 的路由協議,但它并不是一個完整的路由器。一個真正的路由器不僅實現了所有路由協議,而且還有轉發網絡流量的能力。 Quagga 僅僅實現了路由協議棧,而轉發網絡流量的工作由 Linux 內核處理。
Quagga 通過特定協議的守護程序實現不同的路由協議。守護程序名稱與路由協議相同,加了字母“d”作為后綴。Zebra 是核心,也是與協議無關的守護進程,它為內核提供了一個抽象層,并通過 TCP 套接字向 Quagga 客戶端提供 Zserv API。每個特定協議的守護程序負責運行相關的協議,并基于交換的信息來建立路由表。
Quagga architecture
本教程通過 Quagga 實現的 OSPF 協議來配置動態路由。該環境包括兩個名為 Alpha 和 Beta 的 CentOS 7.7 主機。兩臺主機共享訪問 192.168.122.0/24 網絡。
主機 Alpha:
IP:192.168.122.100/24 網關:192.168.122.1
主機 Beta:
IP:192.168.122.50/24 網關:192.168.122.1
首先,在兩臺主機上安裝 Quagga 軟件包。它存在于 CentOS 基礎倉庫中:
yum install quagga -y
接下來,在兩臺主機上啟用 IP 轉發,因為它將由 Linux 內核來執行:
sysctl -w net.ipv4.ip_forward = 1
sysctl -p
現在,進入 /etc/quagga 目錄并為你的設置創建配置文件。你需要三個文件:
zebra.conf:Quagga 守護程序的配置文件,你可以在其中定義接口及其 IP 地址和 IP 轉發
ospfd.conf:協議配置文件,你可以在其中定義將通過 OSPF 協議提供的網絡
daemons:你將在其中指定需要運行的相關的協議守護程序
在主機 Alpha 上,
[root@alpha]# cat /etc/quagga/zebra.conf
interface eth0
ip address 192.168.122.100/24
ipv6 nd suppress-ra
interface eth2
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 eth2
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
在主機 Beta 上,
[root@beta quagga]# cat zebra.conf
interface eth0
ip address 192.168.122.50/24
ipv6 nd suppress-ra
interface eth2
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 eth2
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
要使用 OSPF 協議,必須允許它通過防火墻:
firewall-cmd --add-protocol=ospf –permanent
firewall-cmd –reload
現在,啟動 zebra 和 ospfd 守護程序。
# systemctl start zebra
# systemctl start ospfd
用下面命令在兩個主機上查看路由表:
[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 eth2 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
你可以看到 Alpha 上的路由表包含通過 192.168.122.50 到達 10.10.10.0/24 的路由項,它是通過協議 zebra 獲取的。同樣,在主機 Beta 上,該表包含通過 192.168.122.100 到達網絡 10.12.13.0/24 的路由項。
[root@beta ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth2 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
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
關于Linux系統中如何使用開源軟件創建SDN就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。