分享多出口冗余網(wǎng)絡(luò)設(shè)計方案

2021-03-13    分類: 網(wǎng)站建設(shè)

分享多出口冗余網(wǎng)絡(luò)設(shè)計方案


一、設(shè)計目標(biāo)


設(shè)計一個雙出口網(wǎng)絡(luò),使用BGP做到最優(yōu)化路由選擇,并且當(dāng)某一個出口故障時,設(shè)備能自動將流量切換到剩下的那個出口;內(nèi)網(wǎng)同樣實現(xiàn)網(wǎng)絡(luò)冗余和設(shè)備冗余;實現(xiàn)網(wǎng)關(guān)冗余。


二、設(shè)計拓?fù)?/p>

冗余網(wǎng)絡(luò)


三、設(shè)計說明


根據(jù)前面的設(shè)計目標(biāo),我給出了如上圖所示的拓?fù)浞桨?。這個方案更多的只是我對已學(xué)過知識的梳理,并未在實際工作中應(yīng)用過。就實際情況而言,它可能更多的也只適用于理論分析。


在這個方案中,我假設(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ā)默認(rèn)路由。


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使用默認(rèn)路由出網(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的路由更新進(jìn)行過濾,以只允許廣播地址池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ā)默認(rèn)路由。


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使用默認(rèn)路由出網(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的路由更新進(jìn)行過濾,以只允許廣播地址池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ò)中,防火墻應(yīng)該是擔(dān)當(dāng)NAT和防***的功能的。但在我這個案例中,我是用路由器來模擬防火墻的(雖然圖標(biāo)也是防火墻的)。所以下面的NAT配置還是按照在路由器上配置NAT的步驟來的。只是說,在實際生產(chǎn)網(wǎng)絡(luò)中,一般是使用真正的防火墻來進(jìn)行NAT轉(zhuǎn)換和防***,而不是使用路由器來進(jìn)行NAT(具體原因應(yīng)該跟設(shè)備性能參數(shù)有關(guān),我也不是很確定~_~)。


另外,ISP分配過來的地址池應(yīng)該是公網(wǎng)IP地址池,而不是應(yīng)該圖中所示的172.16.6.0/24或172.16.7.0/24這兩個私網(wǎng)IP地址段,只不過我這里用了私網(wǎng)地址段來作為地址池,大家知道就好。


還應(yī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進(jìn)行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進(jìn)行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.查驗路由表

冗余網(wǎng)絡(luò)

冗余網(wǎng)絡(luò)


上面配置完后,就可以看到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默認(rèn)路由


對于R1和R2,都需要設(shè)置為下發(fā)OSPF默認(rèn)路由。至于這兩條默認(rèn)路由的初始度量值,個人覺得可以不進(jìn)行修改,讓它們保持一樣。如果為了排錯時能更加簡便,也可以將它們的初始度量值修改為不一樣,同時設(shè)置metric-type為2,這樣流量路徑就會保持一致,而不會在上行路徑間負(fù)載均衡。


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)了故障冗余自動切換的功能了。但實際使用時,還需要進(jìn)一步深化配置,因為可能會存在因路由協(xié)議收斂導(dǎo)致的切換不及時的問題。比如,正常情況下,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),是會有丟包的。只有當(dāng)BGP重新收斂后,數(shù)據(jù)包的轉(zhuǎn)發(fā)才能恢復(fù)正常。也有一些技術(shù)可以加快BGP的收斂速度,不過我沒研究過,所以暫時就這樣了。


接入層交換機部分,沒有什么必須要進(jìn)行的配置。接入層交換機可以使用傻瓜交換機,也可以是可網(wǎng)管交換機。最好是可網(wǎng)管交換機,就可以部署各種接入控制特性,這樣就可以少去很多麻煩。當(dāng)然,接入層交換機這里其實還是存在單點失效的問題,可能使用具有冗余引擎和冗余電源的設(shè)備可以稍微緩解這個問題,但實際上應(yīng)該沒有企業(yè)這么有錢吧,也沒有這么做的必要吧。


關(guān)于DNS的設(shè)置問題。在我這個設(shè)計方案中未涉及到DNS的問題,但實際網(wǎng)絡(luò)中,DNS的設(shè)置會影響到網(wǎng)絡(luò)出口的選擇,不同出口上流量的多少,及網(wǎng)絡(luò)的體驗問題。一般來說,ISP1會給你兩個DNS地址,ISP2也會給你兩個DNS地址。我個人是認(rèn)為,要么主用ISP1提供的線路,要么主用ISP2提供的線路。也就是說,要么只使用ISP1提供的DNS地址,要么只使用ISP2提供的DNS地址。如果要讓兩條出口線路上的流量更加均衡一點,可能可以在一部分區(qū)域中使用ISP1提供的DNS地址,在另一部分區(qū)域中使用ISP2提供的DNS地址,不過因為沒有實際這樣做過,所以也不確定是否的確可行。

網(wǎng)站名稱:分享多出口冗余網(wǎng)絡(luò)設(shè)計方案
標(biāo)題路徑:http://www.muchs.cn/news48/105098.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(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)

成都網(wǎng)站建設(shè)公司