BGP--笔记03
1.BGP邻居状态机
idle, connect, active, opensent, openconfirm, established 状态
[
active表明TCP连接己建立]
查看命令:
show ip bgp summary ---最后一列为
数字即为established
show ip bgp neighbors [detail] ---能够查看到established
调试命令:
debug ip bgp
debug ip bgp
events
中断bgp邻居关系命令:clear ip bgp *
邻居关系
长时间停留在active(
本端没问题)状态 或者 在
active<--->idle 间频繁切换?
原因:
a)邻居
路由器 不存在到达本
路由器的路由
b)邻居路由器 的neighbor命令中IP地址
设置错误
c)邻居路由器 末配置neighbor
d)AS号 配置错误等
debug ip bgp keepalive 查看keepalive消息,通常是不会显示出来的
2,BGP转发
数据库(
BGP表)---保存从BGP邻居处学习到的
所有
BGP路由信息.
第
一列:
*---valid有效的路由
s---suppressed
被抑制的路由 (通常是进行路由汇总时,对明细路由进行抑制)
r---
RIB-failure(路由R信息I库B) ---表示这条BGP路由在
写入IP路由表时
失败了(其他路由
协议具有更优的AD)
d---
衰减的路由
h---
历史的路由
第二列:
>---表示
最优路由
空白
第三列:
i 表示该路由是从iBGP邻居处学习到的
空白 表示 该路由是从eBGP邻居处学习到的
或者 该路由是
本路由器起源的
注:什么是"本路由器起源的路由"?--表示
在本路由器上将这条路由引入到BGP中来通告
第四列:IP前缀/掩码(路由)
第五列:下一跳地址
第六列:metric值(狭义的Metric)--严格的说,应该称为MED(多出口标识符)
第七列:Local Preference---本地优先级 默认为 100,,,
空白=100
第八列:Weight---权重
第九列:AS-Path
第十列:起源代码 (i,e,?)---表示这条路由是怎样引入到BGP中?
network命令:起源代码为
i
redistribute命令:从IGP重分发到BGP中,起源代码为
?
从EGP重分发到BGP中,起源代码为
e
show ip bgp rib-faiure
3,如何维护BGP会话?
Clearing the BGP Session
1)Hard reset---
硬复位
clear ip bgp
* ---清除本路由器的
所有BGP邻居(TCP连接中断,
所有的BGP路由信息丢失)
clear ip bgp
x.x.x.x ---清除本路由器的某个特定邻居(TCP连接中断,从这个邻居学习的BGP路由信息丢失)
2)Soft reset---
软复位
soft out:
clear ip bgp
*
soft out ---首先BGP
邻居关系并没有中断,只是向本路由器的所有BGP邻居
重新发送一次BGP路由信息
clear ip bgp
x.x.x.x
soft out---首先BGP邻居关系并没有中断,只是向本路由器某个特定的BGP邻居
重新发送一次BGP路由信息
应用场合: 当
本路由器的
出口out策略 改变时,
或当
邻居路由器的
入口in 策略 改变时!
------------------------
soft in:
使用 soft in 时,分为以下2种情况:
(a)-邻居路由器支持Route Refresh特性:
clear ip bgp * ---BGP邻居并没有中断,本路由器向所有BGP邻居发送Route-Refresh
Request消息
BGP邻居收到该消息后将会
重新发送BGP路由信息 给
本路由器
eg,
x.x.x.x sending
REFRESH_REQ(5) for afi/safi:1/1
clear ip bgp x.x.x.x
应用场合:
支持Route-Refresh特性,当本路由器的
入口策略 改变时,
或当邻居路由器的
出口策略 改变时!
(b)-邻居路由器不支持Route Refresh特性:
若需要使用soft in ,则需要
额外配置一条命令
Router(config)#router bgp xxx
Router(config-router)#
neighbor x.x.x.x
soft-reconfiguration
inbound
将邻居x.x.x.x发送给我们的原始BGP路由信息保存下来
soft-reconfiguration Per neighbor soft reconfiguration
eg.
R3(config-router)#neighbor 155.1.13.1 soft-reconfiguration ?
inbound Allow inbound soft reconfiguration for this neighbor
clear ip bgp * soft in ---BGP邻居并没有中断,使用我们保存的
原始BGP路由信息
+新的入口策略
clear ip bgp x.x.x.x soft in---BGP邻居并没有中断,使用我们保存的
原始BGP路由信息+新的入口策略
应用场合:若路由器不支持Route-Refresh特性,
当本路由器的 入口策略 改变时,
或当邻居路由器的 出口策略 改变时!
3)Route refresh---路由刷新(新增特性)发个请求
4,观察BGP路由更新
debug ip bgp update
注:在发送BGP路由更新时
a,
通告路由 【
可达性】 信息
问题:能否在一个Update中通告多个路由?
i. 如果这些路由的 路径属性 是一致的,则可以在同一个update中通告
ii.如果这些路由的 路径属性 是不一致的,则必须在不同update中通告
b.
通告路由 【
不可达】 信息(【路由撤销】)
问题:能否在
一个Update中通告多个路由?
因为在
通告路由不可达信息时,并
不包含路径属性,因此可以同时通告
5,BGP的选路原则
1)BGP的路径属性
a)
路径属性的分类
i,
Wel-known VS Optional
well-known:【
公认属性】,表示该路径属性 能够被【所有的BGP实现者支持】
optional:【
可选属性】,表示该路径属性 【不一定】能够被所有的BGP实现者支持
说明:RFC(Requet For Comment),should be,must be,may be
ii,Mandatory VS Discretionary
Mandatory:【
强制属性】, 要求在每个BGP更新中,必须包含该路径属性 eg.AS-PATH
Dicretionary:【
自由选择属性】,在BGP更新中,可以包含也可以不包含该路径属性
iii,Transitive VS nontransitive
Transitive: 【
传递 属性】若一个bgp实现者收到无法识别的optional属性,若该属性为transitive,保留并传给其他的bgp实现者
nontransitive: 【
非传递属性】若一个bgp实现者收到无法识别的optional属性,若该属性为nontransitive,丢弃
iv. Partial
针对
可选 传递
若一个bgp实现者收到无法识别的
optoinal属性,若该属性为
transitive,则保留并传给其他的bgp实现者,同时将该属性标为
Partial
常见BGP路径属性:
Well-known Mandatory:
公认强制属性
Well-known Discretionary:
公认自由选择属性
Optoinal Transitive:
可选传递属性
Optional Nontransitive:
可选非传递属性
6,BGP路径属性:
1)【
AS-Path】: (
公认强制)
防止As之间的环路
AS-PATH 等于?
当一个BGP路由器向
e BGP邻居通告路由时,会将本路由器所属的AS添加在AS_PATH的
最左边。
400 500 600 700
<----
当一个BGP路由器向
i邻居通告路由时,
AS_PATH
保持不变。
2)【
Next-hop】: (
公认强制)
Next-hop 等于?
当一个BGP路由器向
e邻居通告路由时,Nexthop
修改为本路由器
当一个BGP路由器向
i BGP邻居通告路由时,Nexthop保持不变。
3)【
Origin】: (
公认强制)
i/e/?
i: 表示该BGP路由是通过
network命令引入的
e:表示该BGP路由是通过redistribute命令从EGP引入的
?:表示该BGP路由是通过redistribute命令从IGP引入的
以下是
作BGP策略控制的参数
4)【
Local Preference】(公认自由选择)
iBGP中
目的:控制【
离开】本AS的
流量。--------路由是
in 的方向 [学习路由的方向]
在BGP中
,【LocPref越高】,路由越优先,缺省情况下,Local Preference为100,空白 也是100
LocalPreference属性 只能在
【i BGP】邻居间 传播!
5)【
MED】: (
cisco设备----metric , 可选非传递)
eBGP中
目的:控制【
进入】本AS的
流量。
MED属性传播给
e BGP邻居,并在
e BGP所属的AS中传播(
注:对方AS不能将MED再发送给其他AS)
在BGP中
,【MED越小】,路由越优先。
注:缺省情况下,BGP路由器只会比较来自【
同一个AS】的MED值!
6)【
Weight】:权重。(
Cisco私有属性)
Local Router
Weight属性不传播给任何BGP邻居,只能在【
同一个路由器】上使用!
【 Weight越大】,路由越优先!
其它…………
注:
数据流量的方向<------->路由的学习方向 相 反
BGP的选路原则
注意:BGP
设计不是为了负载均衡,它的选路是 【
根据
策略】 来进行的!它的选路
与带宽无关
最终,BGP将为每个目标
网络 选择出【一条】
最优的路由
提交给IP路由表,再使用AD来筛选路由
(若需要进行负载均衡,需要额外的命令配置)
首先BGP只考虑
【同步】(如果同步原则开启的话
),【无AS环路
】,【有效的下一跳地址】
情况下:
:
1)优先选择
Weight最
大
注:cisco路由器上,本地路由器起源的路由Weight设为32768,而从其他路由器学习的均为0
(因为Weight属性不传播给任何BGP邻居)(假设末做任何策略)
*2)优先选择
Local Preference最高 (控制
离开流量)
3)优先选择
本路由器起源 (
next-hop为0.0.0.0) Cisco路由器Weight=32768
4)优先选择
AS-Path最短
5)优先选择
Origin Code最小(i<e<?) ---[ i(IGP) < e(EGP) < ?(Incomplete) ]
*6)优先选择
MED值 最小 (控制
进入流量)
7)优先选择从
eBGP邻居学习的路由
8)优先选择
从最近的IGP邻居学习的路由
9)优先选择
最老的路由(既最稳定的路由)
10)优先选择从具有
最小BGP RouterID的邻
居学习的路由
11)优先选择 the path with the lowest neighbor IP address