BGP:边界网关路由协议
工作于AS之间;标准的EGP协议;
AS:自治系统?? 0-65535? 其中1-64511 公有? 64512--65535 私有
EGP协议的特征:
1、可控性
2、可靠性
3、AS-BY-AS
BGP特点:
BGP的数据包类型:所有的数据包均基于TCP会话传递
BGP的工作过程:
名词注解:
EBGP:不同AS间的邻居关系,通过该种邻居学习到的条目管理距离为20
IBGP:同一AS内的邻居关系,通过该种邻居学习到的条目管理距离为200 华为 255
BGP的防环机制----水平分割
2、IBGP水平分割-----从一个IBGP邻居处学习到的条目不能传递给下一个IBGP邻居;
?? 解决方法:全连邻居关系??? 或者使用 联邦和路由反射器来解决;
BGP的路由黑洞问题:
由于BGP协议可以非直连建邻,故可能出现控制层面可达,数据层面不可达的情况;
解决方法:
配置:
r1(config)#router bgp 1? 启动协议时,使用真实AS号,不存在多进程概念
r1(config-router)#
r1(config-router)#bgp router-id 1.1.1.1? 建议配置RID
建立邻居关系:
r1(config-router)#neighbor 12.1.1.2 remote-as 2? 对端物理接口ip地址及所在AS号
r2(config)#router bgp 2
r2(config-router)#neighbor 3.3.3.3 remote-as 2
r2(config-router)#neighbor 3.3.3.3 update-source loopback 0? 一旦使用环回建立邻居关系,就必须修改更新源地址
华为
ibgp
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 1.1.1.1 as-number 100
[R2-bgp]peer 1.1.1.1 connect-interface lo 0
使用物理接口建立邻居关系
ebgp
[R2]bgp 100
[R2-bgp]peer 23.1.1.2 as-number 101
Ebgp使用环回接口建立邻居关系
[R3]bgp 101
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 2.2.2.2 as-number 100
[R3-bgp]peer 2.2.2.2 connect-interface lo 0
[R3-bgp]peer 2.2.2.2 ebgp-max-hop 直接按回车ttl变为255
默认情况下ebgp邻居间的ttl值为1
【1】ip可达问题
r4(config)#ip route 5.5.5.0 255.255.255.0 45.1.1.2
r4(config)#ip route 5.5.5.0 255.255.255.0 54.1.1.2
【2】建立BGP邻居关系
r4(config)#router bgp 2
r4(config-router)#neighbor 5.5.5.5 remote-as 3
r4(config-router)#neighbor 5.5.5.5 update-source loopback 0
默认IBGP邻居间TTL值设定为255,EBGP邻居为1;
r4(config-router)#neighbor 5.5.5.5 ebgp-multihop ?
? <1-255>? maximum hop count
? <cr>???? 255
r4(config-router)#neighbor 5.5.5.5 ebgp-multihop
华为
[R1]display bgp peer
?BGP local router ID : 1.1.1.1
?Local AS number : 100
?Total number of peers : 1????? ???????? ? Peers in established state : 1
? Peer??????????? V????????? AS? MsgRcvd? MsgSent? OutQ? Up/Down?????? State Pre
fRcv
? 2.2.2.2???????? 4???????? 100?????? 11?????? 12???? 0 00:09:56 Established??
当建立邻居配置完成后,邻居间将先建立TCP会话:
r1#show tcp brief
TCB?????? Local Address?????????? Foreign Address??????? (state)
64289A10? 12.1.1.1.179??????????? 12.1.1.2.14396???????? ESTAB
华为
[R1]display tcp status
TCPCB??? Tid/Soid Local Add:port??????? Foreign Add:port????? VPNID? State
b4b1f658 6? /1??? 0.0.0.0:23??????????? 0.0.0.0:0???????????? 23553? Listening
b4b1fb68 164/2??? 0.0.0.0:179?????????? 2.2.2.2:0???????????? 0????? Listening
b4b1fa24 164/6??? 1.1.1.1:179?????????? 2.2.2.2:50778???????? 0????? Established
当会话建立后,邻居间使用open报文建立邻居关系,生成邻居表:
r1#show ip bgp neighbors?? 查看邻居关系,但该表过大不易查看
华为
[R1]display? bgp peer verbose
r1#show ip bgp summary
BGP router identifier 1.1.1.1, local AS number 1
BGP table version is 1, main routing table version 1
Neighbor??????? V??? AS MsgRcvd MsgSent?? TblVer? InQ OutQ Up/Down? State/PfxRcd
12.1.1.2???????? 4???? 2????? 15????? 15??????? 1??? 0??? 0 00:11:25?????? ?0
[R1]display? bgp peer
?BGP local router ID : 1.1.1.1
?Local AS number : 100
?Total number of peers : 1????? ???????? ? Peers in established state : 1
? Peer??????????? V????????? AS? MsgRcvd? MsgSent? OutQ? Up/Down?????? State Pre
fRcv
? 2.2.2.2???????? 4???????? 100?????? 15?????? 16???? 0 00:13:19 Established???
状态处显示数字即为邻居关系已经建立,数字表示从该邻居处学习到的路由条目数量;
路由宣告:
无论本地路由表中的条目是通过何种方式获取,均可宣告到BGP协议中;
BGP协议可以宣告本地路由表中任何条目,但宣告时必须同本地路由表中的记录完全一致;
r1(config)#router bgp 1
r1(config-router)#network 1.1.1.0 mask 255.255.255.0
华为
[R2]bgp 100
[R2-bgp]network 1.1.1.1 32
宣告完成,将生成BGP表;用于装载所有本地发出和接收到的条目
r1#show ip bgp
BGP table version is 2, local router ID is 1.1.1.1
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
*>??? 1.1.1.0/24??????? ?0.0.0.0????????????????? 0???????? 32768 i
状态 目标网络号??????????????????????? 属性
查看bgp表
[R3]display bgp routing-table
?BGP Local router ID is 3.3.3.3
?Status codes: * - valid, > - best, d - damped,
?????????????? h - history,? i - internal, s - suppressed, S - Stale
?????????????? Origin : i - IGP, e - EGP, ? - incomplete
?Total Number of Routes: 1
????? Network??????????? NextHop??????? MED??????? LocPrf??? PrefVal Path/Ogn
?*>?? 1.1.1.1/32???????? 2.2.2.2???????? 1???????????????????? 0????? 100i
?*>?? 标示可用---可以加表(路由表)??
*? 不可用----*被r取代---不装载--本地通过其他更好的协议已经学习到了该条目
??????????? 被s取代---被人为的抑制--不得传递
>标示优---可以加表,可以传递
?? 优的条件:1、同步问题---一条条目需要本地通过IGP和BGP同时学习到,为避免路由黑洞;该限制可以关闭,且IOS版本12.2(8)T 以上系列路由器默认关闭该功能
???????????? 2、下一跳可达问题---当一条条目传递给EBGP邻居时将自动修改下一跳地
???????????????? 址为本地,但若传递给IBGP邻居,将不修改任何参数
r2(config)#router bgp 2
r2(config-router)#neighbor 3.3.3.3 next-hop-self? 传递条目到该邻居时,自动修改下一跳为本地
华为
[R3]bgp? 101
[R3-bgp]peer 4.4.4.4 next-hop-local
[r2]bgp? 101
[r2-bgp]peer 3.3.3.3 next-hop-invariable 下一跳不变,但是必须伴随路由泄漏
BGP的MA网路下一跳问题:
在MA网络由于ICMP重定向,故BGP可以寻找到最佳下一跳地址;
r1#debug ip bgp updates?? 查看BGP更新包
华为
<R1>debugging bgp update
r2#clear ip bgp *? 硬重启 断开所有邻居间的TCP会话,让后再重新建立
<R1>reset bgp 100
r2#clear ip bgp * soft?? 软重启,重新收发所有路由信息,不断开邻居关系
<R1>reset bgp 100 graceful
r1#clear ip bgp 123.1.1.2? 和某个邻居进行硬重启
<R1>reset bgp 2.2.2.2
r1#clear ip bgp 123.1.1.2 soft ??? 和某个邻居进行软重启,可选择方向
? in?? Soft reconfig inbound update
? out? Soft reconfig outbound update
? <cr>
<R1>reset bgp internal graceful
<R1>reset bgp external graceful
<R1>reset bgp 2.2.2.2 graceful
r1#show ip bgp neighbors 123.1.1.2 advertised-routes?? 查看BGP表中本地发送给邻居的条目
r1#show ip bgp neighbors 123.1.1.2 received-routes 查看BGP表中从该邻居处接收到的条目
% Inbound soft reconfiguration not enabled on 123.1.1.2 但默认没有专门的内存用于存在信息
r1(config)#router bgp 1
r1(config-router)#neighbor 123.1.1.2 soft-reconfiguration inbound? 创建专门的空间,建议查看
BGP宣告问题:
若BGP协议宣告的条目非本地直连,而是通过其他协议学习;那么在将这些路由传递到BGP中时将携带本地到达目标的度量值,及下一跳;
携带原有度量值,多个EBGP邻居将同一路径传递入本AS时,可以通过他们所携带的度量值来优选路径;本地宣告的路由携带度量值后,传递到其他IBGP邻居处,同时该IBGP邻居需要将该条目再传递到它的EBGP邻居时,将度量值修改为0,因为这个度量值不能代表它自己;------所有存在EBGP邻居的路由器均应该宣告需要向其他AS传递的路由条目;
原有下一跳地址在传递给EBGP邻居时将自动修改为本地;在传递给IBGP邻居时,默认携带原有下一跳,若接收到的条目中下一跳地址为本地接口某个地址将拒绝接收该条目;
BGP中的 no auto-summary问题:
在BGP协议中针对正常宣告的路由,自动汇总功能无意义;
在将IGP重发布到BGP时,自动汇总功能存在影响:
r2(config)#router bgp 2
r2(config-router)#redistribute ospf 1
auto-summary????????????????????????????? no auto-summary
不携带掩码、度量、下一跳???????????????? 携带掩码、度量、下一跳
度量值和下一跳规则同上一个问题处理方式完全一致,故若需要将IGP重发布BGP时,应该在所有的EBGP邻居上进行;
H华为
[R3-bgp]summary? automatic
BGP的认证:仅支持MD5;
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 password cisco? 默认以MD5发出,邻居间需要一致
在run中密码明文显示,可以开启密码密文服务
r1(config)#service password-encryption
华为
[R1-bgp]peer 2.2.2.2 password simple 123
BGP的聚合(汇总):
1、利用BGP的宣告特点;---BGP可以宣告本地路由表任何方式生成的条目
1)先在更新源路由器上配置到达汇总地址的防环空接口路由
r5(config)#ip route 5.5.4.0 255.255.252.0 null 0
2)然后将该条目宣告的BGP协议中--不用逐一宣告明细路由
r5(config)#router bgp 3
r5(config-router)#network 5.5.4.0 mask 255.255.252.0
华为
[R2]ip route-static 192.168.0.0 22 NULL 0
[R2]bgp 100
[R2-bgp]network 192.168.0.0 22
2、BGP的汇聚
1)逐条宣告所有的明细路由
2)再进行标准的BGP聚合配置----更新原上将自动生成空接口防环路由
r5(config)#router bgp 3
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0
注:此时所有明细路由将同聚合路由一起发出
[R2]bgp 100
[R2-bgp]aggregate 192.168.0.0 22
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 summary-only? 仅发送聚合条目,其他明细路由被抑制
[R2]bgp 100
[R2-bgp]aggregate 192.168.0.0 22 detail-suppressed
当在发送聚合条目的同时,还需要发送部分的明细条目,那么可以使用抑制列表来进行干涉:
1)定制抑制列表---被抓取的流量反而是需要被抑制的流量
r5(config)#ip prefix-list ss permit 5.5.6.0/24
r5(config)#route-map ss permit 10
r5(config-route-map)#match ip address prefix-list ss
2)调用
r5(config)#router bgp 3
r5(config-router)#aggregate-address 5.5.4.0 255.255.252.0 suppress-map ss
注:以上配置适用于被抑制条目较少时;若被抑制的条目较多时,可以在route-map中deny需要传递的路由,然后允许其他所有
[R2]ip ip-prefix xx permit 192.168.1.0 24
[R2]route-policy yy permit node 10
[R2-route-policy]if-match ip-prefix xx
[R2]bgp 100
[R2-bgp]aggregate 192.168.0.0 22 detail-suppressed suppress-policy yy
另:还可以使用route-map或者前缀列表直接管理发送的条目;
Route-map:
r5(config)#ip prefix-list yy permit 5.5.5.0/24
r5(config)#route-map yy deny 10
r5(config-route-map)#match ip address prefix-list yy
r5(config-route-map)#exit
r5(config)#route-map yy permit 20
r5(config-route-map)#exit
r5(config)#router bgp 3
r5(config-router)#neighbor 4.4.4.4 route-map yy out
华为
[R2]ip ip-prefix vv permit 192.168.1.0 24??????
[R2]route-policy ii deny node 10
Info: New Sequence of this List.
[R2-route-policy]if-match ip-prefix vv
[R2-route-policy]quit
[R2]route-policy ii permit node 20
[R2]bgp 100
[R2-bgp]peer 23.1.1.2 route-policy ii export
前缀列表:
r1(config)#ip prefix-list ss deny 1.1.1.0/24
r1(config)#ip prefix-list ss permit 0.0.0.0/0 le 32
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 prefix-list ss out
华为
[R2]ip ip-prefix bb deny 192.168.1.0 24
[R2]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32
[R2]bgp? 100
[R2-bgp]peer 23.1.1.2 ip-prefix? bb export