把Linux變成開源SDN
導讀 | 使用開源路由協議棧 Quagga,使你的 系統成為一臺路由器。 |
網路路由協議分為兩大類:內部閘道器協議和外部閘道器協議。路由器使用內部閘道器協議在單個自治系統內共享資訊。如果你用的是 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 實現的 OSPF 協議來配置動態路由。該環境包括兩個名為 Alpha 和 Beta 的 7.7 主機。兩臺主機共享訪問 192.168.122.0/24 網路。
IP:192.168.122.100/24 閘道器:192.168.122.1
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 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
在主機 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
要使用 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 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
你可以看到 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 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
如你所見,環境和配置相對簡單。要增加複雜性,你可以向路由器新增更多網路介面,以為更多網路提供路由。你也可以使用相同的方法來實現 BGP 和 RIP 協議。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2892942/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何把rac元件變成單機元件
- 把你的舊筆記本變成 Chromebook筆記Chrome
- 開源力量公開課第五十期-深入淺出SDN
- 妙用編輯器:把EverEdit變成計算器
- TF Live首期預告:多雲時代,聊聊SDN開源架構架構
- 來TF Meetup,追一場“開源SDN”的技術風暴
- Luxi把iPhone變成一個入射光測光表UXiPhone
- 直播預告丨開源SDN互通實戰演示與經驗分享
- SphinxJS——把字串編碼成png圖片的超輕量級開源庫JS字串編碼
- 把 SQL Server 遷移到 Linux?不如換成 MySQLServerLinuxMySql
- 中國軟體“成也開源,敗也開源”?
- SSH Tunnel (埠轉發) -- 把個人PC變成“幕後boss”
- 怎麼把資料夾變成壓縮包傳送
- 如何把老舊筆記本變成一部 Chromebook筆記Chrome
- 計算機加鎖 把隨身碟變成開啟電腦的鑰匙(轉)計算機
- 把上次開發的小程式,整理後開源
- Linux下把sra檔案轉成fastq檔案LinuxAST
- 如何把你的樹莓派變成一個 HiFi 音樂系統樹莓派
- 把烏托邦變成細密畫:華為如何思考家居IoT?
- Oracle 11g RAC如何把物理DG變成只讀庫Oracle
- Gamevice遊戲手柄:把iPad和iphone都變成遊戲機GAM遊戲iPadiPhone
- jQuery.swatches – 把 Div 變成可愛的調色盤jQuery
- PS教程:手把手教你把圖片變成江南水墨風
- DeepMind 把自己的“殺手鐗”開源了
- 表變數和臨時表的差別 (以前把表變數叫成變數表了,哎。。。)變數
- TF Live直播回放丨王峻:藉助開源SDN利器打通異構混合雲
- Gartner:人工智慧將把部分專業工作變成公用事業人工智慧
- Airphone手機殼幫你把iPhone變成雙卡雙待AIiPhone
- 金融變局下,看興業數金SDN實踐
- 智慧家居如何把老款定頻空調變成智慧“變頻”空調#米家#智慧家居#HA
- 把一個庫開源,你該做些什麼
- Linux檔案系統變成只讀Linux
- 開源是怎樣煉成的?
- Windows怎麼把視訊變成GIF,動態圖怎麼製作Windows
- 把iPad變成兒童智慧教育裝置 別再只玩遊戲了iPad遊戲
- 應用號或把微信變成“網際網路作業系統”作業系統
- Win10把預設圖片儲存格式變成“jfif”了,怎麼變回“JPG”格式?Win10
- Android中熱修復框架Robust原理解析+並將框架程式碼從"閉源"變成"開源"(下篇)Android框架