預習知識
在進行路由器的搭建之前,需要了解一些基本的知識。下面將會一一道來。
答:路由表,指的是路由器或者其他互聯網網絡設備上存儲的表,該表中存有到達特定網絡終端的路徑,在某些情況下,還有一些與這些路徑相關的度量。
路由器(Router)又稱網關設備(Gateway)是用於連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者一個子網。當數據從一個子網傳輸到另一個子網時,可通過路由器的路由功能來完成。因此,路由器具有判斷網絡地址和選擇IP路徑的功能,它能在多網絡互聯環境中,建立靈活的連接,可用完全不同的數據分組和介質訪問方法連接各種子網,路由器只接受源站或其他路由器的信息,屬網絡層的一種互聯設備。
在Linux系統中,路由表和轉發數據包的功能都是Linux內核所提供。在我們的Ubuntu14.04系統中,默認情況下是沒有開啟數據包轉發功能的。需要開啟的方法主要有兩種:
第一種方法是:echo 1 > /proc/sys/net/ipv4/ip_forward,但是這樣的修改在系統重啟后失效了。
第二種方法是:編輯/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1這一行,然后將前面的#號去除即可。這樣就可以一勞永逸了。具體的方法參見下面的截圖:
3、什么是網卡?在Linux系統下,網卡信息如何查看?
答:網卡是工作在鏈路層的網絡組建,是教育網中連接計算機和傳輸介質的接口,不僅能實現與局域網傳輸介質之間的物理連接和電信號匹配,還涉及到幀的發送和接收、幀的封裝與拆封、介質訪問控制、數據的編碼與解碼以及數據緩存的功能等。
那么,我們在Linux系統如何查看網卡信息呢?很簡單使用ifconfig命令即可。eth表示的是以太網卡,參見下面的截圖。可以看到,我的電腦上一塊以太網卡eth0,可以看到它的硬件地址、ip地址等各種信息。
4、什么是IP地址,網段,網關,子網掩碼?在Linux系統下,我們應該如何查看和修改這些參數呢?
IP地址:IP地址(英語:Internet Protocol Address)是一種在Internet上的給主機編址的方式,也稱為網際協議地址。常見的IP地址,分為IPv4與IPv6兩大類。IP地址編址方案將IP地址空間划分為A、B、C、D、E五類,其中A、B、C是基本類,D、E類作為多播和保留使用。
網段:網段一般指一個計算機網絡中使用同一物理層設備(傳輸介質,中繼器,集線器等)直接通訊的那一部分。即IP地址范圍從一個到另外一個,如,192.168.1.1到192.168.1.254。網關:網關(Gateway)又稱網間連接器、協議轉換器。默認網關在網絡層上以實現網絡互連,是最復雜的網絡互連設備,僅用於兩個高層協議不同的網絡互連。網關的結構也和路由器類似,不同的是互連層。網關既可以用於廣域網互連,也可以用於局域網互連。當今很多局域網采用都是路由來接入網絡的,因此通常指的網關就是路由器的IP。
子網掩碼:子網掩碼(subnet mask)又叫網絡掩碼、地址掩碼、子網絡遮罩,它是一種用來指明一個IP地址的哪些位標識的是主機所在的子網以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址划分成網絡地址和主機地址兩部分。
在Linux下面,我們可以通過ifconfig命令來查看網卡的IP地址,子網掩碼等信息。參見問題3的截圖。可以通過route -n命令或者netstat -r命令等來查看網關信息,參加問題1的截圖。
通常有兩種方法來修改諸如IP地址,子網掩碼之類的信息。一種方式是通過命令行的方式,即使用命令ifconfig, ip route add等命令(詳細使用這些命令的方法可以通過man或者help命令來查看)來進行修改,但是通過命令行的方式來修改並不是一勞永逸的,它們會在系統重啟后恢復原來的狀態。所以,另外一種方法便是直接修改配置文件的方法了。關於配置文件,Ubuntu主要是通過修改/etc/network/interfaces文件來實現。后面的實驗會給出修改的方法。
5、什么是RIP協議?RIPV1和RIPV2協議之間有什么關系?
答:簡要地來說,OSPF(Open Shortest Path First開放式最短路徑優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP),用於在單一自治系統(autonomous system,AS)內決策路由。是對鏈路狀態路由協議的一種實現,隸屬內部網關協議(IGP),故運作於自治系統內部。著名的迪克斯加算法被用來計算最短路徑樹。與RIP相比,OSPF是鏈路狀態協議,而RIP是距離矢量協議。
答:BGP協議即邊界網關協議,而上面的兩種協議——RIP協議和OSPF協議則屬於內部網關協議。
邊界網關協議(BGP)是運行於 TCP 上的一種自治系統的路由協議。 BGP 是唯一一個用來處理像因特網大小的網絡的協議,也是唯一能夠妥善處理好不相關路由域間的多路連接的協議。 BGP 構建在 EGP 的經驗之上。 BGP 系統的主要功能是和其他的 BGP 系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。這些信息有效地構造了 AS 互聯的拓朴圖並由此清除了路由環路,同時在 AS 級別上可實施策略決策。
BGP路由選擇協議執行中使用4種分組:打開分組(open)、更新分組(update)、存活分組(keepalive)、通告分組(notification)。
靜態路由的路由器搭建方法
准備工作
1、在虛擬機(我用的是Virtual Box,若干次測試表明,在Ubuntu上使用這個虛擬機軟件比較流暢)上安裝上一個Linux系統,比如我用的Ubuntu 14.04桌面版。然后配置好系統,安裝上zebra/quagga軟件。
2、連續復制得到另外三個相同的虛擬。
3、配置這幾個系統。考慮到我們實際使用中需要開啟四個虛擬機系統,所以肯定會很卡頓。所以,我的做法是,把X-Window給關閉,即讓系統開機后直接進入tty1。這樣做的好處是,可以明顯減少物理內存的占用,即使開啟4個也沒有卡頓的現象。當然,前提是要熟悉基本的Linux操作。設置方法如下:修改/etc/default/grub文件如下:
保存配置后,在終端中輸入sudo update-grub2,重啟后即可生效。最終的效果如下:
實驗內容
在開始實驗之前,我們先來確定下各個設備的配置信息,然后在下面配置時回到這兒參照配置系統網卡:
| Linux Router A | Linux Router B | 工作站 | 客戶端 |
|
1、兩張網卡eth0, eth1,通過橋接方式連接。
2、Eth0(內網),IP設置為:192.168.1.254/24。
3、Eth1(外網),IP可不設定。
|
1、兩張網卡eth0, eth1, 通過橋接方式連接。
2、Eth0(外), IP設置為:192.168.1.100/24
3、Eth1(內),IP設置為:192.168.100.254/24
4、默認網關:192.168.1.254
|
1、一張網卡eth0,通過橋接方式連接。
2、Eth0,IP設置為:192.168.1.102/24
3、默認網關:192.168.1.254
|
1、一張網卡eth0,通過橋接方式連接。
2、Eh0, IP設置為192.168.100.12/24
3、默認網關:192.168.100.254
|
開始實驗
測試這個網絡
當按照上面的步驟以此配置完成后,此時就可以進行測試了。其實主要就是測試下客戶端(在內部網絡中)和工作站(Workstation,在外部網絡中)之間能否相互ping通,如果可以的的話,說明我們的系統搭建成功了。測試分別如下:
結束語
動態路由的路由器搭建方法——使用RIP協議
准備工作
實驗內容
測試這個網絡
結束語
動態路由的路由器搭建方法——使用OSPF協議
開始實驗
測試這個網絡
又到了最后測試的環節了。還是和前面一樣,使用ping的方式進行測試。如果可以ping通,表明測試成功。兩個處於不同網段的客戶端可以正常通信了。下面給出詳細ping測試的截圖。
結束語
動態路由的路由器搭建方法——使用BGP協議
開始實驗
測試這個網絡
如果上面的步驟都是正確無誤,且保證zebra和bgpd這兩個daemon都在兩個路由器上正常運行的話,就可以進行下面的一些測試了。
、
結束語
上面的測試結果表明,我們使用BGP協議搭建的路由器已經可以工作了。位於兩個不同網段的客戶端A和B之間也可以相互ping通,所以,整個實驗也就完成了。
上面的三個實驗分別使用了RIP協議、OSPF協議、BGP協議來搭建路由器。演示了使用zebra/quagga搭建路由器的基本方法。可以看到,其實總的來說並不是特別困難,同時,也可以看到zebra/quagga軟件卻是很強大!
