2021-03-13 分類: 網(wǎng)站建設(shè)
分享多出口冗余網(wǎng)絡(luò)設(shè)計方案
一、設(shè)計目標
設(shè)計一個雙出口網(wǎng)絡(luò),使用BGP做到最優(yōu)化路由選擇,并且當某一個出口故障時,設(shè)備能自動將流量切換到剩下的那個出口;內(nèi)網(wǎng)同樣實現(xiàn)網(wǎng)絡(luò)冗余和設(shè)備冗余;實現(xiàn)網(wǎng)關(guān)冗余。
二、設(shè)計拓撲
三、設(shè)計說明
根據(jù)前面的設(shè)計目標,我給出了如上圖所示的拓撲方案。這個方案更多的只是我對已學過知識的梳理,并未在實際工作中應用過。就實際情況而言,它可能更多的也只適用于理論分析。
在這個方案中,我假設(shè)了有兩個ISP提供商ISP1和ISP2,使用設(shè)備R5模擬ISP1,使用設(shè)備R6模擬ISP2。R5和R6建立EBGP鄰接關(guān)系來模擬Internet網(wǎng)絡(luò)環(huán)境(實際的Internet就是不同的BGP AS連接在一起的)。
除了R5和R6外的其它所有設(shè)備都屬于企業(yè)內(nèi)網(wǎng)的設(shè)備。
R3和R4為放置于出口線路中的防火墻,在本案例中,它們只用于提供NAT功能。在本案例中,我使用了172.16.6.0/24和172.16.7.0/24作為NAT地址池,而并沒有使用公網(wǎng)地址段來作為NAT地址池,這里請不要覺得奇怪。我這里只是一個理論上的案例而已,使用公網(wǎng)或私網(wǎng)地址段都是一樣的。好吧,其實是我懶得改了。
R1和R2為網(wǎng)絡(luò)核心層設(shè)備,它們也運行BGP協(xié)議,分別與R5和R6建立EBGP鄰接關(guān)系。R1和R2之間則為IBGP鄰接關(guān)系。R1和R2分別接收來自R5和R6的Internet路由,然后R1和R2再彼此之間交互接收的路由,以實現(xiàn)最優(yōu)路由選擇。同時,R1和R2也會分別向R5和R6通告它們各自所在線路的NAT地址池。
R7和R8為網(wǎng)絡(luò)匯聚層設(shè)備。R1和R2的所有物理接口,R7和R8的上行接口位于OSPFAREA 0中。R7和R8的下行接口位于OSPF AREA 1中。
設(shè)備IOU1為接入層設(shè)備。在我這個案例中,我只使用了一臺接入層交換機,如果還有其它的接入層交換機,也可如圖所示,將它們分別與R7和R8相連,再劃入到不同的OSPFAREA中。在R7和R8的下行接口上,我使用了VRRP,以實現(xiàn)網(wǎng)關(guān)的冗余。
這個案例中,各設(shè)備接口的IP地址分配方面,對于橫向的鏈路,左邊的接口使用xxx.xxx.xxx.1,右邊的接口則使用xxx.xxx.xxx.2;對于縱向的鏈路,上邊的接口使用xxx.xxx.xxx.1,下邊的接口則使用xxx.xxx.xxx.2。如R5和R6之間的鏈路,R5一端的接口使用的IP地址為172.16.3.1,R6一端的接口則使用IP地址172.16.3.2,其它鏈路以此類推。
四、設(shè)備配置
1.配置R5和R6,以使用它們來模擬Internet和ISP的網(wǎng)絡(luò)。
//給R5配置BGP,使其使用環(huán)回口與R6建立EBGP鄰接關(guān)系。
R5(config)#routerbgp 64513
R5(config-router)#neighbor172.16.2.1 remote-as 64514
R5(config-router)#neighbor172.16.2.1 update-source loopback0
R5(config-router)#neighbor172.16.2.1 ebgp-multihop 2
R5(config)#iproute 172.16.2.1 255.255.255.255 172.16.3.2
//使用靜態(tài)路由將地址池172.16.6.0/24分配給企業(yè)網(wǎng)絡(luò)。R5廣播其環(huán)回口地址172.16.1.1/32,以使其在模擬的Internet網(wǎng)絡(luò)中可被訪問。
R5(config)#iproute 172.16.6.0 255.255.255.0 172.16.4.2
R5(config)#routerbgp 64513
R5(config-router)#address-familyipv4
R5(config-router-af)#network172.16.1.1 mask 255.255.255.255
//給R6配置BGP,使其使用環(huán)回口與R5建立EBGP鄰接關(guān)系。
R6(config)#routerbgp 64514
R6(config-router)#neighbor172.16.1.1 remote-as 64513
R6(config-router)#neighbor172.16.1.1 update-source loopback0
R6(config-router)#neighbor172.16.1.1 ebgp-multihop 2
R6(config)#iproute 172.16.1.1 255.255.255.255 172.16.3.1
//使用靜態(tài)路由將地址池172.16.7.0/24分配給企業(yè)網(wǎng)絡(luò)。R6廣播其環(huán)回口地址172.16.2.1/32,以使其在模擬的Internet網(wǎng)絡(luò)中可被訪問。
R6(config)#iproute 172.16.7.0 255.255.255.0 172.16.5.2
R6(config)#routerbgp 64514
R6(config-router)#address-familyipv4
R6(config-router-af)#network172.16.2.1 mask 255.255.255.255
2.配置R5、R3和R1,使R5和R1的環(huán)回口之間可以建立EBGP鄰接關(guān)系。
//配置R5,使其使用環(huán)回口與R1建立EBGP鄰接關(guān)系。同時,R5向R1下發(fā)默認路由。
R5(config)#routerbgp 64513
R5(config-router)#neighbor192.168.1.1 remote-as 64512
R5(config-router)#neighbor192.168.1.1 update-source loopback0
R5(config-router)#neighbor192.168.1.1 ebgp-multihop 3
R5(config-router)#address-familyipv4
R5(config-router-af)#neighbor192.168.1.1 default-originate
R5(config)#iproute 192.168.1.1 255.255.255.255 172.16.4.2
//配置R3,使其有去往R1環(huán)回口192.168.1.1的路由。R3使用默認路由出網(wǎng)。將地址池172.16.6.0/24指向null0接口以防止路由環(huán)路。
R3(config)#iproute 192.168.1.1 255.255.255.255 192.168.2.2
R3(config)#iproute 0.0.0.0 0.0.0.0 172.16.4.1
R3(config)#iproute 172.16.6.0 255.255.255.0 null0
//配置R1,使其使用環(huán)回口與R5建立EBGP鄰接關(guān)系,同時廣播地址池172.16.6.0/24。
R1(config)#routerbgp 64512
R1(config-router)#neighbor172.16.1.1 remote-as 64513
R1(config-router)#neighbor172.16.1.1 update-source loopback0
R1(config-router)#neighbor172.16.1.1 ebgp-multihop 3
R1(config-router)#address-familyipv4
R1(config-router-af)#network172.16.6.0 mask 255.255.255.0
R1(config)#iproute 172.16.1.1 255.255.255.255 192.168.2.1
R1(config)#iproute 172.16.6.0 255.255.255.0 null0
//對R1去往R5的路由更新進行過濾,以只允許廣播地址池172.16.6.0/24。
R1(config)#ipprefix-list prefixlist1 permit 172.16.6.0/24
R1(config)#routerbgp 64512
R1(config-router)#address-familyipv4
R1(config-router-af)#neighbor172.16.1.1 prefix-list prefixlist1 out
3.配置R6、R4和R2,使R6和R2的環(huán)回口之間可以建立EBGP鄰接關(guān)系。
//配置R6,使其使用環(huán)回口與R2建立EBGP鄰接關(guān)系。同時,R6向R2下發(fā)默認路由。
R6(config)#routerbgp 64514
R6(config-router)#neighbor192.168.1.2 remote-as 64512
R6(config-router)#neighbor192.168.1.2 update-source loopback0
R6(config-router)#neighbor192.168.1.2 ebgp-multihop 3
R6(config-router)#address-familyipv4
R6(config-router-af)#neighbor192.168.1.2 default-originate
R6(config)#iproute 192.168.1.2 255.255.255.255 172.16.5.2
//配置R4,使其有去往R2環(huán)回口192.168.1.2的路由。R4使用默認路由出網(wǎng)。將地址池172.16.7.0/24指向null0接口以防止路由環(huán)路。
R4(config)#iproute 192.168.1.2 255.255.255.255 192.168.3.2
R4(config)#iproute 0.0.0.0 0.0.0.0 172.16.5.1
R4(config)#iproute 172.16.7.0 255.255.255.0 null0
//配置R2,使其使用環(huán)回口與R6建立EBGP鄰接關(guān)系,同時廣播地址池172.16.7.0/24。
R2(config)#routerbgp 64512
R2(config-router)#neighbor172.16.2.1 remote-as 64514
R2(config-router)#neighbor172.16.2.1 update-source loopback0
R2(config-router)#neighbor172.16.2.1 ebgp-multihop 3
R2(config-router)#address-familyipv4
R2(config-router-af)#network172.16.7.0 mask 255.255.255.0
R2(config)#iproute 172.16.2.1 255.255.255.255 192.168.3.1
R2(config)#iproute 172.16.7.0 255.255.255.0 null0
//對R2去往R6的路由更新進行過濾,以只允許廣播地址池172.16.7.0/24。
R2(config)#ipprefix-list prefixlist1 permit 172.16.7.0/24
R2(config)#routerbgp 64512
R2(config-router)#address-familyipv4
R2(config-router-af)#neighbor172.16.2.1 prefix-list prefixlist1 out
4.配置R1和R2以建立IBGP鄰接關(guān)系。
R1和R2使用環(huán)回口建立IBGP鄰接關(guān)系。R1和R2去往彼此環(huán)回口的路由采用靜態(tài)路由,而不使用OSPF,并且,還需要指定下一跳為自身(next-hop-self)。
R1(config)#routerbgp 64512
R1(config-router)#neighbor192.168.1.2 remote-as 64512
R1(config-router)#neighbor192.168.1.2 update-source loopback0
R1(config-router)#address-familyipv4
R1(config-router-af)#neighbor192.168.1.2 next-hop-self
R1(config)#iproute 192.168.1.2 255.255.255.255 192.168.4.2
!
R2(config)#routerbgp 64512
R2(config-router)#neighbor192.168.1.1 remote-as 64512
R2(config-router)#neighbor192.168.1.1 update-source loopback0
R2(config-router)#address-familyipv4
R2(config-router-af)#neighbor192.168.1.1 next-hop-self
R2(config)#iproute 192.168.1.1 255.255.255.255 192.168.4.1
5.配置R3和R4防火墻。
在實際生產(chǎn)網(wǎng)絡(luò)中,防火墻應該是擔當NAT和防***的功能的。但在我這個案例中,我是用路由器來模擬防火墻的(雖然圖標也是防火墻的)。所以下面的NAT配置還是按照在路由器上配置NAT的步驟來的。只是說,在實際生產(chǎn)網(wǎng)絡(luò)中,一般是使用真正的防火墻來進行NAT轉(zhuǎn)換和防***,而不是使用路由器來進行NAT(具體原因應該跟設(shè)備性能參數(shù)有關(guān),我也不是很確定~_~)。
另外,ISP分配過來的地址池應該是公網(wǎng)IP地址池,而不是應該圖中所示的172.16.6.0/24或172.16.7.0/24這兩個私網(wǎng)IP地址段,只不過我這里用了私網(wǎng)地址段來作為地址池,大家知道就好。
還應該注意的是,在下面配置設(shè)備時,我并沒有使用整個C類的地址段(如172.16.6.0/24),而是去掉了該地址段前面的兩個地址和后面的兩個地址,這是因為在實際網(wǎng)絡(luò)中,使用這些地址(如172.16.6.254)作為源地址去訪問某些服務(wù)器可能會有問題,所以最好把它們?nèi)サ簟?/p>
//需要注意,因為R1要與R5建立EBGP,所以不能對源192.168.1.1進行NAT轉(zhuǎn)換
R3(config)#ipaccess-list extended acl1
R3(config-ext-nacl)#denyip host 192.168.1.1 any
R3(config-ext-nacl)#permitip 192.168.0.0 0.0.255.255 any
R3(config)#ipnat pool natpool1 172.16.6.2 172.16.6.253 netmask 255.255.255.0
R3(config)#interfaceg2/0
R3(config-if)#ipnat inside
R3(config)#interfaceg1/0
R3(config-if)#ipnat outside
R3(config)#ipnat inside source list acl1 pool natpool1 overload
//需要注意,因為R2要與R6建立EBGP,所以不能對源192.168.1.2進行NAT轉(zhuǎn)換
R4(config)#ipaccess-list extended acl1
R4(config-ext-nacl)#denyip host 192.168.1.2 any
R4(config-ext-nacl)#permitip 192.168.0.0 0.0.255.255 any
R4(config)#ipnat pool natpool1 172.16.7.2 172.16.7.253 netmask 255.255.255.0
R4(config)#interfaceg1/0
R4(config-if)#ipnat inside
R4(config)#interfaceg2/0
R4(config-if)#ipnat outside
R4(config)#ipnat inside source list acl1 pool natpool1 overload
6.查驗路由表
上面配置完后,就可以看到R1和R2通過BGP獲取到了正確的路由,并且根據(jù)BGP選路原則,它們的所選擇的路徑也是正確的。
到這里,出口的路由就基本做好了。接下來,要解決內(nèi)網(wǎng)路由問題。
7.設(shè)置R3和R4上的回程路由
要給R3和R4添加指向內(nèi)網(wǎng)的路由(假設(shè)內(nèi)網(wǎng)使用的地址范圍為192.168.0.0/16)。
R3(config)#iproute 192.168.0.0 255.255.0.0 192.168.2.2
!
R4(config)#iproute 192.168.0.0 255.255.0.0 192.168.3.2
8.給R1、R2、R7和R8配置OSPF
//將R1的所有接口都加入到OSPF AREA 0中,但不包括環(huán)回口
R1(config)#routerospf 1
R1(config-router)#network192.168.2.2 0.0.0.0 area 0
R1(config-router)#network192.168.4.1 0.0.0.0 area 0
R1(config-router)#network192.168.5.1 0.0.0.0 area 0
R1(config-router)#network192.168.7.1 0.0.0.0 area 0
//將R2的所有接口都加入到OSPF AREA 0中,但不包括環(huán)回口
R2(config)#routerospf 2
R2(config-router)#network192.168.3.2 0.0.0.0 area 0
R2(config-router)#network192.168.4.2 0.0.0.0 area 0
R2(config-router)#network192.168.6.1 0.0.0.0 area 0
R2(config-router)#network192.168.8.1 0.0.0.0 area 0
//將R7與核心層交換機相連的接口都加入到OSPF AREA 0中,與接入層交換機相連的接口則加入到OSPF AREA 1中
R7(config)#routerospf 7
R7(config-router)#network192.168.5.2 0.0.0.0 area 0
R7(config-router)#network192.168.8.2 0.0.0.0 area 0
R7(config-router)#network192.168.9.252 0.0.0.0 area 1
R7(config-router)#passive-interfaceg3/0 //本案例中,該接口與接入層交換機相連
//將R8與核心層交換機相連的接口都加入到OSPF AREA 0中,與接入層交換機相連的接口則加入到OSPF AREA 1中
R8(config)#routerospf 8
R8(config-router)#network192.168.6.2 0.0.0.0 area 0
R8(config-router)#network192.168.7.2 0.0.0.0 area 0
R8(config-router)#network192.168.9.253 0.0.0.0 area 1
R8(config-router)#passive-interfaceg3/0 //本案例中,該接口與接入層交換機相連
9.設(shè)置R1和R2下發(fā)OSPF默認路由
對于R1和R2,都需要設(shè)置為下發(fā)OSPF默認路由。至于這兩條默認路由的初始度量值,個人覺得可以不進行修改,讓它們保持一樣。如果為了排錯時能更加簡便,也可以將它們的初始度量值修改為不一樣,同時設(shè)置metric-type為2,這樣流量路徑就會保持一致,而不會在上行路徑間負載均衡。
R1(config)#routerospf 1
R1(config-router)#default-informationoriginate metric-type 1
!
R2(config)#routerospf 2
R2(config-router)#default-informationoriginate metric-type 1
10.配置網(wǎng)關(guān)冗余協(xié)議VRRP
我將網(wǎng)關(guān)設(shè)置在匯聚層交換機上,并使用公有網(wǎng)關(guān)冗余協(xié)議VRRP。就實際配置情況來說,我將R7和R8的g3/0口都加入到VRRP Group 1,并修改R7和R8的g3/0接口的VRRP優(yōu)先級,使R7成為Master,R8為Backup。
//配置R7的g3/0接口
R7(config)#interfaceg3/0
R7(config-if)#noshutdown
R7(config-if)#ipaddress 192.168.9.252 255.255.255.0
R7(config-if)#vrrp1 ip 192.168.9.254
R7(config-if)#vrrp1 priority 102
//配置R8的g3/0接口
R8(config)#interfaceg3/0
R8(config-if)#noshutdown
R8(config-if)#ipaddress 192.168.9.253 255.255.255.0
R8(config-if)#vrrp1 ip 192.168.9.254
R8(config-if)#vrrp1 priority 101
五、補充說明
配置完上面的一堆后,這個網(wǎng)絡(luò)基本就實現(xiàn)了故障冗余自動切換的功能了。但實際使用時,還需要進一步深化配置,因為可能會存在因路由協(xié)議收斂導致的切換不及時的問題。比如,正常情況下,R8去往172.16.2.1是通過R2那個出口出去,假設(shè)此時R2出故障掛掉了,那么R8會把所有流量都發(fā)往R1,然而由于R1此時還沒有意識到R2掛了,只有等R1和R2之間的BGP會話超時后,R1才會意識到R2掛了。在這之前,R1還是會把R8發(fā)過來的流量都轉(zhuǎn)發(fā)給R2,但由于R2出故障了,因此這些流量就無法順利地被轉(zhuǎn)發(fā)到172.16.2.1。也就是說,在這段時間內(nèi),是會有丟包的。只有當BGP重新收斂后,數(shù)據(jù)包的轉(zhuǎn)發(fā)才能恢復正常。也有一些技術(shù)可以加快BGP的收斂速度,不過我沒研究過,所以暫時就這樣了。
接入層交換機部分,沒有什么必須要進行的配置。接入層交換機可以使用傻瓜交換機,也可以是可網(wǎng)管交換機。最好是可網(wǎng)管交換機,就可以部署各種接入控制特性,這樣就可以少去很多麻煩。當然,接入層交換機這里其實還是存在單點失效的問題,可能使用具有冗余引擎和冗余電源的設(shè)備可以稍微緩解這個問題,但實際上應該沒有企業(yè)這么有錢吧,也沒有這么做的必要吧。
關(guān)于DNS的設(shè)置問題。在我這個設(shè)計方案中未涉及到DNS的問題,但實際網(wǎng)絡(luò)中,DNS的設(shè)置會影響到網(wǎng)絡(luò)出口的選擇,不同出口上流量的多少,及網(wǎng)絡(luò)的體驗問題。一般來說,ISP1會給你兩個DNS地址,ISP2也會給你兩個DNS地址。我個人是認為,要么主用ISP1提供的線路,要么主用ISP2提供的線路。也就是說,要么只使用ISP1提供的DNS地址,要么只使用ISP2提供的DNS地址。如果要讓兩條出口線路上的流量更加均衡一點,可能可以在一部分區(qū)域中使用ISP1提供的DNS地址,在另一部分區(qū)域中使用ISP2提供的DNS地址,不過因為沒有實際這樣做過,所以也不確定是否的確可行。
網(wǎng)站名稱:分享多出口冗余網(wǎng)絡(luò)設(shè)計方案
標題路徑:http://jinyejixie.com/news48/105098.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、Google、企業(yè)建站、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容