CCNP路由实验之七 动态路由之BGP
CCNP路由实验之七 动态路由之BGP
动态路由协议能够自己主动的发现远程网络,仅仅要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络,还能够在当前网络连接失败时找出备用路径。依据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部採用的路由选择协议称为内部网关协议,经常使用的有RIP、EIGRP、OSPF、IS-IS;外部网关协议主要用于多个自治域之间的路由选择,经常使用的是BGP和BGP-4。在一个路由器中,可同一时候配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这样的冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。
简单介绍
BGP用来连接)连接,即是单播的路由协议,它们交换整个BGP路由表。从这个时候開始,在路由表发生变化时,再发送更新信号。BGP是一个距离向量协议,可是与(通告到目的地址跳数的)RIP不同的是,BGP列举了到每一个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。採用16bit数字表示自治系统标识。尽管BGP协议保持通向特定目标的全部路径的路由选择表,但在路由选择刷新消息中仅仅说明最佳路径。BGP协议的路由度量方法能够是一个随意单位的数,它指明某一个特定路径可供參考的程度,这些度量方法通常都是由网络管理人员通过配置文件来设置。可參考的程度能够基于不论什么数字准则,比如终于系统计数(计数越小时路径越佳)、数据链路的类型。
BGP 的两种邻居——IBGP和EBGP,BGP的邻居关系(或称通信对端/对等实体)是通过人工配置实现的,对等实体之间通过TCP(port179)会话交互数据。BGP路由器会周期地发送19字节的保持存活keep-alive消息来维护连接(默认周期为30秒)。在路由协议中,仅仅有BGP使用TCP作为,优先级比EBGP和不论什么内部网关协议(IGP)通告的路由都低。其它的路由器实现中,优先级顺序也是EBGP高于IGP,而IGP又高于IBGP。在建立邻居关系的时候,我们都採用Loopback地址来建立,但要保证Loopback地址可达,採用Loopback地址建立的邻居不会应为链路的down而断。
IBGP路由通告:BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居(在一定的程度上能避免AS内的环路),就会造成不是与该路由器建立邻居不能学到路由,解决方式:①採用全连接②採用RR反射器③採用联盟的方式。
EBGP路由通告:BGP Speaker 从EBGP获得的路由会向全部的BGP对等体通告(包括IBGP和EBGP)
我们知道,在自治系统内部使用IGP路由协议;而在不同自治系统之间使用BGP路由协议,EBGP用于在不同自治系统之间,IBGP也是应用于自治系统内部,此时就要理解他们之间的关系:
IGP的能力限制,IGP处理路由的条目有限,而眼下internet上核心路由器的路由表已经超过10万条。假如没有IBGP,那么这些路由仅仅能採取重分发的方式直接导入到IGP中,这样做的缺点非常明显:第一,IGP协议的作者并没有打算让IGP来处理如此大量的路由,IGP本身也无法处理这样大的路由数量;第二,假设非要让IGP来处理,那么依据IGP的处理原则,假如这10万路由中不论什么一条路由发生变化,那么执行IGP的路由器就不得不又一次计算路由这样的计算量对于绝大多数路由器来说是无法负担的
路由环路的问题。BGP是靠路由属性来防止路由环路的,比如AS_PATH属性,假如说没有IBGP协议,那么当全部BGP路由重分发到IGP中后,路由属性必定丢失,这就破坏了BGP的路由环路防止机制,产生了路由环路的隐患。
IBGP之间是TCP连接,也就意味着IBGP邻居採用的是逻辑连接的方式,两个IBGP连接不一定存在实际的物理链路。所以须要有IGP来提供路由,以完毕BGP路由的递归查找。 BGP协议本身实际上并不发现路由,BGP将路由发现的工作全部移交给了IGP协议,它本身着重于路由的控制。因此,假设没有IGP,那么BGP也就毫无用处了。
EBGP与IBGP的差别:
路由环路的避免措施不一样,IBGP强制规定ibgp speaker不同意把从一个ibgp邻居学习到的前缀传递给其它ibgp邻居,因此IBGP要求逻辑全连接。EBGP没有这样的要求,EBGP对路由环路的避免是通过AS_PATH属性来实现的。
使用的BGP属性不同,比如IBGP能够传递LOCAL_PREF(本地优先属性),而EBGP不行。
IBGP有同步的要求,而EBGP没有同步的要求
IBGP不须要IBGP邻居之间有物理连接,仅仅须要逻辑连接就可以,而EBGP下普通情况下都要求EBGP邻居之间存在物理连接。
BGP属性:
路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性能够是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也能够是部分的。并不是组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。当中公认必遵、公认自决为
公认属性;可选过渡、可选非过渡为非公认属性被称为可选的,可选属性能够是传递的或非传递的,可选属性不要求全部的BGP实现都支持。对于不支持的可选传递属性,路由器将其原封不动的传递给其它BGP路由器,在这样的情况下,属性被标记为部分的。对于可选非传递属性,路由器必须将其删除,而不将其传递给其它BGP路由器。
(1)公认必遵(Well-Known Mandatory)是公认全部BGP实现都必须识别的属性,这些属性被传递给BGP邻居。公认强制属性必须出如今路由描写叙述中,公认自由决定属性能够不出如今路由描写叙述中,例如以下:
ORIGIN(起源):这个属性说明了源路由是如何放到BGP表中的。有三个可能的源IGP,EGP,以及INCOMPLETE.路由器在多个路由选择的处理中使用这个信息。路由器选择具有最低ORIGIN类型的路径。
AS_PATH(AS路径):指出包括在UPDATE报文中的路由信息所经过的自治系统的序列。
Next_HOP(下一跳)声明路由器所获得的BGP路由的下一跳,对EBGP会话来说,下一跳就是通告该路由的邻居路由器的源地址。
(2)公认自决(Well-Known Discretionary)
LOCAL_PREF(本地优先级):本地优先级属性是用于告诉自治系统内的路由器在有多条路径的时候,如何离开自治系统。本地优先级越高,路由优先级越高。
ATOMIC_AGGREGATE(原子聚合):原子聚合属性指出已被丢失了的信息。
(3)可选过渡(Optional Transitive)
AGGREGATOR(聚合者):此属性标明了实施路由聚合的BGP路由器ID和聚合路由的路由器的AS号。
COMMUNITY(团体):此属性指共享一个公共属性的一组路由器。
(4)可选非过渡(Optional Nontransitive)
MED(多出口区分):该属性通知AS以外的路由器採用哪一条路径到达AS,它也被觉得是路由的外部度量,低MED值表示高的优先级。
ORIGINATOR_ID(起源ID):路由反射器会附加到这个属性上,它携带本AS路由器的路由器ID,用以防止环路。
CLUSTER_LIST(簇列表):此属性显示了採用的反射路径。
BGP术语
BGP两个版本号:BGP4因特网上所用的主要区域间路由选择协议的第4版,它支持CIDR并使用路由集合机制减小路由表的大小;BGP4+使BGP4能够支持多种种状态:
Idle:查找路由表,该过程BGP对它的资源进行初始化,复位一个连接重试计时器, 发起一条TCP 连接,并開始倾听远程对等体所发起的连接。
Connect:找到路由表后进行TCP三次握手,TCP 连接成功,则转到OpenSent状态,TCP连接失败,则转到active 状态,将尝试再次连接。
Open Sent:握上手后发送Open message消息,等待其对等体发送打开消息,假设出错,则发送一条出错消息并退回空暇状态,假设无错,则開始发送Keepalive 并复位keepalive 计时器。
Open Confirm:收到对方发来的Open消息,假设收到keepalive 消息,BGP 就进入established状态,邻居关系协商完毕;假设系统收到一条更新或keepalive 消息,它将又一次启动保持计时器;假设收到Notification消息,BGP 就退回到空暇状态。
Established:会话建立,邻居关系协商过程终于状态;这时BGP将開始与它的对等体交换路由更新数据包。
BGP协议的特点
BGP是一种AS(自治区域)外部路由协议,主要负责本自治区域和外部的自治区域间的路由可达信息的交换。因此,它所关心的拓扑结构是AS(自治区域)的拓扑结构,BGP通过UPDATE消息中路由的AS属性来构造AS的拓扑结构图,进一步通过此结构图来选择路由。
与OSPF,RIP等IGP协议相比,BGP的拓扑图要更抽象和粗略一些。由于IGP协议构造的是AS内部的路由器的拓扑结构图。IGP把路由器抽象成若干端点,把路由器之间的链路抽象成边,依据链路的状态等參数和一定的度量标准,每条边配以一定的权值,生成拓扑图。依据此拓扑图选择代价(两点间经过的边的权值和)最小的路由。这里有一个假设,即路由器(端点)转发数据包是没有的代价的。而在BGP中,拓扑图的端点是一个AS区域,边是AS之间的链路。此时,数据包经过一个端点(AS自治区域)时的代价就不能假设为0了,此代价要由IGP来负责计算。这体现了EGP和IGP是分层的关系。即IGP负责在AS内部选择花费最小的路由,EGP负责选择AS间花费最小的路由。BGP作为EGP的一种,选择路由时考虑的是AS间的链路花费,AS区域内的花费(由BGP路由器配置)等因素。
如上所述,内部网关协议IGP需引入AS自治区域内部网络拓扑图其它各点的路由,同一时候向其它端点发送本端点(路由器)所知的路由,如直接路由、静态路由等。作为外部网关协议,BGP发送和引入路由的单位是整个AS自治区域,即BGP要发送本地路由器所在的AS内部的全部路由,引入其它AS自治区域的全部路由(假设不使用路由策略控制发送和引入)。其路由数量显然要远远大于IGP发送和引入的路由数量。因此,相似于IGP那样定时对外广播路由信息是不可取的。BGP採用发送路由增量(Incremental)的方法,完毕全部路由信息的通告和维护:初始化时发送全部的路由给BGP对端(BGP Peer),同一时候在本地保存了已经发送给BGP对端的路由信息。当本地的BGP收到了一条新路由时(如通过IGP注入了新路由或加入了新的静态路由),与保存的已发送信息进行比較,如未发送过,则发送,如已发送过则与已经发送的路由进行比較,如新路由花费更小,则发送此新路由,同一时候更新已发送信息,反之则不发送。当本地BGP发现一条路由失效时(如相应port失效),如此路由已发送过,则向BGP对端发送一个退出路由消息。
BGP遇到的挑战和限制
(1)I-BGP的Full-Mesh问题: BGP路由协议分为I-BGP和E-BGP两个部分。I-BGP用于自治域内的路由器之间,E-BGP用于自治域间的路由器之间。假设一个AS内部存在非bgp路由器,那么就出现了BGP和%,占用了差点儿全部的CPU资源。尽管眼下大部分的高端路由器都将路由计算的模块与转发模块分布在不同的硬件上,来降低主CPU忙导致的路由器性能下降的问题,可是路由表的频繁变化和更新,对整个设备的执行还是有一定的影响的,并且这样的计算会随着路由的收回或广播,继续向自治域内部扩展,使内部的路由器产生同样的问题。眼下解决的办法:Damping
(3)其它因素影响路由器的性能: 如路由的数目、BGP路由表的大小和路由计算的方式等 另外,网络越大,路由条目越多,配置和管理的工作也就越复杂,这就须要在网络设计的时候尽量简化配置,降低管理人员的工作强度,避免人为原因造成故障。解决的方法有: peer group 、路由聚合
实验一:BGP基本配置
R1配置:
R1#conf t
R1(config)#int s0/0
R1(config-if)#ip add 192.168.12.1255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#ip router isis //将接口宣告到ISIS路由进程
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router isis //开启ISIS内部路由协议
R1(config-router)#net49.0001.1111.1111.1111.00
R1(config-router)#exit
R1(config)#router bgp 65501 //开启bgp进程,自治号位65501
R1(config-router)#no synchronization //关闭同步
R1(config-router)#network 192.168.12.0 mask255.255.255.0 //宣告网络到BGP进程
R1(config-router)#neighbor192.168.12.2 remote-as 65501 //手动配置R2为邻居
R1(config-router)#neighbor192.168.23.2 remote-as 65501 //手动配置R3为邻居
R2配置:
R2#conft
R2(config)#ints0/0
R2(config-if)#ipadd 192.168.12.2 255.255.255.0
R2(config-if)#iprouter isis
R2(config-if)#clockrate 64000
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#ints0/1
R2(config-if)#ipadd 192.168.23.1 255.255.255.0
R2(config-if)#clockrate 64000
R2(config-if)#iprouter isis
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#routerisis
R2(config-router)#net49.0001.2222.2222.2222.00
R2(config-router)#exit
R2(config)#routerbgp 65501
R2(config-router)#nosynchronization
R2(config-router)#net192.168.12.0 mask 255.255.255.0
R2(config-router)#net192.168.23.0 mask 255.255.255.0
R2(config-router)#neighbor192.168.12.1 remote-as 65501
R2(config-router)#neighbor192.168.23.2 remote-as 65501
R3配置:
R3#conft
R3(config)#ints0/0
R3(config-if)#ipadd 192.168.23.2 255.255.255.0
R3(config-if)#iprouter isis
R3(config-if)#clockrate 64000
R3(config-if)#nosh
R3(config-if)#exit
R3(config)#ints0/1
R3(config-if)#ipadd 192.168.34.1 255.255.255.0
R3(config-if)#iprouter isis
R3(config-if)#clockrate 64000
R3(config-if)#nosh
R3(config-if)#exit
R3(config)#routerisis
R3(config-router)#net49.0001.3333.3333.3333.00
R3(config-router)#exit
R3(config)#routerbgp 65501
R3(config-router)#nosyn
R3(config-router)#net192.168.23.0 mask 255.255.255.0
R3(config-router)#net192.168.34.0 mask 255.255.255.0
R3(config-router)#nei192.168.12.1 remote-as 65501
R3(config-router)#nei192.168.23.1 remote-as 65501
R3(config-router)#nei192.168.34.2 remote-as 65502
R4配置:
R4#conft
R4(config)#ints0/0
R4(config-if)#ipadd 192.168.34.2 255.255.255.0
R4(config-if)#clockrate 64000
R4(config-if)#nosh
R4(config-if)#exit
R4(config)#intlo 0
R4(config-if)#ipadd 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#routerbgp 65502
R4(config-router)#nosyn
R4(config-router)#net4.4.4.4 mask 255.255.255.255
R4(config-router)#net192.168.34.0 mask 255.255.255.0
R4(config-router)#nei192.168.34.1 remote-as 65501
R4(config-router)#exit
完毕以上配置后,全网互通就能够互通了,此时我们查看下R1和R4的路由表,发现有一条带B标记的路由到达对方。同一时候查看BGP邻居
R1#ship rou
Codes:C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O -OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 -OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPFexternal type 2
i - IS-IS, su - IS-IS summary, L1 -IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidatedefault, U - per-user static route
o - ODR, P - periodic downloaded staticroute
Gatewayof last resort is not set
C 192.168.12.0/24 is directly connected,Serial0/0
4.0.0.0/32 is subnetted, 1 subnets
B 4.4.4.4 [200/0] via192.168.34.2, 00:20:09
iL1 192.168.23.0/24 [115/20] via 192.168.12.2, Serial0/0
iL1 192.168.34.0/24 [115/30] via 192.168.12.2, Serial0/0
R1#ship bgp summary
BGProuter identifier 192.168.12.1, local AS number 65501
BGPtable version is 9, main routing table version 9
4network entries using 468 bytes of memory
6path entries using 312 bytes of memory
4/3BGP path/bestpath attribute entries using 496 bytes of memory
1BGP AS-PATH entries using 24 bytes of memory
0BGP route-map cache entries using 0 bytes of memory
0BGP filter-list cache entries using 0 bytes of memory
BGPusing 1300 total bytes of memory
BGPactivity 4/0 prefixes, 6/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.12.2 465501 61 60 9 0 0 00:55:01 2
192.168.23.2 465501 48 46 9 0 0 00:41:44 3
分析:
在自治区域65501内各路由器通过ISIS路由协议,建立到达彼此的路由条目。然后各路由器开启BGP协议,BGP协议依据路由表与其它路由器建立iBGP对等体关系(邻居),彼此交互路由信息。接着R3与物理链接的R4上的自治区域65502的BGP协议建立EBGP关系,彼此交换路由信息。
实验二、使用环回口建立IBGP邻居关系
事实上IBGP和EBGP都能够用环回口或者物理接口建立邻居,可是通常EBGP用物理接口建立邻居,由于EBGP之间牵扯到多跳的问题,且EBGP邻居之间没有不论什么IGP协议的支持,所以环回口是不可达的,尽管能够在临界路由器上配置一条默认路由来可达,可是还要配置nei x.x.x.x 的多跳,由于EBGP默认仅仅传一跳。
对于IBGP之间,由于有IGP的协议支持,所以环回口都是可达的,最重要的就是环回口的稳定性大大优于物理接口。R1(config-router)#bgp router-id 1.1.1.1 //设置BGP路由ID
R1(config-router)#no synchronization //关闭同步
R1(config-router)#network 192.168.12.0 mask255.255.255.0 //宣告网络到BGP进程
R1(config-router)#network 192.168.13.0 mask 255.255.255.0////宣告网络到BGP进程
R1(config-router)#nei2.2.2.2 remote-as 65501 //指定与R2环回口建立邻居
R1(config-router)#nei2.2.2.2 update-source loopback 0//指定本端更新port为环回口
R1(config-router)#nei2.2.2.2 next-hop-self //要求下一跳更新源
R1(config-router)#nei3.3.3.3 remote-as 65501//指定与R3环回口建立邻居
R1(config-router)#nei3.3.3.3 update-source loopback 0//指定本端更新port为环回口
R1(config-router)#NEI3.3.3.3 next-hop-self //要求下一跳更新源
R2配置:
R2#conft
R2(config)#ints0/0
R2(config-if)#ipadd 192.168.12.2 255.255.255.0
R2(config-if)#iprouter isis
R2(config-if)#clockrate 64000
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#ints0/1
R2(config-if)#ipadd 192.168.23.1 255.255.255.0
R2(config-if)#clockrate 64000
R2(config-if)#iprouter isis
R2(config-if)#nosh
R2(config-if)#exit
R2(config)#intlo0
R2(config-if)#ipadd 2.2.2.2 255.255.255.255
R2(config-if)#iprouter isis
R2(config-if)#exit
R2(config)#routerisis
R2(config-router)#net49.0001.2222.2222.2222.00
R2(config-router)#exit
R2(config)#routerbgp 65501
R2(config-router)#bgprouter-id 2.2.2.2
R2(config-router)#nosynchronization
R2(config-router)#net192.168.12.0 mask 255.255.255.0
R2(config-router)#net192.168.23.0 mask 255.255.255.0
R2(config-router)#nei1.1.1.1 remote-as 65501
R2(config-router)#nei1.1.1.1 update-source loopback 0
R2(config-router)#nei1.1.1.1 next-hop-self
R2(config-router)#nei3.3.3.3 remote-as 65501
R2(config-router)#nei3.3.3.3 update-source loopback 0
R2(config-router)#nei3.3.3.3 next-hop-self
R3配置:
R3#conft
R3(config)#ints0/0
R3(config-if)#ipadd 192.168.23.2 255.255.255.0
R3(config-if)#iprouter isis
R3(config-if)#clockrate 64000
R3(config-if)#nosh
R3(config-if)#exit
R3(config)#ints0/1
R3(config-if)#ipadd 192.168.34.1 255.255.255.0
R3(config-if)#iprouter isis
R3(config-if)#clockrate 64000
R3(config-if)#nosh
R3(config-if)#exit
R3(config)#intlo0
R3(config-if)#ipadd 3.3.3.3 255.255.255.255
R3(config-if)#iprouter isis
R3(config-if)#exit
R3(config)#routerisis
R3(config-router)#net49.0001.3333.3333.3333.00
R3(config-router)#exit
R3(config)#routerbgp 65501
R3(config-router)#bgprouter-id 3.3.3.3
R3(config-router)#nosyn
R3(config-router)#net192.168.23.0 mask 255.255.255.0
R3(config-router)#net192.168.34.0 mask 255.255.255.0
R3(config-router)#net192.168.13.0 mask 255.255.255.0
R3(config-router)#nei1.1.1.1 remote-as 65501
R3(config-router)#nei1.1.1.1 update-source loopback 0
R3(config-router)#nei1.1.1.1 next-hop-self
R3(config-router)#nei2.2.2.2 remote-as 65501
R3(config-router)#nei2.2.2.2 update-source loopback 0
R3(config-router)#nei2.2.2.2 next-hop-self
R3(config-router)#nei192.168.34.2 remote-as 65502
R4配置:
R4#conft
R4(config)#ints0/0
R4(config-if)#ipadd 192.168.34.2 255.255.255.0
R4(config-if)#clockrate 64000
R4(config-if)#nosh
R4(config-if)#exit
R4(config)#intlo 0
R4(config-if)#ipadd 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#routerbgp 65502
R4(config-router)#nosyn
R4(config-router)#net4.4.4.4 mask 255.255.255.255
R4(config-router)#net192.168.34.0 mask 255.255.255.0
R4(config-router)#nei192.168.34.1 remote-as 65501
R4(config-router)#exit
此时全网已经互通,并且查看R1的BGP邻居:
R1#ship bgp summary
BGProuter identifier 1.1.1.1, local AS number 65501
BGPtable version is 31, main routing table version 31
5network entries using 585 bytes of memory
8path entries using 416 bytes of memory
4/3BGP path/bestpath attribute entries using 496 bytes of memory
1BGP AS-PATH entries using 24 bytes of memory
0BGP route-map cache entries using 0 bytes of memory
0BGP filter-list cache entries using 0 bytes of memory
BGPusing 1521 total bytes of memory
BGPactivity 15/10 prefixes, 22/14 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2.2.2.2 4 65501 201 197 31 0 0 03:12:37 2
3.3.3.3 4 65501 207 207 31 0 0 03:20:41 4
实验三、去掉私有AS
R1配置:
R1#conf t
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#clock rate 64000
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router bgp 65501
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#net 192.168.12.0 mask 255.255.255.0
R1(config-router)#net 1.1.1.0 mask 255.255.255.0
R1(config-router)#nei 192.168.12.2 remote-as 100
R2配置:
R2#conf t
R2(config)#int s0/0
R2(config-if)#clock rate 64000
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int s0/1
R2(config-if)#clock rate 64000
R2(config-if)#ip add 192.168.23.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router bgp 100
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#net 192.168.12.0 mask 255.255.255.0
R2(config-router)#net 192.168.23.0 mask 255.255.255.0
R2(config-router)#nei 192.168.12.1 remote-as 65501
R2(config-router)#nei 192.168.23.2 remote-as 200
R3配置:
R3#conf t
R3(config)#int s0/0
R3(config-if)#clock rate 64000
R3(config-if)#ip add 192.168.23.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#router bgp 200
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#net 192.168.23.0 mask 255.255.255.0
R3(config-router)#nei 192.168.23.1 remote-as 100
完毕配置后,此时全网互通正常,我们来看看R3的BGP路由表,
R3#sh ip bgp
BGP table version is 5, local router ID is3.3.3.3
Status codes: s suppressed, d damped, hhistory, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? -incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 192.168.23.1 0 100 65501 i
*> 192.168.12.0 192.168.23.1 0 0 100 i
* 192.168.23.0 192.168.23.1 0 0 100 i
*> 0.0.0.0 0 32768 i
此时会发现AS65501这个私有自治号(AS大于65500的都是私有).注意在公网上是不能有私有AS号的 ,此时我们使用neighbor x.x.x.x remove-private-as 命令能够强制BGP丢弃私有AS编号,通常这个命令配置在外部的BGP邻居上,当向外公布的更新路由中含有私有AS编号的时候,这个私有的AS编号将被过滤,然后再次查看R3的BGP路由表
R2#conf t
R2(config)#router bgp 100
R2(config-router)#nei 192.168.23.2remove-private-as
R2(config-router)#do clear ip bgp * soft out
R3#sh ip bgp
BGP table version is 6, local router ID is3.3.3.3
Status codes: s suppressed, d damped, hhistory, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? -incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 192.168.23.1 0 100 i
*> 192.168.12.0 192.168.23.1 0 0 1 00 i
* 192.168.23.0 192.168.23.1 0 0 100 i
*> 0.0.0.0 0 32768 i
当配置这条命令的时候须要注意以下的几个注意事项.
这条命令仅仅能使用在EBGP的邻居上
假设更新路由中仅仅含有私有的AS编号那么BGP会过滤掉这些私有编号
假设在AS_PATH路径中既包括私有的又包括公有的AS编号那么BGP将不会对私有的AS编号进行过滤
假设在AS_PATH中包括有EBGP邻居的AS编号那么BGP也不会将私有的AS编号进行过滤
假设AS_PATH 包括联盟那么仅仅有当私有AS编号出如今联盟后面的时候BGP才会将私有的AS编号清除
实验四、BGP的Weight属性 (Cisco私有)
R1配置:
R1#conf t
R1(config)#int lo0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s0/1
R1(config-if)#ip add 192.168.13.1 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router bgp 100
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#net 1.1.1.0 mask 255.255.255.0
R1(config-router)#net 192.168.12.0 mask 255.255.255.0
R1(config-router)#net 192.168.13.0 mask 255.255.255.0
R1(config-router)#nei 192.168.12.2 remote-as 200
R1(config-router)#nei 192.168.13.2 remote-as 200
R2配置:
R2#conf
R2(config)#int s0/0
R2(config-if)#clock rate 64000
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int s0/1
R2(config-if)#clock rate 64000
R2(config-if)#ip add 192.168.24.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router bgp 200
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#net 192.168.12.0 mask 255.255.255.0
R2(config-router)#net 192.168.24.0 mask 255.255.255.0
R2(config-router)#nei 192.168.12.1 remote-as 100
R2(config-router)#nei 192.168.24.2 remote-as 200
R2(config-router)#nei 192.168.24.2 remote-as 200
R3配置:
R3#conf t
R3(config)#int s0/0
R3(config-if)#clock rate 64000
R3(config-if)#ip add 192.168.13.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int s0/1
R3(config-if)#ip add 192.168.34.1 255.255.255.0
R3(config-if)#clock rate 64000
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#router bgp 200
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#net 192.168.13.0 mask 255.255.255.0
R3(config-router)#net 192.168.34.0 mask 255.255.255.0
R3(config-router)#nei 192.168.13.1 remote-as 100
R3(config-router)#nei 192.168.34.2 remote-as 200
R4配置:
R4#conf t
R4(config)#int s0/0
R4(config-if)#clock rate 64000
R4(config-if)#ip add 192.168.24.2 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int s0/1
R4(config-if)#ip add 192.168.34.2 255.255.255.0
R4(config-if)#clock rate 64000
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#router bgp 200
R4(config-router)#bgp router-id 4.4.4.4
R4(config-router)#net 192.168.24.0 mask 255.255.255.0
R4(config-router)#net 192.168.34.0 mask 255.255.255.0
R4(config-router)#nei 192.168.24.1 remote-as 200
R4(config-router)#nei 192.168.34.1 remote-as 200
查看R4的BGP路由表,我们发现R4到1.1.1.1的网络走的是R2.
R4#sh ip bgp
BGP table version is 9, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal,
r RIB-failure, SStale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i1.1.1.0/24 192.168.12.1 0 100 0 100 i
* i 192.168.13.1 0 100 0 100 i
*>i192.168.12.0 192.168.24.1 0 100 0 i
* i 192.168.13.1 0 100 0 100 i
* i192.168.13.0 192.168.12.1 0 100 0 100 i
*>i 192.168.34.1 0 100 0 i
* i192.168.24.0 192.168.24.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* i192.168.34.0 192.168.34.1 0 100 0 i
*> 0.0.0.0 0 32768 i
此时通过调整Weight来改变选路,使R4到1.1.1.1网络走R3,然后查看R4
R4#conf t
R4(config)#router bgp 200
R4(config-router)#nei 192.168.34.1 weight 100 //设置此邻居传过来的bgp路由的权重设置成100.
R4(config-router)#do clear ip bgp * in //不中断邻居关系,更新bgp路由
R4(config-router)#do sh ip bgp
BGP table version is 12, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal,
r RIB-failure, SStale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i1.1.1.0/24 192.168.12.1 0 100 0 100 i
*>i 192.168.13.1 0 100 100 100 i
* i192.168.12.0 192.168.24.1 0 100 0 i
*>i 192.168.13.1 0 100 100 100 i
* i192.168.13.0 192.168.12.1 0 100 0 100 i
*>i 192.168.34.1 0 100 100 i
* i192.168.24.0 192.168.24.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* i192.168.34.0 192.168.34.1 0 100 100 i
*> 0.0.0.0 0 32768 i
依据调整weight值,R4如今到1.1.1.0网络走了R3,可是这个调整同一时候影响了其它路由条目,这不是我们希望的。可见neighbor x.x.x.x weight xxx
R4(config-route-map)#exit
R4(config)#route-map weight_100 permit 2//、BGP协议路由更新有个前提条件:下一条路由可达,假设不可达,则不会把接受到的路由装入路由表并更新给其余的peer。而通常情况下,下一条路由可达须要依赖IGP,非常少网络会把bgp import到IGP的。
2、依据要求1,EBGP传送路由给peer时缺省会把next-hop设定为自己。
3、IBGP传送路由给peer时缺省不会改变next-hop,为了满足1,AS边界路由器(EBGP/IBGP)在传送路由给IBGP peer时通常须要设置next-hop-self,否则IBGP peer会因路由的下一跳不可达而拒绝IBGP Peer路由。BGP一般仅仅在解析路由的下一跳,为了防止下跳不可达的问题,就用策略了。EBGP给ibgp的时候,一般就要用这个了。但在MPLS中,有时候却不用这个也是能够的。用直连接口建立外部邻居,并把与外部邻居的直连的port执行与as一样的igp,为passive模式.能够解决。实验六、BGP 的MED属性和local Pref
R1的配置:
R1#conf t
R1(config)#int e0/0
R1(config-if)#ip add 192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s1/0
R1(config-if)#clock rate 64000
R1(config-if)#ip add 192.168.13.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router bgp 65501
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#net 192.168.12.0 mask 255.255.255.0
R1(config-router)#net 192.168.13.0 mask 255.255.255.0
R1(config-router)#net 1.1.1.1 mask 255.255.255.255
R1(config-router)#nei 192.168.12.2 remote-as 65501
R1(config-router)#nei 192.168.13.2 remote-as 65502
R1(config-router)#nei 192.168.12.2 next-hop-self
R2配置:
R2#conf t
R2(config)#int e0/0
R2(config-if)#ip add 192.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int s1/0
R2(config-if)#clock rate 64000
R2(config-if)#ip add 192.168.24.1255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.255
R2(config-if)#exit
R2(config)#router bgp 65501
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#net 192.168.12.0 mask 255.255.255.0
R2(config-router)#net 192.168.24.0 mask 255.255.255.0
R2(config-router)#net 2.2.2.2 mask 255.255.255.255
R2(config-router)#nei 192.168.12.1 remote-as 65501
R2(config-router)#nei 192.168.24.2 remote-as 65502
R2(config-router)#nei 192.168.12.1 next-hop-self
R3配置:
R3#conf t
R3(config)#int s1/0
R3(config-if)#clock rate 64000
R3(config-if)#ip add 192.168.13.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int e0/0
R3(config-if)#ip add 192.168.34.1 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.255
R3(config-if)#exit
R3(config)#router bgp 65502
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#net 3.3.3.3 mask 255.255.255.255
R3(config-router)#net 192.168.13.0 mask 255.255.255.0
R3(config-router)#net 192.168.34.0 mask 255.255.255.0
R3(config-router)#nei 192.168.13.1 remote-as 65501
R3(config-router)#nei 192.168.34.2 remote-as 65502
R3(config-router)#nei 192.168.34.2 next-hop-self
R4配置:
R4#CONF T
R4(config)#int e0/0
R4(config-if)#ip add 192.168.34.2 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int s1/0
R4(config-if)#clock rate 64000
R4(config-if)#ip add 192.168.24.2 255.255.255.0
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.255
R4(config-if)#exit
R4(config)#router bgp 65502
R4(config-router)#bgp router-id 4.4.4.4
R4(config-router)#net 192.168.24.0 mask 255.255.255.0
R4(config-router)#net 192.168.34.0 mask 255.255.255.0
R4(config-router)#net 4.4.4.4 mask 255.255.255.255
R4(config-router)#nei 192.168.24.1 remote-as 65501
R4(config-router)#nei 192.168.34.1 remote-as 65502
R4(config-router)#nei 192.168.34.1 next-hop-self
完毕以上配置后应该全网互通。此时我们查看R1的路由表
R1#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRPexternal, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2- OSPF external type 2
i - IS-IS, su - IS-ISsummary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * -candidate default, U - per-user static route
o - ODR, P - periodicdownloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directlyconnected, Ethernet0/0
1.0.0.0/32 is subnetted, 1subnets
C 1.1.1.1 is directlyconnected, Loopback0
C 192.168.13.0/24 is directlyconnected, Serial1/0
2.0.0.0/32 is subnetted, 1subnets
B 2.2.2.2 [200/0] via192.168.12.2, 00:05:53
3.0.0.0/32 is subnetted, 1subnets
B 3.3.3.3 [20/0] via192.168.13.2, 00:02:40
4.0.0.0/32 is subnetted, 1subnets
B 4.4.4.4 [20/0] via192.168.13.2, 00:03:10
B 192.168.24.0/24 [200/0] via192.168.12.2, 00:05:54
B 192.168.34.0/24 [20/0] via192.168.13.2, 00:03:11
R2#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRPexternal, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2- OSPF external type 2
i - IS-IS, su - IS-ISsummary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * -candidate default, U - per-user static route
o - ODR, P - periodicdownloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directlyconnected, Ethernet0/0
1.0.0.0/32 is subnetted, 1subnets
B 1.1.1.1 [200/0] via192.168.12.1, 00:06:57
B 192.168.13.0/24 [200/0] via192.168.12.1, 00:06:57
2.0.0.0/32 is subnetted, 1subnets
C 2.2.2.2 is directlyconnected, Loopback0
3.0.0.0/32 is subnetted, 1subnets
B 3.3.3.3 [20/0] via192.168.24.2, 00:03:54
4.0.0.0/32 is subnetted, 1subnets
B 4.4.4.4 [20/0] via192.168.24.2, 00:35:09
C 192.168.24.0/24 is directlyconnected, Serial1/0
B 192.168.34.0/24 [20/0] via192.168.24.2, 00:35:10
依据路由表发现R1到达3.3.3.3和4.4.4.4网络都是从R3走;R2到达3.3.3.3和4.4.4.4网络都是从R4走。可是我们希望实现分流策略,即R1和R2到达4.4.4.4走R4,同一时候R1与R2到达R3的网络3.3.3.3时走R3出去。此时我们能够使用BGP的MED属性实现要求:
R3#conf t
R3(config)#access-list 1 permit 4.4.4.4 0.0.0.0 //在R3上标示出要施加策略的网络
R3(config)#route-map no4 permit 10 //创建一条同意的route-map策略
R3(config-route-map)#match ip addrees 1 //将策略应用到匹配的网络
R3(config-route-map)#set metric 1 //设置策略改变网络的metric參数
R3(config-route-map)#exit
R3(config)#route-map no4 permit 11 //创建一条空route-map策略,同意其它全部不变
R3(config-route-map)#exit
R3(config)#router bgp 65502
R3(config-router)#nei 192.168.13.1 route-map no4 out //将route-map策略传输给邻居
R3(config-router)#end
R3#clear ip bgp * soft out //不中断BGP邻居关系,向本路由器的全部BGP邻居又一次发送一次BGP路由信息
R4#conf t
R4(config)#access-list 1 permit 3.3.3.3 0.0.0.0
R4(config)#route-map no3 permit 10
R4(config-route-map)#match ip address 1
R4(config-route-map)#set metric 1
R4(config-route-map)#exit
R4(config)#route-map no3 permit 11
R4(config-route-map)#exit
R4(config)#router bgp 65502
R4(config-router)#nei 192.168.24.1 route-map no3 out
R3(config-router)#end
R4#clear ip bgp * soft out
再次查看R1和R2的路由表,此时已经达到我们的目的。
R1#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPFNSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF externaltype 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, Ethernet0/0
1.0.0.0/32 issubnetted, 1 subnets
C 1.1.1.1 isdirectly connected, Loopback0
C 192.168.13.0/24 is directly connected, Serial1/0
2.0.0.0/32 issubnetted, 1 subnets
B 2.2.2.2[200/0] via 192.168.12.2, 00:23:35
3.0.0.0/32 issubnetted, 1 subnets
B 3.3.3.3[20/0] via 192.168.13.2, 00:07:24
4.0.0.0/32 issubnetted, 1 subnets
B 4.4.4.4[200/0] via 192.168.12.2, 00:03:13
B 192.168.24.0/24[200/0] via 192.168.12.2, 00:23:36
B 192.168.34.0/24 [20/0] via 192.168.13.2, 00:08:06
2#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPFNSSA external type 2
E1 - OSPFexternal type 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, Ethernet0/0
1.0.0.0/32 issubnetted, 1 subnets
B 1.1.1.1[200/0] via 192.168.12.1, 00:23:16
B 192.168.13.0/24 [200/0] via 192.168.12.1, 00:23:16
2.0.0.0/32 issubnetted, 1 subnets
C 2.2.2.2 isdirectly connected, Loopback0
3.0.0.0/32 issubnetted, 1 subnets
B 3.3.3.3[200/0] via 192.168.12.1, 00:03:25
4.0.0.0/32 issubnetted, 1 subnets
B 4.4.4.4[20/0] via 192.168.24.2, 00:02:54
C 192.168.24.0/24 is directly connected, Serial1/0
B 192.168.34.0/24 [20/0] via 192.168.24.2, 00:02:55
我们要实现R3与R4到网络1.1.1.1走R3,R3与R4到网络2.2.2.2走R4,也能够使用改动MED的方法。可是我们还有还有一种方法就是BGP的Local Pref 即本地优先。查看R3的路由表:
R3#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPFNSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPFexternal type 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
B 192.168.12.0/24 [20/0] via 192.168.13.1, 00:35:57
1.0.0.0/32 issubnetted, 1 subnets
B 1.1.1.1[20/0] via 192.168.13.1, 00:35:57
C 192.168.13.0/24 is directly connected, Serial1/0
2.0.0.0/32 issubnetted, 1 subnets
B 2.2.2.2[20/0] via 192.168.13.1, 00:35:57
3.0.0.0/32 issubnetted, 1 subnets
C 3.3.3.3 isdirectly connected, Loopback0
4.0.0.0/32 issubnetted, 1 subnets
B 4.4.4.4[200/0] via 192.168.34.2, 00:31:05
B 192.168.24.0/24 [200/0] via 192.168.34.2, 00:31:06
C 192.168.34.0/24 is directly connected, Ethernet0/0
然后进行例如以下改动改变选路:
R3#conf t
R3(config)#access-list 2 permit 1.1.1.0 0.0.0.255
R3(config)#route-map no2 permit 22
R3(config-route-map)#match ip address 2
R3(config-route-map)#set local-preference 200
R3(config-route-map)#exit
R3(config)#route-map no2 permit 23
R3(config-route-map)#exit
R3(config)#router bgp 65502
R3(config-router)#nei 192.168.34.2 route-map no2 out
R3(config-router)#end
R3# clear ip bgp * soft out
R4#conf t
R4(config)#access-list 2 permit 2.2.2.0 0.0.0.255
R4(config)#route-map no1 permit 22
R4(config-route-map)#match ip address 2
R4(config-route-map)#set local-preference 200
R4(config-route-map)#exit
R4(config)#route-map no1 permit 23
R4(config-route-map)#exit
R4(config)#router bgp 65502
R4(config-router)#nei 192.168.34.1 route-map no1 out
R4(config-router)#end
R4#clear ip bgp * soft out
配置完毕后R3和R已经达到我们的目的,此时查看R3的路由表:
R3#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPFNSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPFexternal type 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
B 192.168.12.0/24 [20/0] via 192.168.13.1, 00:08:32
1.0.0.0/32 issubnetted, 1 subnets
B 1.1.1.1[20/0] via 192.168.13.1, 00:08:32
C 192.168.13.0/24 is directly connected, Serial1/0
2.0.0.0/32 issubnetted, 1 subnets
B 2.2.2.2[200/0] via 192.168.34.2, 00:02:08
3.0.0.0/32 issubnetted, 1 subnets
C 3.3.3.3 isdirectly connected, Loopback0
4.0.0.0/32 issubnetted, 1 subnets
B 4.4.4.4[200/0] via 192.168.34.2, 00:08:32
B 192.168.24.0/24 [200/0] via 192.168.34.2, 00:08:34
C 192.168.34.0/24 is directly connected, Ethernet0/0
总结:
MED属性可选非传递,相当于IGP中的Metic值,它告诉另外一个邻居AS中的BGP Router,从哪个入口进来我本地AS的才是最优的:邻居AS中的BGP Router依据这个MED值来选择到达某个网络的最佳路径,MED值越小越好。另外邻居AS不会再将这个MED属性值通告给邻居AS,当邻居AS中的BGP Router将那些网络条目通告给它另外的EBGP邻居时,会将这个MED值删掉MED属性值默觉得0,值越低优先级越高。谨记MED是影响他人的AS。
Local_Pref属性是公认自由决定,仅仅用在和IBGP邻居间 的Update分组更新中,这个属性字段是不会传递给EBGP邻居的,它告诉本地AS中的BGP Router,从哪个出口出去才是最优的:同一个AS中的BGP Router依据这个Local_Pref值来选择到达某个网络的最佳路径当Router要将路由条目通告给其EBGP邻居的时候,会将这个Local_Pref属性删掉。Local-pref属性的默认值为100,值越高优先级越高。谨记Local_Pref是影响自己的AS。
实验七、AS-PATH属性
Internet配置:
Internet#conf t
Internet(config)#int lo0
Internet(config-if)#ip add 202.100.100.1255.255.255.0
Internet(config-if)#exit
Internet(config)#int s0/0
Internet(config-if)#clock rate 64000
Internet(config-if)#ip add 192.168.12.1 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
Internet(config)#int s0/1
Internet(config-if)#clock rate 64000
Internet(config-if)#ip add 192.168.13.1255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#exit
Internet(config)#router bgp 300
Internet(config-router)#bgp router-id1.1.1.1
Internet(config-router)#net 192.168.12.0mask 255.255.255.0
Internet(config-router)#net 192.168.13.0mask 255.255.255.0
Internet(config-router)#net202.100.100.0 mask 255.255.255.0
Internet(config-router)#nei 192.168.12.2remote-as 100
Internet(config-router)#nei 192.168.13.2remote-as 100
Unicom配置:
Unicom#conf t
Unicom(config)#int s0/0
Unicom(config-if)#clock rate 64000
Unicom(config-if)#ip add 192.168.12.2255.255.255.0
Unicom(config-if)#no sh
Unicom(config-if)#exit
Unicom(config)#int s0/1
Unicom(config-if)#clock rate 64000
Unicom(config-if)#ip add 192.168.24.1255.255.255.0
Unicom(config-if)#no sh
Unicom(config-if)#exit
Unicom(config)#router bgp 100
Unicom(config-router)#bgp router-id2.2.2.2
Unicom(config-router)#net 192.168.12.0mask 255.255.255.0
Unicom(config-router)#net 192.168.23.0mask 255.255.255.0
Unicom(config-router)#nei 192.168.12.1remote-as 300
Unicom(config-router)#nei 192.168.24.2remote-as 65501
Telecom配置:
Telecom#conf t
Telecom(config)#int s0/0
Telecom(config-if)#clock rate 64000
Telecom(config-if)#ip add 192.168.13.2 255.255.255.0
Telecom(config-if)#no sh
Telecom(config-if)#exit
Telecom(config)#int s0/1
Telecom(config-if)#clock rate 64000
Telecom(config-if)#ip add 192.168.34.1 255.255.255.0
Telecom(config-if)#no sh
Telecom(config-if)#exit
Telecom(config)#router bgp 100
Telecom(config-router)#bgp router-id 3.3.3.3
Telecom(config-router)#net 192.168.13.0 mask255.255.255.0
Telecom(config-router)#net 192.168.34.0 mask255.255.255.0
Telecom(config-router)#nei 192.168.13.1 remote-as 300
Telecom(config-router)#nei 192.168.34.2 remote-as 65501
Guest配置:
Guest#conf t
Guest(config)#int lo0
Guest(config-if)#ip add 4.4.4.4 255.255.255.0
Guest(config-if)#exit
Guest(config)#int s0/0
Guest(config-if)#clock rate 64000
Guest(config-if)#ip add 192.168.24.2 255.255.255.0
Guest(config-if)#no sh
Guest(config-if)#exit
Guest(config)#int s0/1
Guest(config-if)#clock rate 64000
Guest(config-if)#ip add 192.168.34.2 255.255.255.0
Guest(config-if)#no sh
Guest(config-if)#exit
Guest(config)#router bgp 65501
Guest(config-router)#bgp router-id 4.4.4.4
Guest(config-router)#net 192.168.24.0 mask255.255.255.0
Guest(config-router)#net 192.168.34.0 mask255.255.255.0
Guest(config-router)#net 4.4.4.0 mask 255.255.255.0
Guest(config-router)#nei 192.168.24.1 remote-as 100
Guest(config-router)#nei 192.168.34.1 remote-as 100
完毕配置后,我们来看看Unicom的BGP路由表,你会发现根本学习不到Telecom的 AS 100路由条目,同一时候查看Telecom的BGP路由表也会找不到Unicom的AS100路由条目。
Unicom#sh ip bgp
BGP table version is 8, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, *valid, > best, i - internal,
rRIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 4.4.4.0/24 192.168.24.2 0 0 65501 i
* 192.168.12.0 192.168.12.1 0 0 300 i
*> 0.0.0.0 0 32768 i
*> ,并又一次与其它路由建立关系.然后再次查看Unicom的BGP路由表
Telecom#conf t
Telecom(config)#no router bgp 100
Telecom(config)#router bgp 200
Telecom(config-router)#bgp router-id 3.3.3.3
Telecom(config-router)#net 192.168.13.0 mask 255.255.255.0
Telecom(config-router)#net 192.168.34.0 mask 255.255.255.0
Telecom(config-router)#nei 192.168.13.1 remote-as 300
Telecom(config-router)#nei 192.168.34.2 remote-as 65501
Internet# conf t
Internet(config)#router bgp 300
Internet(config-router)#no nei 192.
Internet(config-router)#no nei 192.168.13.2 remote-as 100
Internet(config-router)#nei 192.168.13.2 remote-as 200
Guest#conft
Guest(config)#routerbgp 65501
Guest(config-router)#nonei 192.168.34.1 remote-as 100
Guest(config-router)#nei192.168.34.1 remote-as 200
Unicom#sh ipbgp
BGP table version is 8, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, *valid, > best, i - internal,
rRIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 4.4.4.0/24 192.168.24.2 0 0 65501 i
* 192.168.12.0 192.168.12.1 0 0 300 i
*> 0.0.0.0 0 32768 i
* 192.168.13.0 192.168.24.2 0 65501 200i
*> 192.168.12.1 0 0 300 i //最优
* 192.168.24.0 192.168.24.2 0 0 65501 i
*> 0.0.0.0 0 32768 i
* 次或多次。
+
匹配+前面字符中1次或多次。
?
匹配?前面字符中0次或1次。
^
匹配字符串的開始。
$
匹配字符串的结束。
_
匹配一个符号,如逗号、左大括号、右大括号、左括号、右括号和空格等符号,在表达式的开头或结尾时还可作起始符、结束符(同^ ,$)。
( )
匹配一个变化的字符或一个独立的匹配,通常和"|"一起使用。
|
逻辑或,交替匹配
[ ]
表示一组字符的集合,假设集合中第一个字符为"^",则表示补集
-
连接符
\
转义操作符,去除特殊字符的特殊意义
实验八、BGP的origin属性
R1配置:
R1#CONF T
R1(config)#int s0/0
R1(config-if)#clock rate 64000
R1(config-if)#ip add192.168.12.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router bgp 100
R1(config-router)#bgprouter-id 1.1.1.1
R1(config-router)#net192.168.12.0 mask 255.255.255.0
R1(config-router)#nei192.168.12.2 remote-as 300
R2配置:
R2#conf t
R2(config)#int s0/0
R2(config-if)#clock rate 64000
R2(config-if)#ip add192.168.23.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router bgp 200
R2(config-router)#exit
R2(config)#int lo0
R2(config-if)#ip add 1.1.1.1255.255.255.0
R2(config-if)#exit
R2(config)#router bgp 200
R2(config-router)#net192.168.23.0 mask 255.255.255.0
R2(config-router)#nei192.168.23.2 remote-as 300
R3配置:
R3#conf t
R3(config)#int s0/0
R3(config-if)#clock rate 64000
R3(config-if)#ip add192.168.12.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int s0/1
R3(config-if)#clock rate 64000
R3(config-if)#ip add192.168.23.2 255.255.255.0
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#router bgp 300
R3(config-router)#net 192.168.12.0mask 255.255.255.0
R3(config-router)#net192.168.23.0 mask 255.255.255.0
R3(config-router)#nei192.168.12.1 remote-as 100
R3(config-router)#nei192.168.23.1 remote-as 200
查看一下R3的BGP路由表:
R3#sh ip bgp
BGP table version is 5, localrouter ID is 192.168.23.2
Status codes: s suppressed, ddamped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e -EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 192.168.12.0 192.168.12.1 0 0 100 i
*> 0.0.0.0 0 32768 i
* 192.168.23.0 192.168.23.1 0 0 200 i
*> 0.0.0.0 0 32768 i
接着分别在R1和R2上进行例如以下改动:
R1(config)#conf t
R1(config)#iproute 1.1.1.0 255.255.255.0 null0 //创建指向空port的静态路由
R1(config)#routerbgp 100
R1(config-router)#redistributestatic //将静态路由重分发到BGP进程
R1(config-router)#doclear ip bgp * soft out
R2#conf t
R2(config)#routerbgp 200
R2(config-router)#net1.1.1.0 mask 255.255.255.0//将Loopback0网络宣告到BGP中
R2(config-router)#do clear ip bgp * soft out
再次观察R3的BGP路由表:
R3#sh ip bgp
BGP table versionis 7, local router ID is 192.168.23.2
Status codes: ssuppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i -IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>1.1.1.0/24 192.168.23.1 0 0 200 i //最优
* 192.168.12.1 0 0 100 ?
* 192.168.12.0 192.168.12.1 0 0 100 i
*> 0.0.0.0 0 32768 i
* 192.168.23.0 192.168.23.1 0 0 200 i
*> 0.0.0.0 0 32768 i
R3#sh ip bgp1.1.1.1
BGP routing tableentry for 1.1.1.0/24, version 7
Paths: (2available, best #1, table Default-IP-Routing-Table)
Advertised to update-groups:
1
200
192.168.23.1 from 192.168.23.1(192.168.23.1)
个值,分别为:
IGP:当使用 bgp network 命令宣告进BGP中。在BGP路由表中起源于IGP的路由用“i”表示
EGP:通过BGP学习到的路由。在BGP路由表中起源于EGP的路由用“e”表示(淘汰了)
incomplete:当路由重分布进BGP时,即无法确定路由的始发者时,在BGP路由表中用“?”表示
这三个值得优先级是:IGP>EGP>Incompelete。
实验九、BGP的路由过滤prefix-list和Distribute-list
R1
R3#sh ip bgp
BGP table version is 8, localrouter ID is 192.168.35.1
Status codes: s suppressed, ddamped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP,? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 4.4.4.0/24 192.168.34.2 0 200 200 i
* i192.168.12.0 192.168.12.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* i192.168.23.0 192.168.23.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* 192.168.34.0 192.168.34.2 0 200 200 i
*> 0.0.0.0 0 32768 i
* 192.168.35.0 192.168.35.2 0 0 300 i
*> 0.0.0.0 0 32768 i
个预先定义的公认的Community,分别为:
no-export—不将路由发给不论什么eBGP邻居,联邦中的小AS会传递
local-as—不将路由发给不论什么eBGP邻居,也不将路由发到联邦的小AS外
no-advertise—不将路由发给不论什么BGP邻居。
internet—能够将路由发给不论什么BGP邻居。
2、Private communities 私有团体,私有Community能够理解为BGP路由的自己定义标签,所以能够通过为BGP路由配置私有Community来配置不论什么自己定义的标签,该标签能够在不论什么时候被利用。将特定的路由设置私有Community,并将其传递给全部邻居,终于全部路由器都对拥有该私有Community的路由配置策略,并且对大量路由设置私有Community仅仅须要在一台路由器上完毕后,发给全部邻居就可以,可见私有Community能够降低网络中路由器对同样路由的匹配工作,这就是标签的效果。私有Community的类型为数字,长度为32bit,但被分为两种格式:单个32bit,如123,666或者2字节长度的AS号码加两字节普通数字,称为AS:NN格式,范围为1:0 至 65534:65535。默认路由器支持单个32bit格式,若要支持AS:NN格式,必须开启BGP-CommunityNew-Format功能。
R1
R1(config-route-map)#match ipadd 1//
R1(config-route-map)#match ipadd 2//
R1(config-route-map)#match ipadd 3//
R1(config-route-map)#match ipadd 4//的空策略,同意全部
R1(config-route-map)#exit
R1(config)#router bgp 100
R1(config-router)#nei192.168.12.2 send-community//、65502)。解决BGP Full-mesh带来的大量IBGP会话的问题.还能够结合路由反射进一步优化
R2#conf t
R2(config-router)#norouter bgp 200 //清除之前的BGP进程
R2(config)#router bgp65501 //创建一个私有的bgp进程
R2(config-router)#bgprouter-id 2.2.2.2
R2(config-router)#bgpconfederation identifier 200 //属于BGP 200的联盟AS
R2(config-router)#nei192.168.12.1 remote-as 100
R2(config-router)#nei192.168.23.2 remote-as 65501
R2(config-router)#net192.168.12.0 mask 255.255.255.0
R2(config-router)#net192.168.23.0 mask 255.255.255.0
R3#conf t
R3(config)#router bgp65501
R3(config-router)#bgprouter-id 3.3.3.3
R3(config-router)#bgp confederationidentifier 200
R3(config-router)#nei192.168.23.1 remote-as 65501
R3(config-router)#bgpconfederation peers 65502 //必须指明与自己同属一个联盟的子AS65502,否则无法建立bgp链接
R3(config-router)#nei192.168.34.2 remote-as 65502
R3(config-router)#net192.168.23.0 mask 255.255.255.0
R3(config-router)#net192.168.34.0 mask 255.255.255.0
R4#conf t
R4(config)#no router bgp200
R4(config)#router bgp65502
R4(config-router)#bgprouter-id 4.4.4.4
R4(config-router)#bgpconfederation identifier 200
R4(config-router)#bgpconfederation peers 65501
R4(config-router)#nei192.168.34.1 remote-as 65501
R4(config-router)#nei192.168.45.2 remote-as 300
R4(config-router)#net192.168.34.0 mask 255.255.255.0
R4(config-router)#net192.168.45.0 mask 255.255.255.0
注意R3路由表:
R3#sh ip bgp
BGP table version is 9,local router ID is 3.3.3.3
Status codes: ssuppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e- EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i1.1.1.0/24 192.168.12.1 0 100 0 100 i
*> 5.5.5.0/24 192.168.45.2 0 100 0 (65502) 300 i
r>i192.168.12.0 192.168.23.1 0 100 0 i
* i192.168.23.0 192.168.23.1 0 100 0 i
*> 0.0.0.0 0 32768 i
* 192.168.34.0 192.168.34.2 0 100 0 (65502) i
*> 0.0.0.0 0 32768 i
r> 192.168.45.0 192.168.34.2 0 100 0 (65502) i
实验十四、BGP的负载均衡
负载平衡同意路由器在多个路径上分配入局和出局业务。 这些路径以静态方式或通过动态协议获得(如RIP、EIGRP、OSPF和IGRP)。条负载均衡的功能,最大16条,1为不支持
R4配置:
R4#conf t
R4(config)#int s0/0
R4(config-if)#clock rate 64000
R4(config-if)#ip add 192.168.34.2255.255.255.0
R4(config-if)#ip router isis
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int e1/0
R4(config-if)#ip add 200.100.100.4255.255.255.0
R4(config-if)#ip router isis
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#router isis
R4(config-router)#net49.0001.4444.4444.4444.00
R4(config-router)#exit
R4(config)#router bgp 200
R4(config-router)#net 192.168.34.0 mask255.255.255.0
R4(config-router)#net 200.100.100.0 mask255.255.255.0
R4(config-router)#nei 192.168.34.1 remote-as100
R4(config-router)#nei 200.100.100.6 remote-as200
R4(config-router)#nei 200.100.100.5 remote-as200
R4(config-router)#exit
R5配置:
R5#conf t
R5(config)#int s0/0
R5(config-if)#clock rate 64000
R5(config-if)#ip add 192.168.35.2255.255.255.0
R5(config-if)#ip router isis
R5(config-if)#no sh
R5(config-if)#exit
R5(config)#int e1/0
R5(config-if)#ip add 200.100.100.5255.255.255.0
R5(config-if)#ip router isis
R5(config-if)#no sh
R5(config-if)#exit
R5(config)#router isis
R5(config-router)#net49.0001.5555.5555.5555.00
R5(config-router)#exit
R5(config)#router bgp 200
R5(config-router)#net 192.168.35.0 mask255.255.255.0
R5(config-router)#net 200.100.100.0 mask255.255.255.0
R5(config-router)#nei 192.168.35.1 remote-as100
R5(config-router)#nei 200.100.100.4 remote-as200
R5(config-router)#nei 200.100.100.6 remote-as200
R6配置:
R6#conf t
R6(config)#int e0/0
R6(config-if)#ip add 200.100.100.6255.255.255.0
R6(config-if)#ip router isis
R6(config-if)#no sh
R6(config-if)#exit
R6(config)#router isis
R6(config-router)#net49.0001.6666.6666.6666.00
R6(config-router)#exit
R6(config)#router bgp 200
R6(config-router)#net 200.100.100.0 mask255.255.255.0.
R6(config-router)#nei 200.100.100.4 remote-as200
R6(config-router)#nei 200.100.100.5 remote-as200
完毕配置,查看R3的路由表,并使用
R3#sh ip rou
Codes: C - connected, S - static, R - RIP, M- mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
B 200.100.100.0/24 [20/0]via 192.168.35.2, 00:00:47
[20/0]via 192.168.34.2, 00:00:20
C 192.168.34.0/24 is directly connected, Serial0/0
C 192.168.35.0/24 is directly connected, Serial0/1
R3#traceroute 200.100.100.6
Type escape sequence to abort.
Tracing the route to 200.100.100.6
1 192.168.35.2 60 msec
192.168.34.2 48 msec
192.168.35.2 8 msec
2200.100.100.6 [AS 200] 56 msec 32 msec 32 msec
第三种:通过多个本地路由器多归到一个ISP时的负载平衡
R7配置:
R7#conf t
R7(config)#int s0/0
R7(config-if)#clock rate 64000
R7(config-if)#ip add 192.168.78.1255.255.255.0
R7(config-if)#ip router isis
R7(config-if)#no sh
R7(config-if)#exit
R7(config)#int s0/1
R7(config-if)#clock rate 64000
R7(config-if)#ip add 192.168.79.1255.255.255.0
R7(config-if)#ip router isis
R7(config-if)#no sh
R7(config-if)#exit
R7(config)#router isis
R7(config-router)#net49.0001.7777.7777.7777.00
R7(config-router)#exit
R7(config)#router bgp 100
R7(config-router)#net 192.168.78.0 mask255.255.255.0
R7(config-router)#net 192.168.79.0 mask255.255.255.0
R7(config-router)#nei 192.168.78.2remote-as 100
R7(config-router)#nei 192.168.79.2remote-as 100
R7(config-router)#maximum-paths ibgp 2 //开启2条IBGP链路负载
R8配置:
R8#conf t
R8(config)#int s0/0
R8(config-if)#clock rate 64000
R8(config-if)#ip add 192.168.78.2255.255.255.0
R8(config-if)#ip router isis
R8(config-if)#no sh
R8(config-if)#exit
R8(config)#int s0/1
R8(config-if)#clock rate 64000
R8(config-if)#ip add 192.168.80.1255.255.255.0
R8(config-if)#ip router isis
R8(config-if)#no sh
R8(config-if)#exit
R8(config)#router isis
R8(config-router)#net49.0001.8888.8888.8888.00
R8(config-router)#exit
R8(config)#router bgp 100
R8(config-router)#net 192.168.78.0 mask255.255.255.0
R8(config-router)#net 192.168.80.0 mask 255.255.255.0
R8(config-router)#nei 192.168.78.1 remote-as100
R8(config-router)#nei 192.168.79.2 remote-as100
R9配置
R9#conf t
R9(config)#int s0/0
R9(config-if)#clock rate 64000
R9(config-if)#ip add 192.168.79.2255.255.255.0
R9(config-if)#ip router isis
R9(config-if)#no sh
R9(config-if)#exit
R9(config)#int s0/1
R9(config-if)#clock rate 64000
R9(config-if)#ip add 192.168.90.1255.255.255.0
R9(config-if)#ip router isis
R9(config-if)#no sh
R9(config-if)#exit
R9(config)#router isis
R9(config-router)#net 49.0001.0000.0000.0000.00
R9(config-router)#exit
R9(config)#router isis
R9(config-router)#net 49.0001.9999.9999.9999.00
R9(config-router)#exit
R9(config)#router bgp 100
R9(config-router)#net 192.168.79.0 mask255.255.255.0
R9(config-router)#net 192.168.90.0 mask255.255.255.0
R9(config-router)#nei 192.168.78.2 remote-as100
R9(config-router)#nei 192.168.79.1 remote-as100
R9(config-router)#nei 192.168.90.2 remote-as 200
R10配置:
R10#conf t
R10(config)#int lo0
R10(config-if)#ip add 10.10.10.10255.255.255.0
R10(config-if)#exit
R10(config)#int s0/0
R10(config-if)#clock rate 64000
R10(config-if)#ip add 192.168.80.2255.255.255.0
R10(config-if)#no sh
R10(config-if)#exit
R10(config)#int s0/1
R10(config-if)#clock rate 64000
R10(config-if)#ip add 192.168.90.2255.255.255.0
R10(config-if)#no sh
R10(config-if)#exit
R10(config)#router bgp 200
R10(config-router)#net 192.168.80.0 mask255.255.255.0
R10(config-router)#net 192.168.90.0 mask255.255.255.0
R10(config-router)#net 10.10.10.0 mask255.255.255.0
R10(config-router)#nei 192.168.80.1 remote-as100
R10(config-router)#nei 192.168.90.1 remote-as100
完毕配置后查看R7的路由表,并使用Tracerout測试
R7#sh ip rou //两条IBGP路径到达10.10.10.0网段
Codes: C - connected, S - static, R - RIP, M- mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
i L1 192.168.90.0/24 [115/20] via192.168.79.2, Serial0/1
C 192.168.78.0/24 is directly connected, Serial0/0
C 192.168.79.0/24 is directly connected, Serial0/1
i L1 192.168.80.0/24 [115/20] via192.168.78.2, Serial0/0
10.0.0.0/24 is subnetted, 1 subnets
B 10.10.10.0 [200/0] via192.168.90.2, 00:01:40
[200/0] via192.168.80.2, 00:01:40
R7#traceroute10.10.10.10
Typeescape sequence to abort.
Tracingthe route to 10.10.10.10
1 192.168.79.2 32 msec
192.168.78.2 56 msec
192.168.79.2 20 msec
2 192.168.80.2 48 msec
192.168.90.2 28 msec
192.168.80.2 28 msec
第四种:非等价负载均衡
R1配置:
R1#conf t
R1(config)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#clock rate 64000
R1(config-if)#ip add 192.168.13.1255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int e1/0
R1(config-if)#ip add 192.168.12.1255.255.255.0
R1(config-if)#no sh
R1(config-if)#exitR1
R1(config)#router bgp 100
R1(config-router)#net 1.1.1.0 mask255.255.255.0
R1(config-router)#net 192.168.12.0 mask255.255.255.0
R1(config-router)#net 192.168.13.0 mask255.255.255.0
R1(config-router)#nei 192.168.12.2 remote-as200
R1(config-router)#nei 192.168.13.2 remote-as200
R1(config-router)#bgp dmzlink-bw//启用bgp依照多链路的带宽的比例进行负载均衡
R1(config-router)#nei 192.168.12.2 dmzlink-bw//通告EBGP邻居的链路带宽
R1(config-router)#nei 192.168.13.2 dmzlink-bw//通告EBGP邻居的链路带宽
R1(config-router)#maximum-paths 2//开启两条路径的负载均衡
R2配置:
R2#conf t
R2(config)#int e0/0
R2(config-if)#ip add 192.168.12.2255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#int e0/1
R2(config-if)#ip add 192.168.24.1255.255.255.0
R2(config-if)#ip router isis
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router isis
R2(config-router)#net49.0001.2222.2222.2222.00
R2(config-router)#exit
R2(config)#router bgp 200
R2(config-router)#net 192.168.12.0 mask255.255.255.0
R2(config-router)#net 192.168.24.0 mask255.255.255.0
R2(config-router)#nei 192.168.12.1 remote-as100
R2(config-router)#nei 192.168.24.2 remote-as200
R2(config-router)#nei 192.168.34.1 remote-as200
R2(config-router)#bgp dmzlink-bw //启用bgp依照多链路的带宽的比例进行负载均衡
R2(config-router)#nei 192.168.24.2send-community extended//IBGP邻居之间传递扩展的属性
R2(config-router)#nei 192.168.12.1 dmzlink-bw//通告EBGP邻居的链路带宽
R3配置:
R3#conf t
R3(config)#int s0/0
R3(config-if)#clock rate 64000
R3(config-if)#ip add 192.168.13.2255.255.255.0
R3(config-if)#ip router isis
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#int e1/0
R3(config-if)#ip add 192.168.34.1255.255.255.0
R3(config-if)#ip router isis.
R3(config-if)#no sh
R3(config-if)#exit
R3(config)#router isis
R3(config-router)#net49.0001.3333.3333.3333.00
R3(config-router)#exit
R3(config)#router bgp 200
R3(config-router)#net 192.168.13.0 mask255.255.255.0
R3(config-router)#net 192.168.34.0 mask255.255.255.0
R3(config-router)#nei 192.168.13.1 remote-as100
R3(config-router)#nei 192.168.34.2 remote-as200
R3(config-router)#nei 192.168.24.1 remote-as200
R3(config-router)#bgp dmzlink-bw
R3(config-router)#nei 192.168.34.2send-community extended
R3(config-router)#nei 192.168.13.1 dmzlink-bw
R4配置:
R4#conf t
R4(config)#int lo0
R4(config-if)#ip add 4.4.4.4 255.255.255.0
R4(config-if)#ip router isis
R4(config-if)#exit
R4(config)#int e0/0
R4(config-if)#ip add 192.168.24.2255.255.255.0
R4(config-if)#ip router isis
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#int e0/1
R4(config-if)#ip add 192.168.34.2255.255.255.0
R4(config-if)#ip router isis
R4(config-if)#no sh
R4(config-if)#exit
R4(config)#router isis
R4(config-router)#net49.0001.4444.4444.4444.00
R4(config-router)#exit
R4(config)#router bgp 200
R4(config-router)#net 4.4.4.0 mask255.255.255.0
R4(config-router)#net 192.168.24.0 mask255.255.255.0
R4(config-router)#net 192.168.34.0 mask255.255.255.0
R4(config-router)#nei 192.168.24.1 remote-as200
R4(config-router)#nei 192.168.34.1 remote-as200
R4(config-router)#bgp dmzlink-bw//启用bgp依照多链路的带宽的比例进行负载均衡
R4(config-router)#maximum-paths ibgp 2//开启两条IBGP的负载均衡
完毕以上配置后,R1到R4的4.4.4.0网段,与R4到R1的1.1.1.0网段同样现了非等价负载均衡。
R1#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPFNSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPFexternal type 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
C 192.168.12.0/24 is directly connected, Ethernet1/0
1.0.0.0/24 issubnetted, 1 subnets
C 1.1.1.0 isdirectly connected, Loopback0
C 192.168.13.0/24 is directly connected, Serial0/0
4.0.0.0/24 issubnetted, 1 subnets
B 4.4.4.0 [20/0] via 192.168.13.2,00:10:20
[20/0] via 192.168.12.2,00:10:20
B 192.168.24.0/24[20/0] via 192.168.13.2, 00:10:20
[20/0] via 192.168.12.2, 00:10:20
B 192.168.34.0/24 [20/0] via 192.168.13.2, 00:10:20
[20/0] via 192.168.12.2, 00:10:21
R4#sh ip rou
Codes: C - connected, S - static, R - RIP, M - mobile, B- BGP
D - EIGRP,EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPFNSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPFexternal type 1, E2 - OSPF external type 2
i - IS-IS,su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-ISinter area, * - candidate default, U - per-user static route
o - ODR, P -periodic downloaded static route
Gateway of last resort is not set
i L1 192.168.12.0/24 [115/20] via 192.168.24.1,Ethernet0/0
1.0.0.0/24 issubnetted, 1 subnets
B 1.1.1.0 [200/0] via 192.168.13.1,00:36:29
[200/0] via 192.168.12.1,00:36:29
i L1 192.168.13.0/24 [115/20] via 192.168.34.1,Ethernet0/1
4.0.0.0/24 issubnetted, 1 subnets
C 4.4.4.0 isdirectly connected, Loopback0
C 192.168.24.0/24 is directly connected, Ethernet0/0
C 192.168.34.0/24 is directly connected, Ethernet0/1
说明:
1.特性描写叙述
通过利用BGP的Link Bandwidth特性,我们能够在AS边界路由器外部链路带宽不等价的情况下,实现BGP路由的非等价负载均衡。该特性通过在BGP进程的IPv4或VPNv4地址族中使用bgp dmz-bandwidth命令激活。这个特性搭配BGP multipath特性,就可以实现非等价负载均衡。
BGP Link Bandwidth特性用于在扩展Community属性中通告一条AS出口链路的带宽。
这个特性配置在一台AS边界路由器上,指向其eBGP邻居,那么此时该特性所描写叙述的就是该路由器与其eBGP邻居之间的链路带宽。并且该链路带宽信息(使用扩展Community描写叙述)除了AS边界路由器自己用(用于本地的非等代价负载均衡),还能够向AS内的iBGP邻居传递,当然,前提是得配置send-communityextended.
2.BGP Link Bandwidth的前提条件
需先激活maximum-paths特性
当要向iBGP邻居通告Link Bandwidth特性时,需send-community extended
CEF或dCEF必须在全部參与该特性的路由器上打开
3.BGP Link Bandwidth特性的限制
该特性仅仅能配置在BGP进程的IPv4或VPNv4下
BGP仅仅能够在Link Bandwidth Community中通告与eBGP邻居直连的链路(接口)带宽
在IPv4及VPNv4地址族中,iBGP及eBGP负载均衡都是支持的;可是eiBGP负载均衡却仅仅能在VPNv4地址族中才干够支持,也就是iBGP与eBGP的负载均衡。
注意:当使用BGP路由协议接入多ISP宿主时,是没有办法实现负载均衡的,由于BGP仅仅在从不同AS那里识别到的BGP路由中选择一条到目的地的最佳路径
实验总结:(重要)
BGP选路优先原则:
优先选取具有最大权重(weight)值的路径,权重是Cisco专有属性。
假设权重值同样,优先选取具有最高本地优先级的路由。
假设本地优先级同样,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由。
假设本地优先级同样,并且没有源自本路由器的路由,优先选取具有最短AS路径的路由。
假设具有同样的AS路径长度,优先选取具有最低源码(IBGP<EBGP<INCOMPLETE)的路由。
假设起源码同样,优先选取具有最低MED值的路径。
假设MED都同样,在EBGP路由和联盟EBGP路由中,首选EBGP路由,在联盟EBGP路由和IBGP路由中,首选联盟EBGP路由。
假设前面全部属性都同样,优先选取离IGP邻居近期的路径。
假设内部路径也同样,优先选取最低BGP路由器ID的路径
CCNP路由实验之七 动态路由之BGP的更多相关文章
- CCNP路由实验之六 动态路由协议之IS-IS
CCNP路由实验之六动态路由协议之IS-IS 动态路由协议能够自己主动的发现远程网络.仅仅要网络拓扑结构发生了变化.路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络.还能够在当前网络 ...
- CCNP路由实验之九 路由策略
CCNP路由实验之九 路由策略 路由器在公布与接收路由信息时,可能须要实施一些策略.以便对路由信息进行过滤,比如仅仅接收或公布满足一定条件的路由信息. 一种路由协议可能须要引入其它的路由协议发现 ...
- CISCO实验记录五:静态路由与RIP动态路由
一.实验要求 1.创建设备间静态路由 2.检查三层连通性 3.清空路由,使用RIP创建动态路由 4.检查路由表 二.实验操作 1.创建设备静态路由 #iip route 192.168.1.0 255 ...
- Cisco基础(二):三层交换vlan间通信、多交换机vlan间通信、三层交换配置路由、RIP动态路由配置、三层交换配置RIP动态路由
一.三层交换vlan间通信 目标: VLAN实现了广播域的隔离,同时也将VLAN间的通信隔离了.三层交换技术使得VLAN间可以通信. 通过三层交换实现VLAN间通信 方案: 为了解决了传统路由器低速. ...
- 【原创】一篇学会vue路由配置 、 动态路由 、多层路由(实例)
先来看看效果图: 为了方便讲解,我没有使用vue脚手架,如果需要的,可以留言跟我要.不多说开工: 首先,html先组上 <div id="app"> <div&g ...
- Vue 路由配置、动态路由
1.安装 npm install vue-router --save / cnpm install vue-router --save 2.引入并 Vue.use(VueRouter) (main.j ...
- react动态路由以及获取动态路由
业务中会遇到点击列表跳转到详情页, 1.在index.js修改我们的跟组件 新建router2的文件 import React from 'react' import { HashRouter as ...
- 在ensp上利用单臂路由实验VLAN间路由
我们为什么要设置单臂路由? 因为我们要解决不同vlan,不同网络的PC机间的通信问题~ 那它为啥叫单臂路由嘞? 单臂路由的原理时通过一台路由器,使vlan间互通数据通过路由器进行三层转发,如果在路由器 ...
- Spring Cloud (十三) Zuul:静态路由、静态过滤器与动态路由的实现
前言 本文起笔于2018-06-26周二,接了一个这周要完成的开发任务,需要先等其他人的接口,可能更新的会慢一些,还望大家见谅.这篇博客我们主要讲Spring Cloud Zuul.项目地址:我的gi ...
随机推荐
- PHP中出现BOM字符\ufeff,PHP去掉诡异的BOM \ufeff
研究一个PHP项目的时候,今天项目突然打不开了. 前几天还好好的,用Chrome看了下Response的内容,AJAX页面和普通HTML页面内容前面有一个红色的点. 鼠标移上去,提示"\uf ...
- 【u123】最大子段和
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 给出一段序列,选出其中连续且非空的一段使得这段和最大. [输入格式] 输入文件maxsum1.in的第 ...
- stl变易算法(一)
C++ STL的变易算法是一组可以改动容器元素数据的模板函数,可进行序列容器的复制.交换.替换.填充.移除.旋转等.这些算法对迭代器有较高的要求.详细的迭代器类型随各个算法而定,或向前迭代器.或双向迭 ...
- php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)
php面试题7(1.unset变量是删除栈变量,并不删除堆变量)(2.php爬虫特别简单: 可以file_get_contents和直接fopen) 一.总结 1.unset变量是删除栈变量,并不删除 ...
- PatentTips - Sprite Graphics Rendering System
BACKGROUND This disclosure relates generally to the field of computer graphics. More particularly, b ...
- Android 升级到Android Studio2.2 后打不开以前版本的项目
1.找到 build.gradle 用记事本打开,修改如下: // Top-level build file where you can add configuration options commo ...
- ubuntu14.04下unix网络编程 环境的配置
在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...
- Hive的日期函数
1.unix时间戳转时间函数 语法: from_unixtime(bigint unixtime[, string format]) 返回值: string 说明: 转化UNIX时间戳(从1970-0 ...
- 微信小程序开发实战视频教程发布
昨日(9月23),腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间尝试并发布了这7个小视频教程,入门足够了.... 各位免费拿去,慢慢享用: 链接: http ...
- Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画
原文:Expression Blend 的点滴(2)--利用可视化状态创建神奇翻转动画 首先,来看下实现后的效果: 关于VisulaState VisualState 指定控件处于特定状态时的外观.例 ...