|
本文主要介紹如何用Linux做一個(gè)功能完備的路由器,這里將主要介紹靜態(tài)路由器和動(dòng)態(tài)路由器的配置,但不包括IP偽裝或者說公用一個(gè)IP地址訪問外面網(wǎng)絡(luò)等問題。其已經(jīng)不屬于本主題討論的范圍,請(qǐng)參考其他如防火墻的配置等的內(nèi)容。
LRP(Linux Router Project)已經(jīng)成立了有好幾年的時(shí)間了。這個(gè)計(jì)劃的目的是利用Linux操作系統(tǒng)將老舊的個(gè)人電腦如486當(dāng)成網(wǎng)絡(luò)的路由器使用。利用Linux低成本建立的路由器可能引起企業(yè)界廣泛的注意。正如StoneFly Technology的系統(tǒng)整合工程師Bret Berger所說的,對(duì)無法負(fù)擔(dān)兩千(美元)思科(Cisco)路由器的使用者來說,利用486加上幾張以太網(wǎng)卡,當(dāng)成路由器使用,是另一個(gè)選擇。而對(duì)于一些小型企業(yè)、小型ISP ,甚至是政府機(jī)構(gòu),這是一個(gè)很好的解決方案。事實(shí)上目前國內(nèi)高校很多場(chǎng)合正是利用了這一解決方案。
由于LRP計(jì)劃已經(jīng)把Linux的源代碼精簡(jiǎn)化,LRP軟件可以少于2MB ,同時(shí)也可以將LRP軟件放入一張軟盤內(nèi)。也就是說在沒有硬盤的情況下,LPR也可以利用軟盤,載入電腦中使用。Virtual Design Group的軟件工程師Michael Kornegay則表示,他們已經(jīng)將Linux路由器軟件安裝在一架老舊的x86個(gè)人電腦上,再加上兩張以太網(wǎng)卡,沒有使用硬盤的設(shè)備,只是使用軟盤啟動(dòng),便當(dāng)成陽春型的路由器與防火墻使用。
我們?cè)谶@一章里不是教大家如何制作小于2MB的LRP軟件包,而是告訴大家如何利用Linux來獲得一個(gè)性能良好、價(jià)格低廉的路由器。利用Linux構(gòu)建路由器使用的成本雖然便宜,可是在性能與效率上與真正的路由器相比,卻還是有一段距離。對(duì)于玩家們或是一些要求不高的使用者來說,這是一個(gè)不錯(cuò)的選擇。
什么是路由器?
簡(jiǎn)單的說:路由器的功能就是尋路――給IP包尋找正確的路徑以通往目的地。下面是比較詳細(xì)的介紹:
原理與作用
路由器(Router)用于連接多個(gè)邏輯上分開的網(wǎng)絡(luò),所謂邏輯網(wǎng)絡(luò)是代表一個(gè)單獨(dú)的網(wǎng)絡(luò)或者一個(gè)子網(wǎng)。當(dāng)數(shù)據(jù)從一個(gè)子網(wǎng)傳輸?shù)搅硪粋€(gè)子網(wǎng)時(shí),可通過路由器來完成。因此,路由器具有判斷網(wǎng)絡(luò)地址和選擇路徑的功能,它能在多網(wǎng)絡(luò)互聯(lián)環(huán)境中,建立靈活的連接,可用完全不同的數(shù)據(jù)分組和介質(zhì)訪問方法連接各種子網(wǎng),路由器只接受源站或其他路由器的信息,屬網(wǎng)絡(luò)層的一種互聯(lián)設(shè)備。它不關(guān)心各子網(wǎng)使用的硬件設(shè)備,但要求運(yùn)行與網(wǎng)絡(luò)層協(xié)議相一致的軟件。
一般說來,異種網(wǎng)絡(luò)互聯(lián)與多個(gè)子網(wǎng)互聯(lián)都應(yīng)采用路由器來完成。 路由器的主要工作就是為經(jīng)過路由器的每個(gè)數(shù)據(jù)幀尋找一條最佳傳輸路徑,并將該數(shù)據(jù)有效地傳送到目的站點(diǎn)。由此可見,選擇最佳路徑的策略即路由算法是路由器的關(guān)鍵所在。為了完成這項(xiàng)工作,在路由器中保存著各種傳輸路徑的相關(guān)數(shù)據(jù)--路徑表(RoutingTable),供路由選擇時(shí)使用。路徑表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個(gè)數(shù)和下一個(gè)路由器的名字等內(nèi)容。路徑表可以是由系統(tǒng)管理員固定設(shè)置好的,也可以由系統(tǒng)動(dòng)態(tài)修改,可以由路由器自動(dòng)調(diào)整,也可以由主機(jī)控制。
靜態(tài)路徑表
由系統(tǒng)管理員事先設(shè)置好固定的路徑表稱之為靜態(tài)(static)路徑表,一般是在系統(tǒng)安裝時(shí)就根據(jù)網(wǎng)絡(luò)的配置情況預(yù)先設(shè)定的,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)的改變時(shí)需管理員手工改動(dòng)相應(yīng)的表項(xiàng)。
動(dòng)態(tài)路徑表
動(dòng)態(tài)(Dynamic)路徑表是路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運(yùn)行情況而自動(dòng)調(diào)整的路徑表。路由器根據(jù)路由選擇協(xié)議(RoutingProtocol)提供的功能,自動(dòng)學(xué)習(xí)和記憶網(wǎng)絡(luò)運(yùn)行情況,在需要時(shí)自動(dòng)計(jì)算數(shù)據(jù)傳輸?shù)淖罴崖窂健?
路由器的功能
(1) 協(xié)議轉(zhuǎn)換:能對(duì)網(wǎng)絡(luò)層及其以下各層的協(xié)議進(jìn)行轉(zhuǎn)換。 (2) 路由選擇:當(dāng)分組從互聯(lián)的網(wǎng)絡(luò)到達(dá)路由器時(shí),路由器能根據(jù)分組的目的地址按某種路由策略,選擇最佳路由,將分組轉(zhuǎn)發(fā)出去,并能隨網(wǎng)絡(luò)拓?fù)涞淖兓?,自?dòng)調(diào)整路由表。 (3) 能支持多種協(xié)議的路由選擇:路由器與協(xié)議有關(guān),不同的路由器有不同的路由器協(xié)議,支持不同的網(wǎng)絡(luò)層協(xié)議。如果互聯(lián)的局域網(wǎng)采用了兩種不同的協(xié)議,例如,一種是TCP/IP協(xié)議,另一種是SPX/IPX協(xié)議(即Netware的傳輸層/網(wǎng)絡(luò)層協(xié)議),由于這兩種協(xié)議有許多不同之處,分布在互聯(lián)網(wǎng)中的TCP/IP(或SPX/IPX)主機(jī)上,只能通過TCP/IP(或SPX/IPX)路由器與其他互聯(lián)網(wǎng)中的TCP/IP(或SPX/IPX)主機(jī)通信,但不能與同一局域網(wǎng)中的SPX/IP(或TCP/IP)主機(jī)通信。多協(xié)議路由器能支持多種協(xié)議,如IP,IPX及X.25協(xié)議,能為不同類型的協(xié)議建立和維護(hù)不同的路由表。這樣不僅能連接同一類型的網(wǎng)絡(luò),還能用它連接不同類型的網(wǎng)絡(luò)。這種功能雖然使路由器的適應(yīng)性變強(qiáng),但同時(shí)也使得路由器的整體性能降低,現(xiàn)在IP協(xié)議在網(wǎng)絡(luò)中越來越占主導(dǎo)地位,因此在下一代路由器(如交換式路由器)只需要支持IP協(xié)議。 (4) 流量控制:路由器不僅具有緩沖區(qū),而且還能控制收發(fā)雙方數(shù)據(jù)流量,使兩者更加匹配。 (5) 分段和組裝功能:當(dāng)多個(gè)網(wǎng)絡(luò)通過路由器互聯(lián)時(shí),各網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)分組的大小可能不相同,這就需要路由器對(duì)分組進(jìn)行分段或組裝。即路由器能將接收的大分組分段并封裝成小分組后轉(zhuǎn)發(fā),或?qū)⒔邮盏男》纸M組裝成大分組后轉(zhuǎn)發(fā)。如果路由器沒有分段組裝功能,那么整個(gè)互聯(lián)網(wǎng)就只能按照所允許的某個(gè)最短分組進(jìn)行傳輸,大大降低了其他網(wǎng)絡(luò)的效能。 (6) 網(wǎng)絡(luò)管理功能:路由器是連接多種網(wǎng)絡(luò)的匯集點(diǎn),網(wǎng)間分組都要通過它,在這里對(duì)網(wǎng)絡(luò)中的分組、設(shè)備進(jìn)行監(jiān)視和管理是比較方便的。因此,高檔路由器都配置了網(wǎng)絡(luò)管理功能,以便提高網(wǎng)絡(luò)的運(yùn)行效率、可靠性和可維護(hù)行。
一個(gè)路由器必然有大于或者等于2的網(wǎng)絡(luò)接口,這樣它才存在路由的功能,否則,如果只有一個(gè)接口的話,也就無所謂"尋路"了!這里說的網(wǎng)絡(luò)接口不一定是物理上的接口,例如網(wǎng)卡或其他,也可以是虛擬的接口,例如隧道入口等。
如前面所描述的,一個(gè)路由器上運(yùn)行的路由信息可以是靜態(tài)配置的,也可以是動(dòng)態(tài)產(chǎn)生。前者通過手工配置完成、而后者則通過在路由器上運(yùn)行跑相關(guān)路由協(xié)議的程序來根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)改變內(nèi)核中的路由表。下面我們仔細(xì)介紹一些這兩類路由器的配置。通常,一個(gè)路由器既有靜態(tài)配置的部分,又有動(dòng)態(tài)配置的部分,二者結(jié)合起來。
多網(wǎng)卡的設(shè)置
靜態(tài)路由器的配置
Linux下最常用的指定路由規(guī)則的命令是route,當(dāng)然也有些圖形化的工具可以使用,我們下面一個(gè)一個(gè)介紹。
route命令的使用
route工具主要功能是管理Linux系統(tǒng)內(nèi)核中的路由表。它最大的用途就是用來設(shè)定靜態(tài)的路由表項(xiàng),通常是在系統(tǒng)用ifconfig配置網(wǎng)絡(luò)接口(例如網(wǎng)卡等)后,用它來設(shè)定主機(jī)或者一網(wǎng)段的IP地址應(yīng)該通過什么接口發(fā)送等。
Route工具有復(fù)雜的調(diào)用參數(shù)。
調(diào)用格式如下: route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
主要參數(shù)說明如下: -v 使用冗余輸出模式。 -A family 指定特定的地址族(例如"inet"、"inet6")。 -n 使用數(shù)字顯示的地址(例如,202.38.75.75)而不是去解釋域名。 -e 使用與netstat相同的輸出格式。 -ee 參數(shù)會(huì)產(chǎn)生很長(zhǎng)的輸出,包括內(nèi)核路由表的幾乎所有信息。 -net 目標(biāo)(target)是一個(gè)網(wǎng)段。 -host 目標(biāo)(target)是一個(gè)單獨(dú)的主機(jī)。 -F 顯示內(nèi)核FIB路由表。結(jié)果可能被-e 和-ee參數(shù)改變。 -C 顯示內(nèi)核中路由緩存信息。 del 刪除一個(gè)路由表項(xiàng)。 add 增加一個(gè)路由表項(xiàng)。 target 配置的目的網(wǎng)段或者主機(jī)??梢允荌P,或者是網(wǎng)絡(luò)或主機(jī)名。 netmask Nm 用來指明要添加的路由表項(xiàng)的網(wǎng)絡(luò)掩碼。 gw Gw 任何通往目的(target )的IP分組都要通過這個(gè)網(wǎng)關(guān)。 metric M 設(shè)置路由表中該項(xiàng)的尺度域(metric field)為M。 mss M 設(shè)置TCP的最大分片長(zhǎng)度(MSS)M bytes。 系統(tǒng)缺省值是536。 window W 設(shè)置TCP發(fā)送窗口的尺寸為W bytes。 irtt I 設(shè)置TCP的初始化回路時(shí)間(irtt)I毫秒(1-12000)。 缺省情況下按照RFC 1122 規(guī)定是300ms。 reject 安裝一個(gè)阻塞型的路由,這樣可能會(huì)有路由查找失敗。 mod, dyn, reinstate 添加或者修改一個(gè)動(dòng)態(tài)路由表項(xiàng)。主要用來測(cè)試和診斷。 dev If 強(qiáng)行使用某個(gè)特定的輸出接口(If),而不用系統(tǒng)去尋找接口。
下面舉幾個(gè)配置的例子:
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 添加一條路由表項(xiàng),網(wǎng)段192.56.76.x 應(yīng)該從接口"eth0"走。
route add default gw mango-gw 添加一條缺省路由(如果沒有其他匹配的路由項(xiàng),就使用這個(gè)路由規(guī)則)。 "mango-gw"是一個(gè)主機(jī)名, 而通往這個(gè)主機(jī)的路由規(guī)則應(yīng)該事先已經(jīng)設(shè)置好了。
route add ipx4 sl0 給主機(jī)"ipx4"添加一條路由規(guī)則,使用SLIP接口sl0。
Route命令的輸出結(jié)果
輸出的格式有以下幾欄:
Destination 目標(biāo)網(wǎng)段或者主機(jī)。
Gateway 網(wǎng)關(guān)地址,如果沒有設(shè)置,則是"*"表示。
Genmask 網(wǎng)絡(luò)掩碼。
Flags 一些可能的標(biāo)記如下: U (路由是活動(dòng)的) H (目標(biāo)是一個(gè)主機(jī)) G (使用網(wǎng)關(guān)(gateway)) R (reinstate route 動(dòng)態(tài)路由產(chǎn)生的表項(xiàng)) D (dynamically installed by daemon or redirect) M (modified from routing daemon or rederict) ! (reject route)
Metric 路由距離。
Ref 路由項(xiàng)引用次數(shù)。(linux內(nèi)核中沒有使用)
Use 查找路由項(xiàng)的次數(shù)。.
Iface 該路由表項(xiàng)對(duì)應(yīng)的輸出接口。
MSS 缺省的TCP最大分片尺寸。
Window 缺省的TCP窗口的尺寸。
irtt 缺省的TCP回路時(shí)間。
HH (cached only) ARP入口的數(shù)目。
Arp (cached only) 該路由項(xiàng)對(duì)應(yīng)的物理地址是否過期等信息。
下面是route -n的輸出實(shí)例:
tarn:~$ /sbin/route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 202.38.64.3 202.38.75.62 255.255.255.255 UGH 0 0 0 eth0 202.38.75.75 0.0.0.0 255.255.255.255 UH 0 0 0 eth2 202.38.75.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.75.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 159.226.0.0 202.38.75.62 255.255.0.0 UG 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 202.38.75.62 0.0.0.0 UG 1 0 0 eth0
上面的輸出中我們可以看出,該路由器配置的缺省網(wǎng)關(guān)是202.38.75.62,它上面有3個(gè)以太網(wǎng)接口(eth0、eth1和eth2)。其中第一條和第二條路由規(guī)則是針對(duì)一個(gè)主機(jī)的,其他的都是針對(duì)一個(gè)網(wǎng)段的,這可以重掩碼看出。
動(dòng)態(tài)路由器的配置
基本原理介紹
先解釋一下什么是動(dòng)態(tài)路由。
從前面的描述中我們可以看到,路由器的基本功能就是為IP分組尋找到達(dá)目的地址的路徑。我們前一節(jié)介紹的是人工手動(dòng)靜態(tài)配置路由規(guī)則,也就是人為的設(shè)定尋路方式。但是因特網(wǎng)是個(gè)龐大的系統(tǒng),上面跑的網(wǎng)絡(luò)結(jié)構(gòu)負(fù)責(zé),而且拓?fù)浣Y(jié)構(gòu)也在隨時(shí)改變,這樣在某些復(fù)雜的范圍里我們的靜態(tài)配置就不一定能獲得最佳的尋路路徑了。而且一旦網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生改變,我們手動(dòng)的靜態(tài)配置也往往無法及時(shí)跟著改變。在這個(gè)背景下,產(chǎn)生了動(dòng)態(tài)路由配置的概念,也就是動(dòng)態(tài)路由器。
動(dòng)態(tài)路由器上的路由表項(xiàng)是通過相互連接的路由器之間交換彼此信息,然后按照一定的算法優(yōu)化出來的,而這些路由信息是在一定時(shí)間間隙里不斷更新,以適應(yīng)不斷變化的網(wǎng)絡(luò),以隨時(shí)獲得最優(yōu)的尋路效果。為了實(shí)現(xiàn)IP分組的高效尋路,IETF制定了多種尋路協(xié)議。其中用于自治系統(tǒng)(AS:Autonomous System)內(nèi)部網(wǎng)關(guān)協(xié)議有開放式最短路徑優(yōu)先(OSPF:Open Shortest Path First)協(xié)議和尋路信息協(xié)議(RIP:Routing Information Protocol)。所謂自治系統(tǒng)是指在同一實(shí)體(如學(xué)校、企業(yè)或ISP)管理下的主機(jī)、路由器及其他網(wǎng)絡(luò)設(shè)備的集合。還有用于自治域系統(tǒng)之間的外部網(wǎng)絡(luò)路由協(xié)議BGP-4等。
運(yùn)行這些路由協(xié)議的軟件就是我們通常說的路由軟件,Linux下常見的路由軟件有g(shù)ated和zebra,。前者既有GPL版本的發(fā)行,又有收費(fèi)的版本;而后者則是日本某組織開發(fā)的完全GPL的高效的路由軟件。Linux的發(fā)行里面一般都缺省就有g(shù)ated這個(gè)軟件,我們下面主要介紹它的配置和使用方法。
路由協(xié)議的介紹
我們這里介紹一下RIP協(xié)議。
RIP是Routing Information Protocol的縮寫,直接翻譯就是"路由信息協(xié)議"。
RIP計(jì)算路由時(shí)使用了"距離向量(distance vector)"算法,因此,它也被稱作"距離向量尋路協(xié)議(distance vector routing protocol)。
RIP的特點(diǎn)是路由器間定時(shí)地交換網(wǎng)絡(luò)的整體知識(shí),并且只和相鄰路由器交換這種知識(shí)。換句話說,路由器只和相鄰路由器共享網(wǎng)絡(luò)信息。路由器一旦從相鄰路由器獲取了新的知識(shí),就將其追加到自己的數(shù)據(jù)庫中,并將該信息傳遞給所有的相鄰的路由器。相鄰路由器做同樣的操作,經(jīng)過若干次傳遞,使自治系統(tǒng)內(nèi)的所有路由器都能獲得完整的路由信息。
RIP報(bào)文用UDP數(shù)據(jù)報(bào)來傳送。為了區(qū)別于其他的UDP應(yīng)用,規(guī)定RIPng的公認(rèn)專用UDP端口號(hào)為521。主動(dòng)尋路更新報(bào)文的源/目的的端口都是RIPng端口,應(yīng)答的更新報(bào)文送往發(fā)起請(qǐng)求的端口。應(yīng)當(dāng)注意,IPv4中RIP使用的端口號(hào)是520,與RIPng的有所不同。
定時(shí)器愛RIP中有著比較重要的作用。在RIP中為支持尋路操作使用了三個(gè)不同的定時(shí)器。
第一個(gè)是啟動(dòng)定時(shí)進(jìn)行RIP更新操作的定時(shí)器。此定時(shí)器通常設(shè)置成30秒。在RIP標(biāo)準(zhǔn)中對(duì)其進(jìn)一步加以限制,它要求路由器對(duì)更新報(bào)文的發(fā)送間隔采用隨機(jī)數(shù),將RIP更新報(bào)文的間隔選取在25秒到35秒之間。其目的是為了避免網(wǎng)絡(luò)上所有的路由器以相同的定時(shí)發(fā)送更新報(bào)文,大量的業(yè)務(wù)量壓迫網(wǎng)絡(luò)造成沖突。利用隨機(jī)間隔可均衡業(yè)務(wù)量,從而減少路由器的沖突。
RIP在避免沖突方面還有一點(diǎn)需要注意,在觸發(fā)更新中不論何時(shí)發(fā)送了報(bào)文,不對(duì)30秒定時(shí)器復(fù)位。如果復(fù)位,多個(gè)路由器的更新報(bào)文的發(fā)送間隔就會(huì)發(fā)生沖突。這是由于所有的路由器在發(fā)送觸發(fā)更新后同時(shí)啟動(dòng)定時(shí)器造成的。如不對(duì)該定時(shí)器復(fù)位,即使與在數(shù)秒前剛廣播的觸發(fā)更新報(bào)文的內(nèi)容完全一樣,定時(shí)的更新報(bào)文也照發(fā)不誤。
RIP使用的第二個(gè)定時(shí)器時(shí)期滿(expiration)定時(shí)器。路由器只要收到通往特定信宿的路由,就對(duì)通往該信宿的期滿定時(shí)器初始化。期滿定時(shí)器雖然被設(shè)定為180秒,但在穩(wěn)定的網(wǎng)絡(luò)中總是每隔30秒被初始化。當(dāng)網(wǎng)絡(luò)不穩(wěn)定時(shí),此定時(shí)器的時(shí)間區(qū)間表示該路由無效。
RIP最后一個(gè)定時(shí)器時(shí)垃圾收集(garbage collection)定時(shí)器。路由器對(duì)無效路由打上尺度為無窮大的無效標(biāo)記并將垃圾收集定時(shí)器置位。此時(shí),定時(shí)器在120秒的區(qū)間內(nèi)工作。在該期間內(nèi)路由器將尺度費(fèi)用置成無窮大的同時(shí),繼續(xù)公布該信宿。以這種方法公布路由,相鄰路由表就能迅速從尋路表中刪除該路由。
RIP協(xié)議也有它的缺陷:
網(wǎng)絡(luò)直徑較小
RIP將尺度(即費(fèi)用)無窮大定義為16,這一定義對(duì)使用RIP的所有網(wǎng)絡(luò)的規(guī)模作出了嚴(yán)格的限制。因尺度必須是整數(shù),故網(wǎng)絡(luò)的費(fèi)用至少為1。在基于RIP的Internet中,所有的系統(tǒng)距其他任何系統(tǒng)不能超過15個(gè)網(wǎng)絡(luò)。這一大小被稱作網(wǎng)絡(luò)直徑。
這一限制對(duì)管理員分配費(fèi)用的靈活性是一個(gè)很大的制約。管理員分配費(fèi)用最直接的方法是對(duì)各個(gè)網(wǎng)絡(luò)的費(fèi)用都設(shè)成1。但是,在這種分配方式下,RIP就會(huì)選擇費(fèi)用最小的路徑,而不管該路徑上的信道容量的大小。因此會(huì)舍棄"較長(zhǎng)"的高速路徑而通過低效的"較短"路徑傳送數(shù)據(jù)。為了避免這種情況的發(fā)生,管理員可將大于1的費(fèi)用分配給低效鏈路,人為地提高其費(fèi)用。其結(jié)果是最大網(wǎng)絡(luò)直徑隨之變小,進(jìn)一步限制了RIP的網(wǎng)絡(luò)規(guī)模。
對(duì)網(wǎng)絡(luò)變化的反應(yīng)較慢
RIP網(wǎng)絡(luò)中的路由器從路由失效到將其識(shí)別出來要等待180秒,而在OSPF中典型值是1~2秒。
不支持組播
在RIP中沒有公布組成員信息的方法,因此不支持組播尋路。為實(shí)現(xiàn)組播尋路需和其他協(xié)議并用。
gated的配置
gated支持RIP、OSPF、IS-IS等路由協(xié)議。我們這里著重介紹RIP協(xié)議的配置方法,其他協(xié)議的配置大家可以針對(duì)協(xié)議本身然后參考相關(guān)幫助文檔做類似的配置就可以。
首先修改/etc/sysconfig/network文件,使得FORWARD_IPV4=yes。然后在/etc/目錄下創(chuàng)建文件名為gated.conf的文件,里面就是需要填寫的配置信息。RIP協(xié)議的配置語法如下:
rip yes | no | on | off [ { broadcast ; nobroadcast ; nocheckzero ; preference preference; defaultmetric metric ; query authentication [none | [[simple|md5] password]] ; interface interface_list [noripin] | [ripin] [noripout] | [ripout] [metricin metric] [metricout metric] [version 1]|[version 2 [multicast|broadcast]] [[secondary] authentication [none | [[simple|md5] password]] ; trustedgateways gateway_list ; sourcegateways gateway_list ; traceoptions trace_options ; } ] ;
上面的配置語法用來啟動(dòng)或者禁止RIP協(xié)議的運(yùn)行,并對(duì)RIP協(xié)議某些參數(shù)進(jìn)行設(shè)置。各參數(shù)的含義如下:
broadcast 指明RIP分組將被廣播。當(dāng)廣播靜態(tài)路由或者由其他協(xié)議產(chǎn)生的RIP路由項(xiàng)時(shí),這很有用。 nobroadcast 指明當(dāng)然的接口上不廣播RIP分組。 nocheckzero 指明RIP不處理RIP分組中的保留域。通常RIP將拒絕保留域?yàn)榉橇愕姆纸M。 preference preference 設(shè)置RIP路由的preference,其缺省值是100,這個(gè)值可以被其他的給定的策略重寫。 metric metric 定義當(dāng)使用RIP廣告由其他路由協(xié)議獲得的路由信息時(shí)使用的尺度(metric)。其缺省值為16(不可達(dá))。 query authentication [none | [[simple|md5] password]] ; 設(shè)定身份認(rèn)證密碼。缺省是無需認(rèn)證。 interface interface_list 針對(duì)某特定的接口進(jìn)行參數(shù)設(shè)定。 可以有的參數(shù)如下: noripin 指定該接口商接收的RIP分組無效。 ripin 這是缺省的參數(shù)。與noripin相反。 noripout 被指定的接口上將無RIP分組發(fā)出。缺省值是在所有的廣播和非廣播的接口商發(fā)送送RIP分組。 ripout 這是缺省值。與noripout的含義相反。 metricin metric 指定在新添加的路由表項(xiàng)加入內(nèi)核路由表以前增加的尺度(metric)。缺省值是1。 metricout metric 指定通過特定的接口發(fā)出的RIP前,對(duì)尺度的增加值。缺省值是0。 version 1 指定發(fā)送第一個(gè)版本的RIP協(xié)議的分組。缺省值是這個(gè)。 version 2 在指定的接口商發(fā)送第二個(gè)版本的RIP協(xié)議分組。如果IP組播可以使用,則缺省發(fā)送完全第二版本的分組,如果不支持組播,則使用與第一版本兼容的第二版本的RIP分組。 multicast 指明在特定接口上的第二版本的RIP分組使用組播發(fā)送。 broadcast 指明在特定的接口上使用廣播來發(fā)送與第一版本兼容的第二版本的RIP分組,即使該接口支持組播。 [secondary] authentication [none | [simple|md5] password] 定義身份認(rèn)證的方式。只對(duì)第二版本的RIP協(xié)議有用。缺省是無身份認(rèn)證。 trustedgateways gateway_list 定義RIP接收RIP更新分組的網(wǎng)關(guān)。gateway_list 是一個(gè)簡(jiǎn)單的主機(jī)名或者IP地址的列表。缺省情況下,在共享網(wǎng)絡(luò)上的所有的路由器都被認(rèn)為支持提供RIP更新信息。 sourcegateways gateway_list 定義RIP直接發(fā)送分組的路由器列表,而不通過組播或者廣播。 traceoptions trace_options 設(shè)置RIP跟蹤選項(xiàng)。詳細(xì)設(shè)置略。
下面是些配置示例: 配置1: # # # This configuration runs RIP in quiet mode, it only listens to # packets, no matter how many interfaces are configured. #
rip yes { nobroadcast ; } ;
配置2: # This configuration emulates routed. It runs RIP and only sends # updates if there are more than one interfaces up and IP forwarding is # enabled in the kernel. # # NOTE that RIP *will not* run if UDP checksums are disabled in # the kernel. #
rip yes ;
zebra介紹
這是日本人寫的以GNU版權(quán)方式發(fā)布的軟件,開始于1996年,主要的功能是實(shí)現(xiàn)了RIPv1,RIPv2,RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+路由協(xié)議,目前是0.87版,目前支持Linux和FreeBSD,將來會(huì)支持Solaris 7和GNU Hurd。
其中RIPv1, RIPv2, OSPFv2是用于IPv4的自治域系統(tǒng)內(nèi)部網(wǎng)絡(luò)路由協(xié)議,最好的是OSPF,他支持VLSM(變長(zhǎng)子網(wǎng)掩碼)、收斂快,能根據(jù)鏈路的負(fù)載等動(dòng)態(tài)調(diào)整路由,是目前最好的所有廠商都支持的內(nèi)部路由協(xié)議。跟他差不多(也許還要好)的是cisco專有的EIGRP.
BGP-4是用于自治域系統(tǒng)之間的外部網(wǎng)絡(luò)路由協(xié)議,也是目前Internet主干上目前使用的協(xié)議,非常的靈活。在國外用的非常普遍,如果一個(gè)網(wǎng)絡(luò)有兩個(gè)以上出口(連接兩個(gè)ISP)極大的可能會(huì)用他。但是在國內(nèi)好象很少使用,這也跟國內(nèi)的網(wǎng)絡(luò)比較封閉有關(guān)。假如我們跟CSTNET和CETNET使用BGP-4的話,只要這兩個(gè)出口一個(gè)是通的,我們對(duì)外的連接不會(huì)中斷超過1分鐘。
RIPng OSPFv3, BGP-4+主要擴(kuò)展了對(duì)ipv6的支持。
這個(gè)軟件配置的很多方面跟cisco的IOS配置幾乎完全相同,我們完全可以拿一臺(tái)PC機(jī)來完成一些必須用昂貴的CISCO路由器才能完成的比較復(fù)雜的路由協(xié)議處理控制功能。
GNU Zebra可以到www.zebra.org去找。 |
|
|