中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

如何用linux做路由器

1970-01-01    來源:

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

本篇文章介紹了如何用linux做路由器,下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下。

Linux 作為一種新近崛起的操作系統(tǒng),由于其性能穩(wěn)定,源碼開放及價(jià)格方面的優(yōu)勢而逐漸被廣大用戶所接受,F(xiàn)在Linux的主要用武之地在于服務(wù)器領(lǐng)域,但是,經(jīng)過適當(dāng)?shù)呐渲弥螅可以擔(dān)當(dāng)互聯(lián)網(wǎng)的物理基石--路由器這一重要角色。
路由器是通信子網(wǎng)中的通信節(jié)點(diǎn),每個(gè)路由器都計(jì)算并維護(hù)一張路由表,并據(jù)此指導(dǎo)數(shù)據(jù)報(bào)前往最佳路徑中的下一站,這便是所謂的路由。這樣,經(jīng)過互聯(lián)網(wǎng)上所有路由器的通力合作,數(shù)據(jù)報(bào)就能夠沿著一條"最佳"路徑到達(dá)目的地。在 GNU 軟件 Zebra 的協(xié)助下,我們可以將 Linux 機(jī)器打造成一臺(tái)功能完備的路由器,它能夠同時(shí)支持 RIPv1、 RIPv2、RIPng、OSPFv2、OSPFv3、BGP - 4 和 BGP - 4+ 等諸多 TCP/IP 協(xié)議。現(xiàn)在我們首先了解一下 OSPF 和 BGP 協(xié)議的運(yùn)行模式和基本原理,然后介紹 Zebra 的安裝配置方法,讓你的 Linux 機(jī)器變成支持 OSPF 與 BGP 的路由器。
BGP/OSPF 概述
如今,許多公司都建有多個(gè)網(wǎng)絡(luò),如果這些網(wǎng)絡(luò)的類型不盡相同,則需要用路由器進(jìn)行互聯(lián)。路由器是與兩個(gè)或兩個(gè)以上的網(wǎng)絡(luò)連接的計(jì)算機(jī),它根據(jù)路由協(xié)議生成并維護(hù)一個(gè)路由表,并按照該路由表中的信息轉(zhuǎn)發(fā)包。這些路由器對(duì)公司內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)了如指掌,知道將分組送到目的地的全部細(xì)節(jié),但對(duì)于其他公司的網(wǎng)絡(luò)結(jié)構(gòu)并不了解。像這樣"在同一機(jī)構(gòu)下管理的一系列路由器和網(wǎng)絡(luò)"被稱為自治系統(tǒng)(AS)。由不同機(jī)構(gòu)掌管的自治系統(tǒng),可以采用不同的路由選擇算法;但同一自治系統(tǒng)內(nèi)的所有路由器都使用同一路由協(xié)議,以便于自治系統(tǒng)內(nèi)部各個(gè)路由器互換路由信息來維持相互的連通性。每一個(gè)自治系統(tǒng)都有一個(gè)16位的"自治系統(tǒng) (AS)編號(hào)"作為標(biāo)志,就像 IP 地址一樣,它是由專門機(jī)構(gòu)來分配的。
自治系統(tǒng)內(nèi)的路由器稱為"內(nèi)部網(wǎng)關(guān)",所用的協(xié)議稱為"內(nèi)部網(wǎng)關(guān)協(xié)議"。內(nèi)部網(wǎng)關(guān)協(xié)議大體上分為兩類,一類是距離向量協(xié)議,如 RIP,EIGRP 協(xié)議;另一類是鏈路狀態(tài)協(xié)議如 OSPF 協(xié)議。鏈路狀態(tài)路由協(xié)議與距離向量協(xié)議的不同之處在于,采用鏈路狀態(tài)路由協(xié)議的路由器不是交換到達(dá)目的地的距離,而是維護(hù)一張網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。然后用數(shù)據(jù)庫表示該圖,其中的表項(xiàng)對(duì)應(yīng)網(wǎng)絡(luò)的一條鏈路。路由器根據(jù)數(shù)據(jù)庫的信息計(jì)算出"最佳路由",由此指導(dǎo)包的轉(zhuǎn)發(fā)。當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),只需將相應(yīng)紀(jì)錄而非整個(gè)數(shù)據(jù)庫通知其他節(jié)點(diǎn)。各路由器做出相應(yīng)修改并重新計(jì)算路由后,就可以繼續(xù)正常工作。
因?yàn)?開放式最短路徑優(yōu)先協(xié)議"的文檔必須公開發(fā)表,所以它是"開放式的"(Open);又因?yàn)樗捎?最短路徑優(yōu)先"(SPF)算法來計(jì)算一個(gè)節(jié)點(diǎn)到所有其它節(jié)點(diǎn)間的最短路徑,故名為 OSPF。OSPF 具有支持多重度量制式和多重路徑等諸多優(yōu)點(diǎn),因此成為因特網(wǎng)上推薦使用的內(nèi)部網(wǎng)關(guān)協(xié)議,RIP 卻由于自身的局限性而被打入冷宮,F(xiàn)在,在性能上唯一能夠與 OSPF 相匹敵的內(nèi)部網(wǎng)關(guān)協(xié)議便是 EIGRP--Cisco 的一個(gè)專有協(xié)議,但 OSPF 的"開放"本身就是一個(gè)響亮的招牌,因?yàn)檎l也不想受制于某家供應(yīng)商。
前面提到,自治系統(tǒng)內(nèi)的路由器不必知道其他自治系統(tǒng)的內(nèi)部結(jié)構(gòu)細(xì)節(jié),從而有效地節(jié)約了路由器的內(nèi)存和 CPU 時(shí)間,并提高了網(wǎng)絡(luò)帶寬的利用率。但是,如果想與其他公司(自治系統(tǒng))通信時(shí)該怎么辦呢?很簡單,我們可以在自治系統(tǒng)內(nèi)指定一個(gè)與其他自治系統(tǒng)相連的路由器為"外部網(wǎng)關(guān)",通過它進(jìn)入其他自治系統(tǒng)。該路由器使用的協(xié)議叫做"外部網(wǎng)關(guān)協(xié)議",如邊界網(wǎng)關(guān)協(xié)議(BGP)。相鄰的兩個(gè)網(wǎng)關(guān)必須首先互換"鄰機(jī)探測 "報(bào)文,協(xié)商是否愿意成為"鄰機(jī)"。成為鄰機(jī)則意味著兩個(gè)自治系統(tǒng)同意中轉(zhuǎn)雙方的通信流。同意后,兩個(gè)鄰機(jī)互換"鄰機(jī)可達(dá)性報(bào)文",來監(jiān)督他們之間的鏈路的工作情況。接下來便是最重要的工作,用"網(wǎng)絡(luò)可達(dá)性報(bào)文"來交換通過各鄰機(jī)所能到達(dá)的網(wǎng)絡(luò)的信息,從而實(shí)現(xiàn)自治系統(tǒng)之間的連通性。在外部網(wǎng)關(guān)的眼里只由外部網(wǎng)關(guān)和連接他們的鏈路,如此以來,自治系統(tǒng)內(nèi)的通信由內(nèi)部網(wǎng)關(guān)處理,自治系統(tǒng)之間的通信交由外部網(wǎng)關(guān)處理--一個(gè)分級(jí)路由的景象已經(jīng)展現(xiàn)在我們面前,實(shí)際上,因特網(wǎng)正是由大量自治系統(tǒng)組成的。
建立一個(gè)高級(jí)路由器
許多人對(duì)路由器感到比較陌生,事實(shí)上作為一個(gè)防火墻使用的 Linux 系統(tǒng)已經(jīng)是一個(gè)路由器了,只不過還有點(diǎn)"簡陋"而已。然而,我們的目標(biāo)是用 Linux 打造一個(gè)"高級(jí)"路由器,它必須能夠利用動(dòng)態(tài)路由協(xié)議(上文提到的協(xié)議皆為動(dòng)態(tài)路由協(xié)議)工作。這些協(xié)議能夠使路由器互換相關(guān)信息,從而共享穿越網(wǎng)絡(luò)時(shí)所用的那些路徑--路由。這一點(diǎn)對(duì)于大型網(wǎng)絡(luò)(比如 Internet)而言是"異常"重要的,因?yàn)榇藭r(shí)再用靜態(tài)路由(也就是人工計(jì)算設(shè)置路由)是根本不現(xiàn)實(shí)的。
舉例來說,即使在比較理想--即不考慮路由的變化的情況下,一個(gè)邊界網(wǎng)關(guān)協(xié)議(BGP)路由表也至少包含 100,000 條以上的表項(xiàng)。這時(shí),手工建立這樣的靜態(tài)路由是難以忍受的。很明顯,即使我們的網(wǎng)絡(luò)小于 Internet--比如一個(gè)大型公司網(wǎng)絡(luò),我們還是更加喜歡動(dòng)態(tài)路由協(xié)議。
外部網(wǎng)關(guān)協(xié)議 BGP 通常作為 Internet 的骨干使用,而其它的協(xié)議(如 OSPF)則適于小型的互連網(wǎng)絡(luò)。開放式最短路徑優(yōu)先(OSPF)協(xié)議是一個(gè)應(yīng)用最廣的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)。Zebra 是一個(gè)開放源代碼程序包,通過它你可以在 Linux 上運(yùn)行 BGP 與 / 或 OSPF。
安裝 Zebra
你既可以從 Zebra.org 網(wǎng)站下載 Zebra 的最新源程序,也能從 RedHat 和 Debian 中獲得它,但不一定是最新版的。從源代碼中進(jìn)行軟件安裝,你就會(huì)發(fā)現(xiàn)使用的是一些普通的安裝過程。簡介如下:
./configuremakemake install配置腳本會(huì)搜索系統(tǒng)上已經(jīng)安裝的 IP 棧并且自動(dòng)地設(shè)置成支持他們。當(dāng)前,IP 棧很可能僅僅是指 IPv4,但是 IPv6 用戶也不用擔(dān)心,因?yàn)?Zebra 也會(huì)發(fā)現(xiàn)并且支持它。
程序安裝之后,還可能必須在 /etc/services 中增加一些命令行。Zebra 的守護(hù)程序在他們自己的虛擬終端連接(VTY)下運(yùn)行,所以你的系統(tǒng)必須知道這些虛擬終端連接。這里是你應(yīng)該增加的一些連接∶
zebrasrv 2600/tcp # zebra servicezebra 2601/tcp # zebra vtyripd 2602/tcp # RIPd vtyripngd 2603/tcp # RIPngd vtyospfd 2604/tcp # OSPFd vtybgpd 2605/tcp # BGPd vtyospf6d 2606/tcp # OSPF6d vty配置 Zebra
如果你已經(jīng)熟悉 Cisco IOS,那你就能在短時(shí)間內(nèi)掌握 Zebra,因?yàn)槟銜?huì)發(fā)現(xiàn)兩者極為相似。Zebra 的每個(gè)守護(hù)程序使用一個(gè)單獨(dú)的 VTY,這些 VTY 可以通過一個(gè)遠(yuǎn)程登錄會(huì)話進(jìn)行動(dòng)態(tài)配置。所以,如果你需要設(shè)置 OSPF,簡單地遠(yuǎn)程登錄到該 Linux 上 2604 端口;為了修改內(nèi)核的路由表或設(shè)置路由協(xié)議間的再分發(fā),你可以遠(yuǎn)程登錄到端口 2601,該 Zebra 守護(hù)程序充當(dāng)內(nèi)核管理器,管理其他的守護(hù)程序和系統(tǒng)本身之間的通信。
現(xiàn)在介紹如何在一個(gè)服務(wù)器上創(chuàng)建和運(yùn)行 OSPF 和 BGP。Zebra 的守護(hù)程序運(yùn)用純文本文件儲(chǔ)存它們的配置。對(duì)于 OSPF/BGP 路由器,將用到三個(gè)文件∶zebra.conf、ospfd.conf 和 bgpd.conf。舉例來說,zebra.conf 文件可能會(huì)是這樣:
! Zebra configuration saved from vty! 2002/02/28 01:46:12!hostname LinuxRouter /*主機(jī)名為 LinuxRouter*/password zebra /*口令為 zebra*/enable password z3bRa /*進(jìn)入特權(quán)模式時(shí)的口令為 z3bRa */log file /var/log/zebra/zebra.log /*日志文件的地址*/!interface eth0 /*以太接口 eth0*/ description Interface to External Network/*對(duì)接口的描述*/ ip address 10.0.0.1/24 /*該接口的 IP 地址*/!interface eth1/*以太接口 eth0*/ description Interface to Internal Network/*對(duì)接口的描述*/ ip address 192.168.66.1/24/*該接口的 IP 地址*/ 這里的感嘆號(hào)充當(dāng)注解標(biāo)識(shí)或分隔符。盡管存在大量不同的網(wǎng)絡(luò)接口類型(Ethernet、ISDN 等等),但只要是 Linux 內(nèi)核能夠辨認(rèn)的網(wǎng)絡(luò)接口類型,Zebra 都可以使用。
子網(wǎng)掩碼都帶有網(wǎng)絡(luò)位的位數(shù)(例如/24),默認(rèn)掩碼則不然(比如 255.255.255.0)。注意存在兩個(gè)口令,一個(gè)用于用戶模式而另一個(gè)用于特權(quán)模式。這不僅有利于向非管理員提供訪問權(quán)限,而且對(duì)于創(chuàng)建路由服務(wù)器或者路由探測鏡也是非常重要的。所有 BGP 管理員都知道,這些探測鏡是調(diào)試路由問題的關(guān)鍵,因?yàn)樗麄兡軌蚴鼓憔拖髲囊粋(gè)外部 AS( AS代表自治系統(tǒng))一樣查看路由。 BGP 路由需要用到 AS 編號(hào),AS 編號(hào)是一些由 ARIN (美國互聯(lián)網(wǎng)絡(luò)號(hào)碼注冊機(jī)構(gòu))控制的注冊號(hào)碼。
下一步將啟動(dòng)一些必要的程序。用以下命令完成∶
/usr/sbin/zebra -dk/usr/sbin/ospfd -d/usr/sbin/bgpd -d第一個(gè)命令,啟動(dòng) zebra,該守護(hù)程序?qū)嶋H上用來更新內(nèi)核的路由表。-dk 告訴該程序作為一個(gè)守護(hù)程序運(yùn)行(d),它的大部分時(shí)間在后臺(tái)運(yùn)行。k 是另外的一個(gè)選項(xiàng),告訴 Zebra 維護(hù)所有已配置的路由。它用來保證在你測試 Zebra 的時(shí)候不會(huì)意外地刪除路由表。一般情況下,設(shè)置路由和接口,需要將 ifconfig 和 route 這兩個(gè)命令配合使用。而 Zebra 完全可以替代這種路由管理方式,使用起來更為簡潔。

設(shè)置OSPF
至此,基本的服務(wù)已經(jīng)具備,現(xiàn)在讓我們 Telnet 到本地機(jī)器的 2604 端口,開始配置 OSPF。為進(jìn)入特權(quán)模式,鍵入 enable (正如在Cisco IOS 中一樣),然后鍵入特權(quán)模式口令。接下來,用 configuration terminal 命令切換到配置模式。值得一提的是 Zebra 也能接受命令縮寫形式,這與 Cisco 極為相似,如 configuration terminal 可以簡寫為 config t,這大大縮短了輸入時(shí)間,使用起來更為方便。另外,如果輸入 list 和 ?,它將顯示一個(gè)當(dāng)前可用命令的清單,并附有一些簡略解釋。除此之外,還可以鍵入 tab 用于命令的自動(dòng)完成。這就是說,如果你想鍵入命令 clock,只要鍵入前兩個(gè)字母 cl 然后按 tab 鍵,機(jī)器就會(huì)自動(dòng)"補(bǔ)全"這條命令--前提是你鍵入的字符足以唯一地確定這條命令。這是一個(gè)很好的功能,尤其是當(dāng)你習(xí)慣于這種用法時(shí)。
接下來,我們還需要告訴守護(hù)程序?qū)⑼ㄟ^ OSPF 廣播哪些網(wǎng)絡(luò)以及相關(guān)的域(area)。OSPF 的可伸縮性允許它支持多個(gè)域。鍵入 router ospf 開始配置 OSPF,然后鍵入 network 192.168.66.0/24 area 0。這告訴路由器,我們將使用 OSPF 廣播一個(gè)子網(wǎng)掩碼為 255.255.255.0 的 192.168.66.0 網(wǎng)絡(luò)。
在本例中,我們讓 eth0 接口變成一個(gè)被動(dòng)(passive)接口,以便使它不能發(fā)送路由更新。這對(duì)于實(shí)驗(yàn)是非常重要的,因?yàn)樵谀莻(gè)方向上的其他的路由器可能監(jiān)聽到發(fā)送的路由更新,將接口變成一個(gè)被動(dòng)(passive)接口,從而有效的避免擾亂網(wǎng)絡(luò)的正常運(yùn)行。為此,鍵入命令 passive - interface eth0。如果打算將此路由器作為工作路由器使用時(shí),就沒有這個(gè)必要了。一旦你完成修改,用 end 命令從配置模式中退出,然后用 write file 命令保存。這里是一個(gè)快照:
labrat:~# telnet 0 2604 /*Telnet 到本地機(jī)器的 2604 端口*/Trying 0.0.0.0...Connected to 0.Escape character is '^]'. /*用 '^]'退出該會(huì)話*/ Hello, this is zebra (version 0.84b)Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password: /*在此鍵入口令,如 zebra*/ospfd> enable/*進(jìn)入特權(quán)模式*/Password: /*輸入特權(quán)模式口令,如 z3bRa*/ospfd# configure terminal /*從終端配置路由器*/ospfd(config)# router ospf /*配置 OSPF*/ospfd(config-router)# network 192.168.66.0/24 area 0 /*通過 OSPF 廣播網(wǎng)絡(luò) network 192.168.66.0,/24 指出子網(wǎng)掩碼為 24 位,area 0 指出該網(wǎng)絡(luò)所在的域*/ospfd(config-router)# passive-interface eth0 /*將 eth0 接口設(shè)置成一個(gè)被動(dòng)(passive)接口*/ospfd(config-router)# end /*退出配置模式*/ospfd# write file /*保存修改*/Configuration saved to /etc/zebra/ospfd.conf請(qǐng)記住,為了讓 OSPF 或 BGP 在某接口上工作,那么該接口必須處于"運(yùn)行"狀態(tài)。為手工運(yùn)行一個(gè)接口,登錄到端口 2601 并且在該接口上執(zhí)行 no shut 命令。
建立 BGP
BGP 與 OSPF 的配置大致相同。開始,打開一個(gè)遠(yuǎn)程登錄會(huì)話到端口 2605。之后執(zhí)行 configure terminal,輸入 router bgp 進(jìn)入 BGP 配置模式。如前所述,BGP 使用 AS 編號(hào)建立鄰機(jī)關(guān)系并路由通信流。在我們的試驗(yàn)中,我們將使用一個(gè)范圍在 64512 到 65534 之間的私有 AS 號(hào)碼(換句話說,該號(hào)碼旨在機(jī)構(gòu)內(nèi)部有效,而在因特網(wǎng)上無效)。用 network 命令設(shè)置由 BGP 廣播的那些網(wǎng)絡(luò),如 network 192.168.66.0/24.。與 OSPF 不同的是,BGP 鄰機(jī)必須靜態(tài)指定。如同下述∶neighbor remote-as 。這里是一個(gè)范例:
labrat:~# telnet 0 2605Trying 0.0.0.0...Connected to 0.Escape character is '^]'. Hello, this is zebra (version 0.84b)Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password:bgpd> enablePassword:bgpd# configure terminalbgpd(config)# router bgp 65530 /*配置 BGP,65530 是自治系統(tǒng)編號(hào)。也就是將該系統(tǒng)配置成自治系統(tǒng) 65530 上的外部網(wǎng)關(guān)*/bgpd(config-router)# network 192.168.66.0/24 /*由 BGP 廣播的網(wǎng)絡(luò)*/bgpd(config-router)# neighbor 10.0.0.5 remote-as 65531 /*靜態(tài)指定自治系統(tǒng) 65531 上 IP 地址為 10.0.0.5 的路由器為本機(jī)的鄰機(jī)*/bgpd(config-router)# endbgpd# write fileConfiguration saved to /etc/zebra/bgpd.conf對(duì)于 OSPF 和 BGP,有大量選項(xiàng)可用,限于篇幅不能在此一一介紹。對(duì)于每個(gè)協(xié)議,我建議在實(shí)際使用之前,不妨先研究一番。為此,可以參考 GNU Zebra 文檔,它會(huì)給你提供許多幫助。
結(jié)束語
在網(wǎng)絡(luò)中,路由通信流的方法有若干種。就路由器而論,雖然有用各種硬件可用,但是費(fèi)用較高--人們自然就會(huì)想到運(yùn)行一個(gè)用 Linux 系統(tǒng)構(gòu)筑的功能豐富的路由器作為代替。Zebra 路由守護(hù)程序已經(jīng)使這一切變?yōu)楝F(xiàn)實(shí)。因?yàn)橹С?IPv4、IPv6 和其它各式各樣的協(xié)議,所以 Zebra 能夠滿足我們所有的路由需求。它還有一個(gè)好處就是,因?yàn)?Cisco IOS 和 Zabra 極為相似,如果你以前在 Cisco IOS 環(huán)境中工作,可以輕松的過渡到 Zebra 系統(tǒng);同時(shí),使用 Zebra 也能讓你積累起豐富的類似于使用 Cisco IOS 路由器的經(jīng)驗(yàn)和知識(shí)。
?

以上就是如何用linux做路由器的介紹,希望小編整理的相關(guān)知識(shí)和資料都對(duì)你們有所幫助,更多內(nèi)容請(qǐng)繼續(xù)關(guān)注愛站技術(shù)頻道網(wǎng)站!

標(biāo)簽: linux 代碼 防火墻 服務(wù)器 互聯(lián)網(wǎng) 互聯(lián)網(wǎng)絡(luò) 腳本 美國 權(quán)限 數(shù)據(jù)庫 搜索 通信 網(wǎng)絡(luò) 網(wǎng)站 問題 選擇 用戶

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Linux之網(wǎng)路抓檔工具wget的使用方法

下一篇:Linux下怎么配置DNS