1. BGP介紹
目前中國境內(nèi)主要分為網(wǎng)通撵颊、電信逞刷、移動(dòng)妻熊、聯(lián)通帆喇、教育網(wǎng)厅目、科技網(wǎng)番枚、衛(wèi)通等網(wǎng)絡(luò),由于這些公司獨(dú)立運(yùn)作损敷,造成國內(nèi)長(zhǎng)久以來整個(gè)互聯(lián)網(wǎng)處于無法快速互聯(lián)互通的局面葫笼,如何將各個(gè)AS自制系統(tǒng)連通起來,就需要搭建BGP網(wǎng)絡(luò)拗馒。
在介紹BGP協(xié)議之前路星,先介紹幾個(gè)概念:
(1) AS(Autonomous system):自治系統(tǒng),指在一個(gè)(有時(shí)是多個(gè))組織管轄下的所有IP網(wǎng)絡(luò)和路由器的全體诱桂,它們對(duì)互聯(lián)網(wǎng)執(zhí)行共同的路由策略洋丐。也就是說,對(duì)于互聯(lián)網(wǎng)來說挥等,一個(gè)AS是一個(gè)獨(dú)立的整體網(wǎng)絡(luò)友绝。而BGP實(shí)現(xiàn)的網(wǎng)絡(luò)自治也是指各個(gè)AS自治。每個(gè)AS有自己唯一的編號(hào)粘室。
(2)IGP(Interior Gateway Protocol):內(nèi)部網(wǎng)關(guān)協(xié)議海雪,在一個(gè)AS內(nèi)部所使用的一種路由協(xié)議刺彩。一個(gè)AS內(nèi)部也可以有多個(gè)路由器管理多個(gè)網(wǎng)絡(luò)焚碌。各個(gè)路由器之間需要路由信息以知道子網(wǎng)絡(luò)的可達(dá)信息。IGP就是用來管理這些路由。代表的實(shí)現(xiàn)有RIP和OSPF。
(3)EGP(Exterior Gateway Protocol):外部網(wǎng)關(guān)協(xié)議蒿叠,在多個(gè)AS之間使用的一種路由協(xié)議抵蚊,現(xiàn)在已經(jīng)淘汰,被BGP取而代之。
BGP(Border Gateway Protocol)主要用于互聯(lián)網(wǎng)AS(自治系統(tǒng))之間的互聯(lián)臭猜,BGP的最主要功能在于控制路由的傳播和選擇最佳路徑次屠。全國各大網(wǎng)絡(luò)運(yùn)營(yíng)商多數(shù)都是通過BGP協(xié)議與自身的AS號(hào)來實(shí)現(xiàn)多線互聯(lián)的。使用BGP協(xié)議互聯(lián)后,網(wǎng)絡(luò)運(yùn)營(yíng)商的所有骨干路由設(shè)備將會(huì)判斷到IDC機(jī)房IP段的最佳路由,以保證不同網(wǎng)絡(luò)運(yùn)營(yíng)商用戶的高速訪問。
動(dòng)態(tài)BGP多線網(wǎng)絡(luò),路由表項(xiàng)是通過相互連接的路由器之間交換彼此路由信息,然后按照一定的算法優(yōu)化出來的,而這些路由信息是在一定時(shí)間間隙里不斷更新蟀拷,以適應(yīng)不斷變化的網(wǎng)絡(luò)此衅,以隨時(shí)獲得最優(yōu)的尋路效果墨微。為了實(shí)現(xiàn)IP分組的高效尋路也糊,IETF制定了多種尋路協(xié)議钞馁。也就是說训措,當(dāng)靜態(tài)BGP中的網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化呀闻,運(yùn)營(yíng)商是無法在第一時(shí)間自動(dòng)調(diào)整網(wǎng)絡(luò)設(shè)置以保障用戶的體驗(yàn)度垒手。而動(dòng)態(tài)BGP可根據(jù)設(shè)定的尋路協(xié)議第一時(shí)間自動(dòng)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)唆迁,以保持客戶使用的網(wǎng)絡(luò)持續(xù)穩(wěn)定鼠哥、高效。所以同衣,動(dòng)態(tài)BGP網(wǎng)絡(luò)被稱為真正意義上的BGP。
BGP流量引流和回注
云計(jì)算廠商需要保證客戶網(wǎng)絡(luò)的正常的畴,通常會(huì)為單個(gè)公網(wǎng)IP提供數(shù)G的防護(hù)能力贪染,當(dāng)超過默認(rèn)的閾值,公網(wǎng)IP備遷移到黑洞中裆操,進(jìn)行封堵水援。這樣導(dǎo)致用戶的服務(wù)不可訪問了惯豆,客戶為了正常訪問服務(wù),就需要接入BGP高防筛圆,防護(hù)能力高達(dá)數(shù)百G唧垦,來保護(hù)服務(wù)正常。高防的費(fèi)用是非常高的走孽,通常云廠商自己搭建高防系統(tǒng)倒彰,通過BGP協(xié)議將流量引流到高防清洗系統(tǒng)琳彩,將異常流量清洗掉部凑,將正常流量回注給客戶。
2.優(yōu)勢(shì)分析
BGP機(jī)房就是服務(wù)器租用商通過技術(shù)的手段,實(shí)現(xiàn)不同運(yùn)營(yíng)商能共同訪問一個(gè)IP墓捻,并且不同運(yùn)營(yíng)商之間都能達(dá)到最快的接入速度的相關(guān)網(wǎng)絡(luò)技術(shù)凸丸。
BGP機(jī)房在一定程度上解決了各用戶南北互通的問題悔雹,提高了用戶的訪問速度久免,用BGP協(xié)議實(shí)現(xiàn)的單IP雙線路的效果。該方案就是通過BGP協(xié)議扭弧,直接將其中一條線路的IP映射另外一條線路IP上阎姥,當(dāng)訪客瀏覽你的網(wǎng)站時(shí),會(huì)自動(dòng)根據(jù)實(shí)際情況選擇訪問速度最快的線路寄狼,這樣各個(gè)運(yùn)營(yíng)商的用戶都能達(dá)到最佳的訪問速度丁寄。
租用的服務(wù)器只有一個(gè)IP,用戶的訪問路線是由路由器根據(jù)訪客的實(shí)際訪問速度選擇最優(yōu)訪問路徑泊愧,來選擇訪問的伊磺。而且不占用任何的服務(wù)器資源。服務(wù)器的上行和下行都是有路由器來選擇最佳的路線删咱,所以這樣能夠真正的做到各運(yùn)營(yíng)商之間都達(dá)到最佳的訪問速度實(shí)現(xiàn)真正的BGP效果屑埋。
由于BGP協(xié)議本身具有冗余備份、消除環(huán)路的特點(diǎn)痰滋,所以當(dāng)你托管或者租用的服務(wù)器出現(xiàn)故障時(shí)摘能,能實(shí)現(xiàn)互相備份。同時(shí)自動(dòng)切換到其它線路去敲街,并且不影響正常訪問团搞。
BGP服務(wù)器租用還有較好的拓展性和融合性,可以實(shí)現(xiàn)和其它運(yùn)營(yíng)商互聯(lián)互通多艇,輕松實(shí)現(xiàn)單IP多線路逻恐,做到所有互聯(lián)運(yùn)營(yíng)商的用戶訪問都很快。這是雙IP雙線服務(wù)器租用所不能實(shí)現(xiàn)的。
技術(shù)實(shí)現(xiàn)目前可以使用Intel開源的DPDK網(wǎng)絡(luò)開發(fā)包快速開發(fā)复隆,使用KNI新建一個(gè)虛擬網(wǎng)卡拨匆,配置好與上層交互機(jī)建立BGP,然后通過虛擬網(wǎng)絡(luò)將流量引入挽拂,分析流量過后惭每,使用回注口將報(bào)文使用二層MAC送回到交換機(jī)。
DPDK
Intel? DPDK全稱Intel Data Plane Development Kit亏栈,是intel提供的數(shù)據(jù)平面開發(fā)工具集台腥,為Intel architecture(IA)處理器架構(gòu)下用戶空間高效的數(shù)據(jù)包處理提供庫函數(shù)和驅(qū)動(dòng)的支持,它不同于Linux系統(tǒng)以通用性設(shè)計(jì)為目的仑扑,而是專注于網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)包的高性能處理览爵。目前已經(jīng)驗(yàn)證可以運(yùn)行在大多數(shù)Linux操作系統(tǒng)上,包括FreeBSD 9.2镇饮、Fedora release18蜓竹、Ubuntu 12.04 LTS、RedHat Enterprise Linux 6.3和Suse EnterpriseLinux 11 SP2等储藐。DPDK使用了BSDLicense俱济,極大的方便了企業(yè)在其基礎(chǔ)上來實(shí)現(xiàn)自己的協(xié)議棧或者應(yīng)用钙勃。
需要強(qiáng)調(diào)的是蛛碌,DPDK應(yīng)用程序是運(yùn)行在用戶空間上利用自身提供的數(shù)據(jù)平面庫來收發(fā)數(shù)據(jù)包,繞過了Linux內(nèi)核協(xié)議棧對(duì)數(shù)據(jù)包處理過程辖源。Linux內(nèi)核將DPDK應(yīng)用程序看作是一個(gè)普通的用戶態(tài)進(jìn)程蔚携,包括它的編譯、連接和加載方式和普通程序沒有什么兩樣克饶。
GRE tunnel
基本配置說明:
1)R1,R2的環(huán)回口分別為:192.168.1.1/24和192.168.2.1/24
2)鏈路兩端的IP使用該路由器的編號(hào)酝蜒,例如R1的s0/0:192.168.12.1
Q1:什么是tunnel?
Q2:如何建立GRE中的tunnel?
Answer1:
tunnel是類似于環(huán)回口的虛擬接口,可用于隱藏路徑矾湃。例如:在R1和R4構(gòu)建一條GRE通道亡脑,那么就會(huì)隱藏R2和R3:
(這里的192.168.4.2是tunnel一個(gè)端口的IP!)該結(jié)果顯示了R2和R3被隱藏了,即建立了一條R1和R4直接相連的tunnel
Answer2:
tunnel的配置步驟:
第一步:配置ip地址 ip address 192.168.4.1255.255.255.0 (類似于傳統(tǒng)的接口配置)
第二步:指定tunnel的source和destination
tunnelsource s0/0
tunnel destination 192.168.34.4
tunnel mode gre ip(該命令默認(rèn)開啟使用)
第三步:使用tunnel通道(使用靜態(tài)路由指明使用tunnel通信)
在R1上:ip route 192.168.2.0 255.255.255.0 tunnel0(在R2上對(duì)等配置)