CCIE实验备考之BGP(1)
版权声明:原创作品,谢绝转载!否则将追究法律责任。 |
版权声明:原创作品,谢绝转载!否则将追究法律责任。 ![]() 3.对bgp不够了解
4.as间带宽太小 ---------------------------------------------------------------------------------- bgp的防环机制:bgp是通过as-path来做路由策略,到达目标网络时每经过一个AS,就把AS号记录到它的path中,如果路由器收到一个路径中含有他本地的AS号,这就出现了环路。 ---------------------------------------------------------------------------------- bgp表只能看到AS树,也就是到达目的网段所经过的AS号,以及下一跳等信息,而IGP表是显示域内拓扑结构,可以通过命令show ip bgp命令查看,*表示这条路由可得,>表示这是最佳的,i是域内的网段 ---------------------------------------------------------------------------------- bgp可以支持负载均衡,一般情况下,当某个特殊目的网络有并列的,等开销的路径时,cisco缺省执行ebgp只选择一条路径,可以使用命令 maximum-paths 改变,注意只能对ebgp有效 --------------------------------------------------------------------------------- bgp表: 邻居表:列出周围的邻居,可以是直连也可以不直连 转发表:从邻居那学习到的,包含到达某个目的的多条路径 路由表:最好的路径 ---------------------------------------------------------------------------------- bgp具有4种包的类型: open:hello,是我 keepalive: 我还活着, update: 有新东西了, notification:我不和你玩了 bgp的open包:发送bgp版本(默认为V4),as号,holdtime(180s),router-id(最高的loopback ip值), 其它的操作特性 keepalive:保持时间,默认位60秒,是不可靠传输 update:包括到达目标网络的路径和属性network layer reachability information(NLRI)网络层可靠信息,公布ip前缀和前缀的字节数 path attribute:属性:起点,as路径,邻居,as间的度等 withdrawn routes:不可达的路由撤消的目的地址字节组(长度和前缀) notification:出现错误,监测到后断开连接并发送通知给对方 ---------------------------------------------------------------------------------- bgp和isis一样以链路为边界,ebgp的peer邻居在不同的as之间的路由器,必须要求直连,ibgp的邻居peer要求在同一as中的路由器,不要求直连的,但必须建立tcp连接bgp路由一般不会再发布到igp中去,因为bgp的内容太庞大,但可以使用静态路由或默认路由,但igp会再发布 到bgp中,以便告诉外部如何进入内部网络 ---------------------------------------------------------------------------------- bgp的启动机制: 1,idle states:开始状态 2,connect state:连接状态,如果建立连接成功,向邻居发open消息,转入open状态。如果不成功,继续监听发出的连接,重置计时器并转移到active状态。如果在连接状态下,连接计时器超时后将重新开始,并再次与邻居建邻居 3,active激活状态:试图与邻居建立tcp连接的过程 4,open send状态:open消息发送状态,发送open消息,bgp等待邻居发来的open消息 收到open消息,发现差错,将发notification消息并转入idle状态 收到open消息,没有发现差错,将发送keepalive消息并将此计时器清零 收到tcp断开消息,本地断开bgp连接,重置connect计时器,转入active状态 5,open confirm状态:open消息确认状态,等待一个keepalive消息或notification消息 收到一个keepalive消息,转移到establish状态 收到一个notification消息,转入idle状态,断开tcp连接 holdtime超时,发送notification并断开连接,转入idle状态 ![]() 00:47:37: BGP: 2.2.2.2 OPEN has ROUTE-REFRESH capability(new) for all address-families
00:47:37: BGP: 2.2.2.2 went from OpenSent to OpenConfirm 00:47:37: BGP: 2.2.2.2 send message type 1, length (incl. header) 45 00:47:37: BGP: 2.2.2.2 send message type 4, length (incl. header) 19 00:47:37: BGP: 2.2.2.2 rcv message type 4, length (excl. header) 0 00:47:37: BGP: 2.2.2.2 went from OpenConfirm to Established 00:47:37: %BGP-5-ADJCHANGE: neighbor 2.2.2.2 Up ---------------------------------------------------------------------------------- ibgp的水平分割:在一个as中,从ibgp学习到的路由绝对不会传递给其它的邻居,igp是基于端口的水平分割,而ibgp是基于邻居的水平分割 ---------------------------------------------------------------------------------- ibgp的全网连接:在一个as中,bgp的邻居路由器通常要求全互连,但是如果有n个路由器,就必须建立n(n-1)/2个连接,将会加大巨大的成本,如果不建立全互连,将会出现丢包的现象。 解决方法:将bgp重分布到igp中,但我们一般不建议这么做。加入到远端的静态路由,然后再发布到igp中 ---------------------------------------------------------------------------------- bgp的属性 公认必遵: origin:可信度,0-igp学到,1-egp学到,3-incomplete其它手段学到,igp>bgp>重分布 as-path:as路径,逐级逐级的叠加,如果发现有自己的as存在,就有可能出现环路 next-hop:下一跳路由器的地址, 如果宣告路由器和接收路由器在不同as中,下一跳为正在宣告的路由器接口的ip 如果宣告路由器和接收路由器在同一个as中,并且更新的目的地也在同一as中,下一跳为宣告路由的邻居的ip 如果宣告路由器和接收路由器是内部peer,但更新消息指向不同AS,下一跳为学习到路由的外部peer的ip 公认可遵: local-pref:本地优先级,只在本地有效,不会传到其他区域,值越高优先级越高,默认为100,是控制流出区域的 automic_aggre:警告下游路由器聚合时产生路径信息丢失,可设置属性aggregate通告 可选传输: aggregator:通告汇聚点,采用rid作为汇聚的地址 community:团队,相当于一个模板,一组成员使用相同的策略,由4个字节构成,前面两个是as号,后面两个定义表示符,cisco正好反过来,你可以用ip bgpcommuity new-format修改 NO_EXPORT:允许在邻居as内公布但不允许邻居as在发布其它的as NONE:删除现有的团队属性 NO_ADVERTISE:不在ibgp邻居间传递带有该属性的路由 DELETE:值删除匹配特定团队列表的属性 可选非传递: originator_id:由rp使用,一个32比特的值,记录本地as离路由发起者的rid cluster_list:路由反射簇的序号,由rp路由反射器使用,如果一个簇中有多个rp,需要bgp cluster-id手工指定id multi_exit_disc:用于影响流入as的数据,它允许一个as将其首选入口通知给另一个as,可以在as间传输,最低med值被选择,默认为0 cisco专有:weight:权重,离开as的报文,来选择那一条。它是不传递,从peer学到的所有路由器的权重值为0,由本地路由其产生的所有路由的权重值为32768,值越高越会被选择 r5#show ip bgp
BGP table version is 21, local router ID is 5.5.5.5 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.0/24 196.1.1.4 0 65101 65100 i *> 2.2.2.0/24 196.1.1.4 0 65101 i *> 4.4.4.0/24 196.1.1.4 0 0 65101 i *> 5.5.5.0/24 0.0.0.0 0 32768 i ---------------------------------------------------------------------------------- RIB:BGP路由信息库 Adj-RIB-IN Loc-RIB Adj-RIB-OUT ----------------------> | ------------------------- | ----------------------> 判断优先级,做出选择 进入 最优的路由路径 适合的路由 出 --------------------------------------------------------------------------------- bgp选路原则: |权重weight(越大越好) |local-pref本地优先级(越大越好) |本地路由优先(0.0.0.0) |as-path(越短越好) | 起源(igp>bgp>重分布) | MED (越低越好) | ebgp>ibgp | 下一跳igp度量值(越低的) | 越老的路径会被选择 | bgp邻居的RouterID(越小越好) > ip地址(最小的) ---------------------------------------------------------------------------------- ibgp和igp的同步:一个从ibgp邻居学习到的路由信息在进入igp表或发布给其他bgp对等体之前,igp必须知道这条路由信息,否则不会发布 r2#show ip bgp
BGP table version is 7, local router ID is 172.16.3.2 Status codes: s suppressed, 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
* i100.100.100.0/24 172.16.4.5 0 100 0 300 i r>i172.16.1.0/24 172.16.2.1 0 100 0 i * i172.16.2.0/24 172.16.2.1 0 100 0 i *> 0.0.0.0 0 32768 i * i172.16.3.0/24 172.16.3.3 0 100 0 i *> 0.0.0.0 0 32768 i r>i172.16.4.0/24 172.16.3.3 0 100 0 i * i200.200.200.0 172.16.1.4 0 100 0 200 i r2#show ip route 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, 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
172.16.0.0/24 is subnetted, 4 subnets
R 172.16.4.0 [120/1] via 172.16.3.3, 00:00:20, Serial0 R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:05, Serial1 C 172.16.2.0 is directly connected, Serial1 C 172.16.3.0 is directly connected, Serial0 r2中的bgp表中有100.100.100.0和200.200.200.0网络,虽然它们都是全网互连,但它的ibgp和igp没有同步,所以它无法将路由发布给其他的peer,这样,r4和r5都没有学到对方的路由 解决方案: 1,将bgp重发布到igp中,一般我们不建议 我们分别在r1和r3上做重发布操作(只需要在边界上) 如: router rip redistribute bgp 100 metric 5 r2#show ip route
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, 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
R 200.200.200.0/24 [120/5] via 172.16.2.1, 00:00:14, Serial1
100.0.0.0/24 is subnetted, 1 subnets R 100.100.100.0 [120/5] via 172.16.3.3, 00:00:07, Serial0 172.16.0.0/24 is subnetted, 4 subnets R 172.16.4.0 [120/1] via 172.16.3.3, 00:00:07, Serial0 R 172.16.1.0 [120/1] via 172.16.2.1, 00:00:14, Serial1 C 172.16.2.0 is directly connected, Serial1 C 172.16.3.0 is directly connected, Serial0 r5#show ip bgp
BGP table version is 9, local router ID is 100.100.100.100 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path
*> 100.100.100.0/24 0.0.0.0 0 32768 i *> 172.16.1.0/24 172.16.4.3 0 100 i *> 172.16.2.0/24 172.16.4.3 0 100 i *> 172.16.3.0/24 172.16.4.3 0 0 100 i * 172.16.4.0/24 172.16.4.3 0 0 100 i *> 0.0.0.0 0 32768 i *> 200.200.200.0 172.16.4.3 0 100 200 i 2.ibgp邻居全网连接,关闭自动同步的功能 router bgp 100 no syn ------------------------------------------------------------------------------- 路由反射器RP: 在大型网络中,as间要建立一个全互连的关系,一是成本大,二是工作量大,要有n台路由器,你要建立n*(n-1)/2,当你使用RP技术,提供了C/S机制,建立邻居的条目是N-1。 规则: 1,如果路由是从非客户的 IBGP对等学习到的,只将它反射给客户 2,如果路由是从客户处学习到的,将它反射给除了发起该路由的客户外所有的客户以及非客户 3,如果路由是从 EBGP邻居学来的,将它反射给所有的客户和非客户 举例:只需要在服务端设置就可以了
router bgp 100 no synchronization bgp log-neighbor-changes network 172.16.2.0 mask 255.255.255.0 network 172.16.3.0 mask 255.255.255.0 neighbor 172.16.2.1 remote-as 100 neighbor 172.16.2.1 route-reflector-client neighbor 172.16.3.3 remote-as 100 neighbor 172.16.3.3 route-reflector-client no auto-summary ---------------------------------------------------------------------------------- 启用bgp进程 router bgp AS号 一个路由器只能启用一个bgp实例,不会把路由器放入到多个bgp中 ---------------------------------------------------------------------------------- 建立对等体关系: 1)neighbor 邻居地址/邻居组名 remote-as AS号 ebgp邻居必须是路由器直连的那个地址,如果是ibgp邻居,就不一定是直连的,可以是as中任意一个地址,但必须保障tcp连通。 ibgp一般用loopback端口来作为邻居的地址 2)neighbor 邻居地址/邻居组名 shutdown 暂时的邻居关系不可用,但邻居关系并没有删除,用于维护和策略 3)neighbor 邻居地址 update-source loopback接口 如果用物理接口指定为邻居的地址,必须要求源地址匹配,如果不匹配会出现数据包丢失的问题,或者网络出现问题,源地址出现问题,这样邻居关系将不稳定,为了保障邻居关系稳定,一致不变,最好用loopback接口,对于ebgp邻居来说,必须还要额外加命令(还必须能够访问到,比如使用静态路由或者路由) 4)neighbor 邻居地址 ebgp-multihop 跳数值(默认为255) 5)neighbor 邻居地址 next-hop-self ebgp到ibgp,下一跳地址是不会改变的,这样对于像帧中继网络(hub-to-spoke)来说,可能会造成网络不可达的问题,这时候需要修改下一跳地址 6)neighbor 对等体组名 peer-group 创建对等体组 7)neighbor 邻居地址 peer-group 对等体组名 添加成员到对等体组中 ---------------------------------------------------------------------------------- 宣告网络: network 网络号 mask 子网掩码 bgp支持vlsm和cidr,所以网络和子网掩码可以使用VLSM,但是要注意宣告的网络如果和接口的IP地址掩码不匹配,将不会进入到BGP表中,如果希望能进入BGP表,需要添加一条命令如:ip route 192.1.1.0 255.255.255.0 null0,这个命令还可以进行网络的汇总 -------------------------------------------------------------------------------- ![]() bgp log-neighbor-changes
network 200.200.200.0 redistribute static
neighbor 10.1.1.9 remote-as 100 default-information originate no auto-summary ! ip route 0.0.0.0 0.0.0.0 Ethernet0 r4#show ip bgp BGP table version is 7, local router ID is 200.200.200.201 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path
*> 0.0.0.0 0.0.0.0 0 32768 ? *>i192.168.193.0 10.1.1.9 0 100 0 50 i *>i192.168.194.0 10.1.1.9 0 100 0 50 i *>i192.168.196.0 10.1.1.9 0 100 0 200 i *>i192.168.198.0 10.1.1.9 0 100 0 200 i *> 200.200.200.0 0.0.0.0 0 32768 i r3#show ip route
Codes: C - connected, S - static, I - IGRP, 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, E - EGP i - IS-IS, 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 10.1.1.10 to network 0.0.0.0
...... 10.0.0.0/30 is subnetted, 3 subnets C 10.1.1.8 is directly connected, Serial1 C 10.1.1.0 is directly connected, Serial0 C 10.1.1.4 is directly connected, Ethernet0 B* 0.0.0.0/0 [200/0] via 10.1.1.10, 00:03:43 B 192.168.192.0/21 [200/0] via 0.0.0.0, 02:23:03, Null0 ---------------------------------------------------------------------------------- 本文出自 “无聊生活,积极面对” 博客,谢绝转载! 本文出自 51CTO.COM技术博客 |






hello_me
博客统计信息
热门文章
最新评论
友情链接
