路由篇 BGP3 方法、peergroup、黑洞、联盟

一、先总结一下BGP怎么学(磨刀不误砍柴工哈):
先看BGP的特性ferture,然后再看这些ferture在数据包传递过程中会产生哪些问题,接下来就看怎么解决这些问题,以实现数据包的正确传递!
1:BGP靠TCP进行连接,故第一步要保证三层IP的可达性;
2:BGP以单播建邻居,故须手工指邻居;
3:BGP有源检测特性,故邻居地址须和发送更新地址保持一致(至少保证一条TCP连接);
4:EBGP邻居open包的TTL值为1(其他包呢),如以环回接口建邻居须将它改大;
5:BGP要关自动汇总吧,这个是因为什么?
6:BGP有同步规则,这会导致传输AS不传递路由条目(从外部AS传过来的条目不再传向其他AS)[这个同步关了会造成路由黑洞,不关路由器承受不住,怎么折衷?传输AS的路由器性能应该不错吧,为什么还要关同步?];
7、BGP有水平分割,在同一个AS内路由条目只传一跳,故要求IBGP全互联或者是做路由反射;
8、BGP的下一跳是以AS计数,故为了保证数据包能够被正确封装,应该将下一跳改成物理上的下一跳(这个如果BGP和IGP同步了就不用打nexthop-self命令了吧?)
回头看看,这好像都是从BGP到数据包的思路,那么还可以从数据包到BGP吧。嗯,两种思路!回头再总结一下!
二、next-hop属性
1、针对EBGP邻居传递过来的条目;
2、非MA网络上只须在连接外部AS的边缘路由器上打相应命令;
3、MA网络上的next-hop,如图:
(1)A向AS65000传递路由时无须更改下一跳
(2)第三方下一跳:
前提:以直连物理口建立邻居
问题:AS65000在向A传递外部AS路由条目时会先经C到B然后到A,并且A上这种条目的下一跳地址会显示为B,这在MA网络中并不是数据包传递的最佳路径(完全可由C直接到A)。BGP解决这种问题的具体方法是怎么样的?没弄明白,还请老师指教!!!
三、peer-group
1、作用:简化IBGP邻居配置任务;减少资源消耗(只对peer-group建立缓存)
2、范围:针对IBGP邻居
3、命令:
R2(config-router)#neighbor PG peer-group 建立peer-group
R2(config-router)#neighbor PG remote-as 123 设置peer-group所属AS
R2(config-router)#neighbor PG update-source lo0 指明更新源
R2(config-router)#neighbor PG next-hop-self 修改下一跳
R2(config-router)#neighbor 1.1.1.1 peer-group PG 针对1.1.1.1这个邻居调用peer-group
R2(config-router)#neighbor 3.3.3.3 peer-group PG 调用
4、不足:一旦所有的IBGP邻居都用peer-group建立,就不能针对单个IBGP邻居实施出站策略(入站策略还是可以的)
四、邻居状态
1、idle:在这上状态下BGP会查路由表,看有没有去往建立邻居地址的路由,如果有的话则进行TCP的连 接,一直处于此种状态则表明找不到去住邻居地址的路由,无法完成数据帧的封装;
2、Active:有路由了,这时尝试建立TCP的连接,发出TCP请求;
3、Connect:被请求的一方才会有这种状态(端口为179的一方),出现这种状态表示TCP连接已经建立;
4、Open sent:发送BGP的路由信息
5、Open confirm:路由信息发送完毕,邻居关系快要协商成功了
6、Established:邻居关系建立,开始为数据包提供正常的路由.
注意:一会显示idle一会显示active,则有以下原因:
发出去的包邻居没有回包;
指的邻居地址不对;
AS号码错误.
五、BGP的认证
1、只支持MD5认证
2、非对称式密钥,只发消息摘要,不发密码本身
3、针对每个TCP段、每个路由更新进行认证
4、命令
R3(config-router)#neighbor 1.1.1.1 password 0 cisco
六、查看写路由表失败的路由:
  show ip bgp rib-failure 可以看到失败的原因 
七、BGP会话的清除方式
作用:让BGP立刻执行所实施的策略
  1、硬清除:直接清除邻居关系重新建;
(1)R3#clear ip bgp *
清除所有BGP的会话,邻居关系重新从IDLE状态开始协商
(2)R3#clear ip bgp 1.1.1.1
清除单个的BGP邻居
2、软清除:清除BGP路由重新发或者重新收
(1)R3#clear ip bgp * soft out 只针对out方向清,in方向通常清不了(原因?)
(2)R3#clear ip bgp 1.1.1.1 soft out
(3)清入站路由更新
R3(config-router)#nei 2.2.2.2 soft-reconfiguration inbound
R3#clear ip bgp * soft in
或者到邻居端清出站更新
这个好像没多大效果啊,没看出来
3、等待BGP的刷新,让它自己清
八、路由黑洞
1、BGP水平分割带来的黑洞
(1)原因:IBGP的水平分割
(2)解决方法:IBGP全互联、路由反射器、BGP联盟
(3)查看向邻居通告了哪些BGP路由
R2#show ip bgp neighbors 1.1.1.1 advertised-routes
BGP table version is 4, local router ID is 2.2.2.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
*> 4.1.1.0/24 202.100.0.1 0 0 400 i
2、不同步带来的路由黑洞
(1)原因:没有路由
(2)解决:同步
九、路由反射器
1、路由反射簇:路由反射器和它的客户端所在的范围,可以看作是一个逻辑上的路由器,但这个路由器只有RR知道,非RR只是一个普通的IBGP路由器。
2、工作原理
卷二上是这么说的
(1)从客户端发送过来的BGP路由RR会发送给其他客户端,会反射给其他非客户端,会反射给EBGP邻居;
(2)从非客户端发送过来的BGP路由RR会发送给它的客户端,会发送给它的EBGP邻居,但不会发送给其他的非客户端;
(3)从EBGP邻居发送过来的BGP路由RR会发送给它的客户端、非客户端
但是这很废话,所以事实上我们可以把路由反射器理解为遵从BGP规则的一个逻辑路由器。
3、应用:在IBGP之间打破BGP水平分割原则传递BGP路由(前提:该路由在RR上能够被优化--下一跳可达)
4、配置:
R1(config-router)#nei 3.3.3.3 route-reflector-client 指明客户端
R1(config-router)#bgp cluster-id ? 配置簇ID(可选)
<1-4294967295> Route-Reflector Cluster-id as 32 bit quantity
A.B.C.D Route-Reflector Cluster-id in IP address format
有关簇ID:在BGP选路的时候会用到,经过的簇越多,簇ID越长(?),越不优选。
5、实践:中间的路由器做双向的反射,如果存在多台中间路由器,则这些中间路由器都得做路由反射器,以最终将BGP路由传递出去
十、BGP联盟
1、含义:大AS含小AS
2、联盟AS号:通常为私有AS号
3、角色:联盟IBGP、联盟EBGP
4、做法:将IBGP域用私有AS号划成几个小AS,对外以大AS宣告
5、问题:
(1)一台路由器上只能起一个BGP进程,私有AS号又不能在公网上识别,如何与外部AS建立EBGP邻居?
(2)联盟EBGP之间邻居关系的建立:须用到EBGP多跳属性
(3)联盟EBGP路由器都宣称自己是大AS,但是又不是属于同一个AS,怎么建立邻居?
(4)下一跳的问题
6、解决:
(1)向外宣告大AS(注意:大AS内所有路由器都得打这条命令);
R3(config-router)#bgp confederation identifier 123
(2)在联盟EBGP对等体上修改更新源和TTL值;
(3)不向联盟AS宣告自己的大AS号
R3(config-router)#bgp confederation peers 65100 65200
(4)修改下一跳,联盟BGP之间也得这样做
7、变与不变:
(1)变:AS path
路由条目标识
(2)不变:从联盟EBGP学来的路由条目的管理距离仍为200
8、应用:打破BGP水平分割传递路由
变态了一把:中间的路由器上不宣告自己的大AS号,结果报错,公网上的BGP路由的AS path中出现了私有AS号!

本文转自:http://bbs.technow.cn/read.php?tid=317&fpage=4

posted @ 2011-08-29 23:22  为极客而生  阅读(435)  评论(0编辑  收藏  举报