BGP<?XML:NAMESPACE PREFIX = O />
为什么使用
BGP
BGP
是可靠的,基于
TCP
(
Port Numer 179
)进行建立和维护连接,并且具有并使用
TCP
的滑动窗口的机制来更新路由表,可以支持一次性的大量路由条目的更新
. BGP
是增量更新,同时也是触发更新;周期性的发送
Keepalive
信息来验证
TCP
连接是否正常,以确保对方的路由器状态是正常的。
PS:EIGRP
(使用
IPV4
协议号
89
)和
OSPF-V2(
使用
IPV4
协议号
88)
使用
One-One
窗口机制
,OSPF
一次更新
100
条路由。
BGP
的使用原则
1.
多条路径时,
BGP Speaker
只选最优的给自己使用
2. BGP Speaker
只把自己的路由通告给邻居
3.
从
EBGP
获得的路由会向它所有
BGP
邻居通告(
EBGP/IBGP
)
BGP Speaker
从
IBGP
获得的路由不会通告给它的
IBGP
邻居(
BGP
的水平分割)
IGP
是基于端口的水平分割;而
IBGP
是基于邻居的水平分割。水平分割的作用是避免产生路由环路。
4. BGP Speaker
从
IBGP
获得的路由是否通告给它的
EBGP
邻居要服从
IGP
和
BGP
是否同步来决定
5.
邻居关系一建立,
BGP Speaker
就把自己所有的
BGP
最优路由通告给新的邻居
BGP
邻居协商过程(
4
种
Message
)
1. Open
(
code 1
):用于建立连接,包含版本号(如
BGP3/BGP4
)
Hold Time
=
180s
(是一个协商的过程,以较小的
Hold Time
为准),
Router-ID
(
OSPF
和
BGP
可以手动配置),
AS
号
(
范围从
1
~
65535
,其中
64512
~
65535
的
AS
编号范围留作私有
)
;
2. KeepAlives
(
code 4
):周期发送用于维护连接检查路径(这个包是不可靠的)
,T
=
Hold Time/3, Hold Time=0 => No KeepAlive.
,
keepalive
是个
19
字节周期发送的
BGP
消息头标,没有数据域。
3. Update
(
code 2
):消息包含了三个组件:网络层可达性消息(
NLRI
)、路径属性和被撤销的路由。包括到达目的网络的路径和属性,更新路由信息用,一次更新只有一条路径,但可以有多条网络。
Update
可以删除(宣告不可达)和增加(宣告可达)路由
.
其内容是前缀的长度。
4. Notification
(
code 3
):网络中出现错误(
Error
),检测到后断开连接并发送通知给对方。
5
.
Route-Reflesh message
:一个可选的
message (negotiated during capability advertisement) that is sent to request dynamic BGP route updates from the Adj-RIB-Out table of a remote BGP speaker
PS :BG Ptime
在
BGP
路由配置模式下可以配置全局的
BGP timer
:
timers bgp 70 210
对于特定的
neighbor
可以使用特定的
BGP timer
:
neighbor 172.17.1.2 timers 80 240
过程:
Idel
,
connect
,
open sent
,
open confirm
,
establish
。
BGP
邻居建立会话的
5
种状态:
1. Idle
:查找路由表,该过程
BGP
对它的资源进行初始化,复位一个连接重试计时器,发起一条
TCP
连接,并开始倾听远程对等体所发起的连接。
2. Connect
:找到路由表后进行
TCP
三次握手,
TCP
连接成功,则转到
OpenSent
状态,
TCP
连接失败,则转到
active
状态
,
将尝试再次连接。
3. Open Sent
:握上手后发送
Open message
消息,等待其对等体发送打开消息,如果出错,则发送一条出错消息并退回空闲状态,如果无错,则开始发送
Keepalive
并复位
keepalive
计时器。
4. Open Confirm
:收到对方发来的
Open
消息,如果收到
keepalive
消息,
BGP
就进入
established
状态,邻居关系协商完成;如果系统收到一条更新或
keepalive
消息,它将重新启动保持计时器;如果收到
Notification
消息,
BGP
就退回到空闲状态。
5. Established
:会话建立,邻居关系协商过程最终状态;这时
BGP
将开始与它的对等体交换路由更新数据包。
PS: Active
状态:当路由器发送出
OPEN
包给邻居等待回应,如果长时间未接收到回应则超时,超时后状态更改为
Idle
,试图发起
TCP
连接获得对等体,成功转到
Open Sent
状态,连接重试计时器超时,退回连接状态。,这是由于
TCP
链路上出现了问题所致。??
产生问题的原因主要有:
1. Neighbor
命令后面的
ip-address
配置有错;
2.
没有打上
Neighbor
命令(两边都要)
3.
更新源错误,或者更新源不可达。
Debug
信息:
Aspen#
18:24:33: BGP: 192.168.1.221 went from Idle to Active
18:24:41: BGP: 192.168.1.221 went from Active to OpenSent
18:24:42: BGP: 192.168.1.221 went from OpenSent to OpenConfirm
18:24:42: BGP: 192.168.1.221 went from OpenConfirm to Established
18:24:43: BGP: 192.168.1.221 computing updates, neighbor version 0, table version
n 1, starting at <?XML:NAMESPACE PREFIX = ST1 />0.0.0.0
18:24:43: BGP: 192.168.1.221 update run completed, ran for 0ms, neighbor version
0, start version 1, throttled to 1, check point net 0.0.0.0
BGP Input Events
BGP
的
3
个数据库
邻居表、
BGP
转发表(也叫转发库)、
IP
路由表。
BGP
同步和黑洞问题
BGP
路由器不应该将从其内部
BGP
邻居处学到的目的地网络通告给其外部邻居路由器,除非这些目的地网络是通过
IGP
可达的。不同步的时候,路由表里面显示的是
非最优(
①
下一跳是否可达
②
同步原则是否满足),
同步默认是打开的,全互连时(用于
IBGP
)需要关闭同步,命令是:
Router(config-router)#no synchronization
BGP
路由进程
从对等体处收到的路由-
>
输入策略引擎-
>
路由判定过程
(BGP
表
)
-
>
路由器所用的路由(
IP
路由表)-
>
输出策略引擎-
>
通告给对等体的路由
BGP
的下一跳跳属性
1.
在多路广播网络中,其下一条属性不变
如图:
B
通过
EBGP
通告网络
172.30.0.0
给
A
而不改变其下一跳属性
10.10.10.2,
这种行为防止了一个不必要的
Hop
,因为他们都同在一个多路广播网络里面。如果改变了其下一跳属性为
10.10.10.1
,当
AS 65000
作为一个
Transit AS
的时候,
AS 64520
的
EBGP Router
就不是以最优的路径通过
AS 65000
。
PS:BGP
是一种
AS-by-AS
的路由协议,它的下一跳指的是下一个
AS.
而不是下一个
Router
1.
从
EBGP
学习到的路由,其下一跳属性不变,可以手动做
next-hop-self
2.
在
IBGP
关系中,下一跳地址,就是通告该路由的
IBGP
的
更新源。???还是
Router-id
???
jeans_young
:
next_hop
的三个规则是这样的:
a. 如果是由 EBGP peer 通告的 BGP update 报文,那么 next_hop 就是 AS 外这个 EBGP peer 的 IP 地址。(实际上,是与本 AS 直连的接口 IP 地址)
b. 假如 BGP update 报文是由 IBGP peer 通告的,那么 next_hop 就是这个 IBGP peer 发出更新报文的接口 IP 地址
c. 如果 update 报文最开始是由 EBGP peer 通告,但是是从本 AS 内的边界路由器(也就是 IBGP peer ),那么 next_hop 是 EBGP peer 的通告出更新的接口 IP 地址,而不是本 AS 的这个 IBGP peer 。
ps :其实,前两条规则,比较容易理解,我们可以这样记忆前两条:谁通告的,那么下一跳就是它。主要是第三条有点特殊。但是只要我们把 BGP 协议本身的起源想一想就容易理解了。 BGP 是对于大型互联网的一个路由协议。它其实我们应该把它理解成路径向量协议。也就是说它的视角是 AS ,而不是单个的 router 。 BGP 是宏观视角, IGP 则是微观视角。所以,像第三种情况,我们要把视角上升到一个更高的高度 —— 从 AS 来看。那么就容易理解了。既然是 IBGP peer 转发通告 EBGP peer 发来的路由,那么得追根溯源。最终追到 EBGP peer 。所以它才是真正的下一跳。
这里,我们会发现一个问题,就是假如这个边界路由器没有告诉本 AS 的其它路由器到这个 EBGP peer 怎么走,那么这样路由不可达就会导致数据包被丢弃。所以引入了 next_hop_self 机制,配置在边界路由器上,使得 IBGP peer 要发路由更新给 EBGP peer 的时候,强制从自己这里走,因为对于边界路由器来讲,他是知道怎么到达 EBGP peer 的。这个其实有点类似于代理的概念。比如 proxy ARP 。就是把自己的 MAC 地址通告给 ARP 请求者,而不是把 ARP 请求的真正目的 MAC 回送回去。目的就是代理。
a. 如果是由 EBGP peer 通告的 BGP update 报文,那么 next_hop 就是 AS 外这个 EBGP peer 的 IP 地址。(实际上,是与本 AS 直连的接口 IP 地址)
b. 假如 BGP update 报文是由 IBGP peer 通告的,那么 next_hop 就是这个 IBGP peer 发出更新报文的接口 IP 地址
c. 如果 update 报文最开始是由 EBGP peer 通告,但是是从本 AS 内的边界路由器(也就是 IBGP peer ),那么 next_hop 是 EBGP peer 的通告出更新的接口 IP 地址,而不是本 AS 的这个 IBGP peer 。
ps :其实,前两条规则,比较容易理解,我们可以这样记忆前两条:谁通告的,那么下一跳就是它。主要是第三条有点特殊。但是只要我们把 BGP 协议本身的起源想一想就容易理解了。 BGP 是对于大型互联网的一个路由协议。它其实我们应该把它理解成路径向量协议。也就是说它的视角是 AS ,而不是单个的 router 。 BGP 是宏观视角, IGP 则是微观视角。所以,像第三种情况,我们要把视角上升到一个更高的高度 —— 从 AS 来看。那么就容易理解了。既然是 IBGP peer 转发通告 EBGP peer 发来的路由,那么得追根溯源。最终追到 EBGP peer 。所以它才是真正的下一跳。
这里,我们会发现一个问题,就是假如这个边界路由器没有告诉本 AS 的其它路由器到这个 EBGP peer 怎么走,那么这样路由不可达就会导致数据包被丢弃。所以引入了 next_hop_self 机制,配置在边界路由器上,使得 IBGP peer 要发路由更新给 EBGP peer 的时候,强制从自己这里走,因为对于边界路由器来讲,他是知道怎么到达 EBGP peer 的。这个其实有点类似于代理的概念。比如 proxy ARP 。就是把自己的 MAC 地址通告给 ARP 请求者,而不是把 ARP 请求的真正目的 MAC 回送回去。目的就是代理。
BGP
属性
①
公认属性
(
Must be recognized by all compliant BGP implementations Are propagated to other neighbors
)
②
Well-known mandatory attributes(Must be present in all update messages)
③
Well-known discretionary attributes(May be present in update messages)
④
可选
(Recognized by some implementations (could be private), expected not to be recognized by everyone ,Recognized optional attributes are propagated to other neighbors based on their meaning )
⑤
可选传递属性
(If not recognized, are marked as partial and
propagated to other neighbors )
propagated to other neighbors )
⑥
可选不可传递属性
(Discarded if not recognized)
公认必选:
ORIGIN/AS_PATH/NEXT_HOP
公认自选:
LOCAL_PREF/ATOMIC_AFFREGATE
任选可透明传递:
AGGREGATOR/COMMUNITY
任选非可透明传递:
MED/ORIGINATOR_ID/CLUSTER_LIST
AS-path (prepending):BGP
中用于检测环路,当一个
AS-PATH
中有两个相同的
AS
号说明有环路产生,如果自己的
AS
出现在某接收到的路由
AS-PATH
中,?接收吗?是一个有序列表。
Next-hop
:
详见上方。
MED
:
又叫
BGP
的
metrics
值(没有
MED
的路由
->MED
=
0
;
缺少
MED
的路由,将成为最先优选的路由
)
,
作用是影响邻居
AS
的路由选择。在有多出口的本
AS
中,决定邻居
AS
更优先从哪个出口进入本
AS,
默认值是
0
,值越小优先级越高。
MED
仅向
EBGP
邻居发送。它是可选的、非传递属性。
bgp bestpath missing-as-worst
命令修改
cisco ios
对
med
的行为,使得和最新的
ietf
标准(丢失
MED->
将
MED
设置成无穷大;缺少
MED
的路由,将成为最后优选的路由)一致
如果没有启用
bgp deterministic-med
,接收到的路由的顺序可能影响基于
med
的最有路径选择,当从多个
as
收到同一条路由,而且具有完全一样的路径长度和不同的
med
,就会发生下面的情况:
A) ASPATH 1, MED 100, internal, igp metric to NEXT_HOP 10
B) ASPATH 2, MED 150, internal, igp metric to NEXT_HOP 5
C) ASPATH 1, MED 200, external
在没有配置
bgp deterministic-med
的路由会优选
B(
较低的
IGP metric)
,接着是
C(EBGP>IBGP),
而
C
的
MED
值高于
A
在启用
bgp deterministic-med
的
Router
,将清除对基于
MED
最优路径选择的临时依赖,它可以确保满足
MED
的原始要求,来控制进入本
AS
的流量的选择,会对进入被
AS
的所有路由进行
med
比较,最后选择有最小
med
值的
A
是最优路径,但是如果
Router
配置了
bgp always-compare-med,
将总是采用
BGP MED
判断。
Weight
(
Cisco Only
):
权重,
(
范围
0
到
65,535)weight
是
CISCO
私有的参数,路由器配置了权重后在本地有效,缺省情况下,从对等学习到的所有路由的
Weight
都是
0
,由本
Router
产生的路由的
Weight
都是
32768
。
作用是影响路由选择,值越大优先级越高。不向
BGP
邻居发送,仅限本地路由器,
neighbor {ip-address | peer-group-name} weight default-weight
,将邻居发送来的路由的
weight
值改变
Local-preference
:
Local-preference
是在一个多出口的
as
中控制流量更优先的从哪个出口出去
, Local-preference
的默认值是
100,
更改值的命令是:
Router(config-router)# bgp default local-preference value
他的值越高
,
其优先级越大
.
本地优先值仅在
AS
内部中有效
.
(学习的路由影响出去的流量
,
公告出去的路由影响进来的流量
.
)
Origin
:
起源(也叫起点)属性。
注入
BGP
路由表有三种方式(来源
/
起源):
一种是用
Network
命令进行,在
BGP
路由表显示为
i
(源属性:
0
),另一种是再发布
EGP
获得的,在路由表中显示为
E
(源属性:
1
),最后一种是从
IGP
或静态路由再发布过来的,显示为?(源属性:
2
)。
Communities
(团体)
:
扩展
communities
属性(
AS
号:
AS
自己定义的号码)
将他们化成
10
进制就是
CISCO
路由器对标准
communities
属性的表示方法。
(1).INTERNET
:
INTERNET
团体没有一个确定的值,所有属于这个团体的路由豆芽一个缺省值,可以自由的公布属于这个团体的路由(
Advertise to any peer
)
(2)NO_EXPORT(4294967041
或者
0Xffffff01)
:接收到的携带该值的路由不能公布给
EBGP
对等体,或者如果配置了一个联盟,该路由不能在联盟范围以外公布
――
邻居
(3)NO_ADVERTISE(4294967042 或者 0Xffffff02) :接收到的携带该值的路由不能公布给 EBGP 或者 IBGP 的对等体。 ―― 不广播,只留给自己,自私 ( Do not advertise to any peer /will go to next-hop only
(3)NO_ADVERTISE(4294967042 或者 0Xffffff02) :接收到的携带该值的路由不能公布给 EBGP 或者 IBGP 的对等体。 ―― 不广播,只留给自己,自私 ( Do not advertise to any peer /will go to next-hop only
(5).LOCAL_AS(4294967043
或者
0Xffffff03)
:
RFC1997
称这个属性为
NO_EXPORT_SUBCONFED.
不能将接收到的携带该值的路由公布给
EBGP
对等体,以及在联盟内的其他
AS
的对等。
――
本
AS
内
(6).None(Removes the community with: set community none)
Transit AS
Stub AS
经过这个
AS
才能到达其它的
AS
。
BGP
汇总(
Route Aggregation
)
1. BGP
默认是自动汇总(主类网络)的,可以用
no auto-summary
来关闭
可以用
network *.*.*.* mask *.*.*.*
来手动汇总(只有在路由表里面有这些条目的时候,才可以用这条命令来实现手动汇总,而且只能用这条命令公布
200
条前缀)
Network
命令不仅宣告汇总路由,并且也将具体路由宣告出去。如果不想将具体路由宣告出去,需进行过滤(前面提到的
Outbound
策略)。
Network
命令本身不能做汇总,需要
IP route
命令配合。这种汇总比较麻烦,我们并不推荐。只当需要将已由
IGP
汇总(
OSPF
、
EIGRP
等)后的路由原封不动地发布到
BGP
里的情况下才使用。(自动汇总只能汇总到主类网络)
PS: Network
命令是将已存在(和已由
IGP
汇总)的路由表宣告到
BGP
中。
无
Mask
的宣告将是有类网络(
A
、
B
、
C
),有
Mask
的则是无类网络。
2. Router(config)# ip route prefix mask null0 Null 0
是空端口,不是一个物理的端口,目的是告诉其它路由从我这个路由走,但具体怎么走,不是指定一个物理的端口。只是在路由表里面形成类似于已经汇总的路由,有点路由欺骗的味道,当到达本
Router
的数据包目的地可达的时候(有相关的路由),不会出现问题,但是,当路由不可到达的时候,所有的包将发送给
NULL0
口,这样可以防止
DDOS
***。
ip route 192.168.192.0 255.255.248.0 null0
(在
IGP
表里面有的条目)
router bgp 100
network 192.168.192.0 mask 255.255.248.0
(向所有建立的邻居都发送聚合路由)
3.
Router(config-router)# aggregate-address ip-address mask [summary-only] [as-set]
对
BGP
表中的路由器条目进行汇总,在
BGP
路由进程配置模式下
Aggregate-address
汇总命令它是创建一个汇总的路由并进行宣告。
Summary-only
参数是只宣告汇总路由,抑制具体路由(不发布具体路由)。
AS-Set
参数:不同路由经过的
AS
可能不一样,这条命令的作用在于汇总路由知道具体路由所经过的
AS
的集合,不是有序的
AS-PATH
),以避免产生环路。
这样汇总不须人工指定空端口,系统会自动产生。
Sun#show ip bgp 192.168.192.0 255.255.248.0
BGP routing table entry for 192.168.192.0/21, version 23
Paths: (1 available, best #1)
Advertised to non peer-group peers:
192.168.1.229
300, (aggregated by 300 192.168.1.250)
192.168.1.233 from 192.168.1.233 (192.168.1.250)
Origin IGP, localpref 100, valid, external, atomic-aggregate, best, ref 2
②
用
aggregate-address
和
suppress-map
过滤
/
抑制路由
router bgp 100
no sy
neighbor 192.168.1.253 remote-as 200
neighbor 192.168.1.246 remote-as 200
aggregate-address 192.168.192.0 255.255.248.0 suppress-map VERMONT
aggregate-address 192.168.192.0 255.255.248.0 suppress-map CALIFORNIA
aggregate-address 192.168.192.0 255.255.248.0 attribute-map ORIGIN suppress-map
VERMONT
aggregate-address 192.168.192.0 255.255.248.0 as-set summary-only advertise-map
ALLOW_ROUTE
!
ip prefix-list SUPPRESSEDROUTES seq 5 permit 192.168.192.0/22 le 24
ip prefix-list SUPPRESSEDROUTES seq 10 permit 192.168.199.0/24
access-list 1 permit 192.168.195.0 0.0.0.255
(隐式拒绝
all
,表示对其他所有路由都不抑制)
access-list 2 deny 192.168.197.0
access-list 2 permit any
!
route-map VERMONT permit 10
match ip address 1
!
route-map CALIFORNIA permit 10
match ip address prefix-list SUPPRESSEDROUTES
!
route-map ORIGIN permit 10
set origin incomplete
!
route-map ALLOW_ROUTE permit 10
match ip address 2
在
access-list
中的
permit
表示运行被抑制的,而
deny
是不运行被抑制。
③
用
aggregate-address
和
attribute-map
改变聚合路由的属性
例子在上方,聚合路由有一个
IGP
的
ORIGUN
属性。
④
neighbor *.*.*.* distribute-list
命令过滤路由
neighbor 192.168.1.249 distribute-list 1 out
(阻止出站路由)(
in-
阻止入站路由)
!
access-list 1 deny 192.168.192.0
(拒绝)
access-list 1 permit any
(其他的允许)
⑤
用
aggregate-address
和
advertise-map
去掉
community
属性
例子在上方。
PS:EIGRP
本地自动汇总,关掉自动汇总,
show ip route
后马上看到效果。
BGP
默认是打开自动汇总的,如果关掉自动汇总,在发给对方的时候才看到效果,也就是给对等体发送的是汇总路由,在本地看不出,
![2005552.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005552.jpg)
BGP
选路原则
PS:
在
show ip bgp *.*.*.*
后面不合法的
BGP
路由:
1.
如果启用了
BGP
同步
—
当前
IOS
软件的缺省配置,路由器会忽略那些在输入
show ip bgp *.*.*.*
命令语句后系统输出信息中被注明
“not sychronized”
的路径
---
在
IP
路由表中一定会有一条内部路径(
IBGP
)与一个地址前缀的匹配被看作是合法路径。
2.
忽略那些下一跳不可达的路径。这就是为什么运行
IGP
协议非常重要,因为
IGP
使得与路径的相关下一跳地址可达。
3.
忽略那些从
EBGP Peer
得到的,本地
AS
号码出现在
AS-PATH
中的路径信息。这类路径信息在路由器入口就被拒绝,甚至还来不及按照到
BGP RIB
库中。同样规则可以使用与
ACLS,IP Prefixs
,
AS
路径或者团体属性列表进行判断,并拒绝,除非对等体配置了
inbound soft reconfiguration
命令语句
4.
如果
Router
启用了
Bgp bestpath enforce-first-as
,当对等体送来的更新信息中在
AS
序列项对等体的
AS
号码不在第一位,则发送一个
NOTIFICATION
报文并中止回话连接。
5.
忽略那些在输入
show ip bgp *.*.*.*
命令语句后系统输出信息中被注明
“
(
received-only
)
”
的路径。这条路径被路由器上实施的策略所拒绝,但仍就被保存在路由器内,因为发送这条路径信息的对等体配置了
“soft reconfiguration inbound”
。
6.
忽略那些下一跳度量值被标记为不可达的路径。
IOS
软件
BGP
最优路径算法:
1
.优选有最大
Weight
的路由
3.
优选有最大
LOCAL_PREF
值的路由
(
范围
0
到
4,294,967,295).
4.
优选从本路由器始发的路由(包括本地
network
配置的重分布,或者在
IGP
表中已经有一些需要被配置路由聚合的地址,在
BGP
中用
Aggregate
命令配置的路由聚合,)
5.
优选有最短
AS_PATH
的路由
A
.如果配置了
Bgp bestpath as-path ignore
,则这个步骤被忽略
B
.
B.
一个
AS
路径集被当作一个
AS
,无论在这个集合中有多少
AS
。
AS
路径长度中没有包括。
AS_CONFED_SEQUENCE
。
6.
根据
Origin
属性
.
优选具有最低起源类型的路由(
IGP>EG>Incomplete
)
7.
优选最小
MED
值的路由
(
范围
0
到
4,294,967,295).
A
.只有在通过两条路径得到第一个
AS
(对等体)是同一个
AS
时才进行
MED
比较;任何子自治域的联盟系统都会被忽略。也就是说,只有在
AS
序列号中第一个
AS
号码一致时,才进行
MED
比较;任何联盟
AS
序列号
(AS_CONFED_SEQUENCE)
都会被忽略。
B
.如果路由器上配置了
bgp always—compare—med
,在全部的路径进行
MED
比较。但是这需要全体
AS
都同时启用这个功能,否则有可能发生路由环路。
C
.如果路由器上配置了
bgp bestpath med confed
,将对所有只包括
AS_CONFED_SEQUENCE
的路径进行
MED
比较(即路径是起源于本地联盟)。
D
.如果接收到的路径没有分配
MED
值,则将此路径分配为
0
,除非路由器上配置了
bestpath missing—is—worst
,将被看作
MED
值为
4
,
294
,
967
,
295
的路由将在注入到
BGP
路由选择表之前被改为
4
,
294
,
967
,
294
。
E
.
BGP
明确的
MED
值
9
(详见本章后面的
“BGP
明确的
MED”
段落)也可以影响此步骤。
8.
外部路由
EBGP
优先于联盟(
confederation
)外部路由优于内部路由
IBGP
(优选
E-BGP
路由)
注意,路径中包括
AS_CONFEND_SEQUENCE
属性对联盟只有在本地有效,因此被看作是内部路径。无法区别外部联盟和内部联盟。
9.
优选能通过最近的
IGP
邻居到达的路径(优选对
BGP
下一跳具有最低
IGP
度量值的路径);
10.
如果在路由器上配置了
maximum—pathsN,
而且从同一个对等体自治域
/
子自治域接收到多条外部
/
外部联盟的路径,则最多可以将
N
条最近接收到的路径加入到
IP
路由选择表中。这可以使得
eBGP
在多条路径上进行负载分担。目前
N
所代表的最大数目是
6
;当没有启用此功能时,缺省数值是
1
。在输入了
show ip bgp x.x.x.x
后系统输出信息中可以看到最早接收到的路径被标记为最优路径,在将这条最优路径转发到内部对等体之前,需要执行与
next_hop_self
作用相同的功能。
11
.如果是
external
的路由
,
优选最老的路由
(
最先被学习到的路由
).
A.
此步骤可以将路由摆动的影响减到最小,因为新接收到的路径不会取代老的,即使这条新接收的路径是通过下面提及到的额外路径选择标准来进行选择的。这使得只在
iBGP
路径下应用额外的选择步骤更有意义。
B.
此步骤可以被
bgp bestpath compare_routerid
命令语句所关闭。
C.
如果路由器标志是一样的,此步骤可以被屏蔽,因为这说明路由器正在从自己那里接收路由。
D.
如果当前没有最优路由器,此步骤可以被屏蔽。当提供某个路径的对等体路由器宏机,就会发生丢失
当前最优路径的情况。
12
.如果在同一时间学习到多条到同一目的地的路由
,
优选最小
BGP-router-ID
的路由,注意,如果一个路径包括路由反射器属性,起始者标识将代替路由器标识在路径选择过程中起作用。
12
.如果路由从路由反射器上学习到
,
优选最小
Cluster-ID(BGP_ID of the route reflector)
长度的路由,而且它运行客户机和其他反射器族中的
RR/Clients
之间做对等连接,在这种情况下,路由器必须知道
BGP
协议中的
RR
的具体配置。
13
.优选具有最低对等体地址接收到的路径。这个地址是在
BGP
对等体上配置并使用的地址,这个地址是本地对等体路由器在其上配置
TCP
邻居并与远端对等体建立连接时采用的地址。
step12
的翻译是这样的:如果从相同的主机收到路径,不论它是对等体还是路由反射器,选择拥有最低对等体
IP
地址(直连接口的地址或者如果没有直连的话,最近间接相连的接口的地址)的邻居学来的路径。
就像这个图的情况:路由器 ABCD 处在同一个 AS 中, A 到达 D 穿过了一个网云,路由器 A 从路由器 D 收到两条到达它的路由。如何选择呢。按 step12 的意思应该是选择路径 A 。这是我的理解。大家讨论下。
![untitled.GIF](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/untitled.GIF)
![2005556.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005556.jpg)
联盟 AS9184 是由 AS65510/AS65520/AS65530 组成的。
![2005558.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005558.jpg)
A:Router bgp 100
就像这个图的情况:路由器 ABCD 处在同一个 AS 中, A 到达 D 穿过了一个网云,路由器 A 从路由器 D 收到两条到达它的路由。如何选择呢。按 step12 的意思应该是选择路径 A 。这是我的理解。大家讨论下。
AS-Path/Prefix-List/Outbound/Route-map
过滤
限制从邻居收到路由
Prefix
的数量
Neighbor *.*.*.* maximum-prefix threshold-value [warning-only]:
限制从一个邻居接收前缀的数量,
[warning-only]
参数表示当邻居公布的前缀超过了最大值的
90
%,
Router
就生成一个日志消息。
限制从邻居收到路由
as
路径长度
(1) as
路径过滤(
filter-list/ip as-path access-list 1 permit …
)
(2) Router bgp 109
Neighbor 192.168.1.1 remote-as 65534
Neighbor 192.168.1.1 maxas-limit 10
所有接收到的地址前缀都在
BGP
路由表里,但是只有那些
as
路径长度低于或者等于
10
的地址前缀才可以进入
BGP
路由选择处理进程。
路由反射器(
Cluster-id
)
#
路由反射器不改变客户传来的路由的属性
#RR
和它的
client
就形成一个
Cluster
,如果
AS
中有多个
RP
及其相应的
Client
,就可以通过不同的
Cluster-ID
来区分,对于
Cluster
内部的
Client
来说,它不需要
FULL-MESHed
,并且
Client
只与和它位于同一
Cluster
内部的
RP
向连接即可,它不会去
Cluster
外部的
BGP Speaker
建立
Peer
关系。(
RFC1966
)
#
RR
防止环路的机制:两个属性
originaor_id
,包含了始发这条路由的路由器的
route-id
,因此
RR
不会将此路由又重新发回给源
,
如果发起者收到一个带有自己的
RID
的更新消息,它会不理睬该消息;
RR
有一个单点故障问题
,
如果
RR
挂掉,则
client
就会丢失他们唯一的
NLRI
来源,这样就可以做一个双
RR
备份,此时
cluster-list(
是一个任选非传递属性,当一个
RR
将一条路由从一个
client
反射到一个
non-client
,它将它的
cluster-id
加到
cluster-list
上,如果
cluster-list
是空的,
rr
就生成一个,其包含
RR
的
cluster-id
(在最新版本的
IOS
里面,
cluster-id
在配置
RR
的时候自动生成),当
RR
收到一个更新消息的时候,他检查
cluster-list
,如果在
cluster-list
里面看到自己的
cluster-id
值,就不会接收这条路由。????
)
可以避免环路,
![2005553.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005553.jpg)
(
1
)两个
RR
配置相同的
cluster-id
1
.在
client1
上有一条
1.1.1.0
的路由,它将这条路由传给它的两个
RR(RR1/RR2),RR1
和
RR2
都接收这条路由,因为路由反射器的性质打破了
IBGP
的水平分割的原则,两个
RR
互相把这条路由传给对方和另外的客户端,这时候,他们互相在
cluster-list
里面看到了自己的
cluster-id
,他们就不接收这条路由(不放进
BGP database
),所以在
RR1/RR2
看到的这条路由只有从
client1
传来的。在
client2/3
上看到分别从
RR1/RR2
收到这条路由,但是优选从
RR1
收到的(我觉得这里面又包含先从谁那里先收到这条路由的问题)
2
.在
RR1
上有一条
2.2.2.0
的路由,这时候
RR1
将这条路由传给了
RR2
和它的
3
个
client
,
RR2
接收这条路由并且把他
÷
他们传给他的
client
,这时候
3
个
client
同时从
RR1
和
RR2
收到这条路由,它在路由的
cluster-list
里面看到两者有相同的
cluster-id,
他们优选从
RR1
收到的路由,由于
RR
的
client
就是普通的
IBGP
路由器,存在水平分割的原则,他们就不会把这条路由传给其他的
IBGP
邻居。
PS :
在
Rr
的
client
上的路由里面才看到
cluster-list.
在
as
内部,不改变
BGP
的下一条属性,
show ip b
和
show ip b *.*.*.*
的内容不一样,后者可以看到路由的详细情况。
r1#sho ip b 22.22.22.0
BGP routing table entry for 22.22.22.0/24, version 2
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Not advertised to any peer
Local
2.2.2.2 (metric 65) from 3.3.3.3 (3.3.3.3)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 22.22.22.22, Cluster list: 0.0.0.1
Local
2.2.2.2 (metric 65) from 2.2.2.2 (22.22.22.22)
Origin IGP, metric 0, localpref 100, valid, internal, best
r1#sh ip b 44.44.44.0
BGP routing table entry for 44.44.44.0/24, version 3
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Not advertised to any peer
Local
4.4.4.4 (metric 129) from 3.3.3.3 (3.3.3.3)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 44.44.44.44, Cluster list: 0.0.0.1
Local
4.4.4.4 (metric 129) from 2.2.2.2 (22.22.22.22)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 44.44.44.44, Cluster list: 0.0.0.1
----------------------------------------------------------------------------------------------------------------
r2#sho ip b 22.22.22.0
BGP routing table entry for 22.22.22.0/24, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
1.1.1.1 3.3.3.3 4.4.4.4
Local
0.0.0.0 from 0.0.0.0 (22.22.22.22)
Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
r2# sho ip b 44.44.44.0
BGP routing table entry for 44.44.44.0/24, version 3
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
1.1.1.1 3.3.3.3
Local, (Received from a RR-client)
4.4.4.4 (metric 65) from 4.4.4.4 (44.44.44.44)
Origin IGP, metric 0, localpref 100, valid, internal, best
----------------------------------------------------------------------------------------------------------------
r3#sho ip b 22.22.22.0
BGP routing table entry for 22.22.22.0/24, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
1.1.1.1 4.4.4.4
Local
2.2.2.2 (metric 11) from 2.2.2.2 (22.22.22.22)
Origin IGP, metric 0, localpref 100, valid, internal, best
r3#sho ip b 44.44.44.0
BGP routing table entry for 44.44.44.0/24, version 3
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
1.1.1.1 2.2.2.2
Local, (Received from a RR-client)
4.4.4.4 (metric 75) from 4.4.4.4 (44.44.44.44)
Origin IGP, metric 0, localpref 100, valid, internal, best
----------------------------------------------------------------------------------------------------------------
r4#sho ip b 22.22.22.0
BGP routing table entry for 22.22.22.0/24, version 3
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Not advertised to any peer
Local
2.2.2.2 (metric 65) from 3.3.3.3 (3.3.3.3)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 22.22.22.22, Cluster list: 0.0.0.1
Local
2.2.2.2 (metric 65) from 2.2.2.2 (22.22.22.22)
Origin IGP, metric 0, localpref 100, valid, internal, best
r4#sho ip b 44.44.44.0
BGP routing table entry for 44.44.44.0/24, version 2
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
2.2.2.2 3.3.3.3
Local
0.0.0.0 from 0.0.0.0 (44.44.44.44)
Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
(
1
)两个
RR
配置不同的
cluster-id
1
.在
client1
上有一条
1.1.1.0
的路由,它将这条路由传给它的两个
RR(RR1/RR2),RR1
和
RR2
都接收这条路由,因为路由反射器的性质打破了
IBGP
的水平分割的原则,两个
RR
互相把这条路由传给对方和
clients
,根据
bgp
的选路原则,他们会优选有较小
IGP metric
的路由,这时候,就是选择从
client1
接收的路由。
2
.在
RR1
上有一条
2.2.2.0
的路由,这时候
RR1
将这条路由传给了
RR2
和它的
3
个
client
,因为在这条路由的
cluster-list
里的
cluster-id
不一样,他们就互相都接收了这条路由,因为路由反射器的性质打破了
IBGP
的水平分割的原则,他们又把这条路由再传给
clients
,而
3
个
client
在接收这条路由的同时,由于
RR
的
client
就是普通的
IBGP
路由器,存在水平分割的原则,他们就不会把这条路由传给其他的
IBGP
邻居,但是他们收到了两次这条路由信息的更新,根据
bgp
的选路原则,他们会优选有较小
IGP metric
的路由,这时候,就是选择从
RR1
接收的路由。
![2005555.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005555.jpg)
(
1
)如果路由是从
Non-client
的
IBGP
学习到的,只将她反射给
client
。
(
2
)如果路由是从
client
学习到的,将它反射给除了发起该路由的
client
以外的所有
non-clent
及其
client
(
3
)如果路由是从
EBGP
对等体学习到的,将它反射给所有的
client
和
non-client
。
Confederations
(联盟)
由子
AS
组成的
AS,
![2005556.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005556.jpg)
联盟 AS9184 是由 AS65510/AS65520/AS65530 组成的。
AS_path
两类属性:
as_sequence
和
as_set,
联盟为
AS_path
增加了两个属性类型。
AS_CONFED_SEQUENCE
和
AS_CONFED_SET
AS_CONFED_SEQUENCE
:由属于本地联盟中的自治系统的
AS
号组成的有序列表,在联盟内部防止路由环路。
AS_CONFED_SET
:由属于本地联盟中的自治系统的
AS
号组成的无序列表,在联盟内部防止在做路由聚合的时候,由于丢失
AS
信息而引起路由环路。
在联盟中,到联盟外部的
EBGP
路由优先与到
AS
成员的
EBGP
路由,到
AS
成员的
EBGP
路由优于
IBGP
路由,联盟和
AS
之间还有一个不同:例如
NEXT_HOP/MED
,可以不加修改地公布给联盟的其他
AS
成员中的
EBGP
对端,而且也可以发送
LOCAL_PREF.
在
RR
环境下,只要
RR
支持路由反射器功能就可以,在联盟环境下,所有的
Router
都要支持这一特性,因为所有
Router
都必须识别
AS_PATH
中的
AS_CONFED_SEQUENCE
和
AS_CONFED_SET
类别,因为向联盟外面公布路由的时候,要把这些
AS_PATH
类去掉,因此其他
AS
的路由器不要支持联盟。
当向联盟外部的
EBGP
对等体发送
update
消息的时候,会将
AS_CONFED_SEQUENCE
和
AS_CONFED_SET
从
AS_PATH
属性中去掉,将联盟
as
号加到
AS_PATH
中,因为这一点,外部的对等体就把联盟看作是一个
AS
而不是一个自治系统的集合。
PS: AS-Path/AS-Set
的区别:
AS-Path
(有序列表)
/AS-Set
(无序集合)
Sugarbush#show ip bgp
BGP table version is 19, local router ID is 172.20.1.1
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
Network Next Hop Metric LocPrf Weight Path
*> 192.168.192.0/21 192.168.1.230 0 400 300 i
*> 192.168.192.0/21 192.168.1.233 0 300 {200,100,500} ?
Peer Group
(对等体组)
如果在某一
Router
的旁边有一些路由器,它们都有一致的策略,就可以指定一个邻居组(对等组)
创建组的命令:
Router(config-router)# neighbor [peer-group-name] peer-group
添加成员的命令:
Router(config-router)# neighbor [ip-address] peer-group [peer-group-name]
这样的好处是简化配置。
BGP Route Damping
(
BGP
路由抑制)
bgp dampening [[route-map map-name] [half-life-time reuse-value suppress-value
maximum-suppress-time]]
Penalty
:默认值是
1000 per flap
Suppress-value
:范围
1
~
20000
;默认值是
2000
Reuse-value
:范围
1
~
2000
;默认值是
750
Half-life
:范围
1
~
45min
;默认值是
15 minutes
Maximum-suppress-time
:范围
1
~
255
;默认值是
60 minutes, or 4 times the half-life
例子:对
172.16.220.0
/
20
做抑制
![2005557.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005557.jpg)
ROUTER C
router ospf 10
redistribute bgp 1 subnets
network 192.68.0.0 0.0.255.255 area 0
router bgp 1
bgp dampening route-map SELECTIVE_DAMPENING
network 192.68.11.0
neighbor 172.16.20.2 remote-as 3
neighbor 192.68.6.1 remote-as 1
no auto-summary
access-list 1 permit 172.16.220.0 0.0.0.255
route-map SELECTIVE_DAMPENING permit 10
match ip address 1
set dampening 20 950 2500 80
route-map SELECTIVE_DAMPENING permit 20
改进
BGP
的聚合
BGP
的邻居认证
#bgp
的认证仅仅限制于邻居之间
.
例如
:\
nei 5.5.5.5 password cisco(
默认就是
md5
认证
)
调用认证功能需要
CISCO ios
软件在
TCP
连接中每发送一个
TCP
字段就生成并校验
MD5
摘要,如果调用了认证,但是其中一个字段没有通过认证,会向
console
口发送一个
message
如果只是在一边配置了认证:
%TCP-6-BADAUTH: No MD5 digest from [peer's IP address]:11003 to [local router's IP address]:179
如果两边的认证密码不匹配:
%TCP-6-BADAUTH: Invalid MD5 digest from [peer's IP address]:11004 to [local router's IP address]:179
正则表达式
.
任意单一字符,包括空格,句号
.
标志匹配任意一个字符,包括空格,如:当我们使用
permit .*
的时候,表示匹配所有的路由。
[]
在方括弧中罗列的任何字符
[^]
除了在方括弧中罗列字符外任何字符
-
在由连字符所分隔的两个字符之间的任意字符,
表示两个
AS
之间的连接符,如:
permit ^254_253_252$,
表示起源于
252
,经过
253
和
254
的路由条目
?
字符或模式出现
0
次或
1
次,标志匹配前面的一个字符,注意:只是匹配一个字符。
?
允许前面的字符出现一次或者是空。如:
permit 254[0-9]?$,
那么就是只匹配起源于
AS 254/2540---2549
的路由
,
注意?在
CISCO
路由器上用
CTRL-V
来替代。
*
字符或模式出现
0
次或多次,标志匹配前面的一个字符,注意,和
?
不同的是,
*
允许前面的字符出现许多次或者是空,而
?
只允许匹配出现一次或者是空。如:
permit 254[0-9]*$,
那么就是只匹配起源于
AS 254/2540---25499999........
的路由
如果是
permit 254[5-9],
那么就是匹配起源自
AS 254/2545
-
2549/25455-25459/254555-
254599............
254599............
+
字符或模式出现
1
次或多次,
+
和
*
的区别就是
*
可以匹配空,但是+必须匹配一个值才行如
permit ^254+$,
表示起源于
254
或者
2544/25444........
而
permit ^254*$
则可以匹配起源于
AS 25/254/25444
。
^
一行的开始,标志一个表达式的开始,如果不用这个字符,那么默认就没有开始的限制了。如:当使用
permit ^254,
那么表示的意思就是和本地相连的
AS
是
254
传过来的路由全部都允许了。如果使用简单的
permit 254
,那么就是只要是经过了
AS 254
的路由,全部都被允许了,其实和
permit _254_
表达的意思相同。
$
一行的结束,标志一个表达式的结束,如果不用这个字符,那么默认就没有结束的限制了。如:当使用了
permit 254$,
那么表示的意思就是起源于
AS 254
的路由全部被接受,如果
permit 254
那么见上面的解释。
|
由元字符特殊字符分隔的字之一
_
一个逗号,行的开始,行的结束或空格
BGP
的其他性质
1
.
BGP
和
ISIS
一样以链路为边界。
2
.
BGP
不支持负载均衡,因为通过它复杂的选路原则一定可以决定一条最优的路由。
3
.
BGP
版本向后兼容,如果发现对方是更低的版本,将会降低自己的版本来与之兼容,当前的版本是
BGP V4
。
4
.
BGP Peer
=
BGP Speaker
=
BGP Neighbor
5.
在本
AS
内,
BGP
的
AS-PATH
属性不变,在离开本
AS
的时候,会在
AS-PATH
前面附加上本
AS
的
AS
号。
6.
一个
Router
只能运行一个
BGP
实例(不会把一个路由器放到多个
BGP
(
AS
)中)。但是可以采用
local-as
这来使
Router
可以同时有
2
个
asn(
但是实际上只用一个
)
,这是对于
Ebgp
邻居而言的,如果在
A
(
as 109
)
-----EBGP----B
(
as 159
)
之间,
A
配置了
neighbor 145.2.2.2 local-as 210
,
这时候,
B
就会以为它正在和
Asn
是
210
的
EBGP Peer
建立邻居关系,
A
在向
B
通过路由更新的时候,会把路由里面的
as
号码改成
local-as
中配置的
asn
,在
A
上显示的从
B
上学习到的路由就是
210_159,
在
B
上显示的从
A
上学习到的路由就是
159_210
就相当于
as210
和
as159
的
EBGP
在通信。这在两个
ISP
何必的时候作为过渡策略使用,避免大面积的地址重新规划和网络环境的重新配置。
7. iBGP TTL = 255
eBGP TTL= 1
8
.
当重分布
OSPF
到
BGP
中的时候,或者如果存在
RR
,
Ospf
的
router-id
必须和
BGP
的
router-id
一样。
# redistribute ospf 10 match internal external 1 external 2
default-metric 2
redistribute ospf internal external 1 external 2: 必须显式的匹配internals & externals OSPF路由
default-metric 2: Assigns a metric of 2 hops in BGP to the OSPF routes
# redistribute ospf 10 match internal external 1 external 2
default-metric 2
redistribute ospf internal external 1 external 2: 必须显式的匹配internals & externals OSPF路由
default-metric 2: Assigns a metric of 2 hops in BGP to the OSPF routes
#
router eigrp 100
redistribute bgp 100 route-map test
route-map test permit 10
set automatic-tag
set as-path tag
redistribute bgp 100 route-map test
route-map test permit 10
set automatic-tag
set as-path tag
This will redistribute the BGP path and Origin code into EIGRP /... [Cisco conly]
BGP
的几种管理距离
Internal BGP
:
200
External Border Gateway Protocol (BGP)
:
20
Local BGP : 200
Local BGP : 200
Exterior Gateway Protocol (EGP)
:
140
router bgp 200
distance bgp 20 95 200
BGP -4 Command
1
.
Router(config-router)#neighbor {ip-address | peer-group-name} remote-as autonomous-system
可以用
IP
地址或对等组名来指定,
这个
ip-address
是对方邻居的路由更新源。
EBGP
(
ip-address
应该是与本
Router
直连的
IP
)
IBGP
(
ip-address
是对方路由器上任何一个
IP
地址,只要是路由可达,一般是用
L0
口做更新源,因为这样做可以提高
BGP
网络的健壮性),用
Lo
口做更新源一般用于
IBGP
中,在
EBGP
中使用,要满足路由可达的原则。
PS:
①
两个
BGP Neighbor
的更新源必须匹配,不然
数据包将会被丢弃。
②
在
EBGP
中的
TCP
包的
TTL
值是
1
,所以有了
Neighbor ip-address ebgp-multihop x(x
是
TTL
的值
)
命令。
2
.
Router(config-router)#neighbor {ip-address|peer-group-name} shutdown| soft-reconfiguration inbound
Shutdown
:邻居关系并没有被删除,而是暂时不可用,一般用于维护和更改策略,它防止路由摆动(
Route Flapping
),管理
shut down
。
Soft-reconfiguration inbound
:告诉
Router
存储所有从它的
Neighbor
更新的路由,才可以让新的
inbound policy
生效而不要重新
Reset BGP
(会话连接仍然维持),这是条内存密集型命令。
3
.
clear ip bgp {* | address | peer-group-name} [soft [in | out]]
*
:所有的
BGP
会话都将被
Reset
,全部
BGP
路由表将被丢弃,
BGP
会话状态更改为
Idle
。
Address
:特定
IP
地址的邻居将被
Reset
,其
BGP
会话状态更改为
Idle
,清除从该
BGP Peer
学习到的路由。邻居关系将重新建立。
Peer-group-name
:
指定的
BGP peer-group
将被
Reset
Soft out
:
Router
不会丢失从
Neighbor
那边学习到的路由,
Router
重新发送所有
BGP
路由给
Neighbor
而不要
Reset BGP
会话(连接仍然维持),对
inbound policy
无效,在做
Onbound policy
时,这条命令强烈建议使用。
Soft in
:
Routes advertised to this neighbor are not withdrawn
,
Router
存储所有从它的
Neighbor
更新的路由,才可以使用存储的,未经改动的更新信息来执行新的
inbound policy
,而不要重新
Reset BGP
(会话连接仍然维持)。
下列情况下必须手动
Reset
邻居关系
1
.补充或者改变与
BGP
相关的
ACLS
2
.改变与
BGP
有关的
weight
3
.改变与
BGP
有关的
distribute-list
4
.改变与
BGP
有关的
Timer
5
.改变与
BGP
有关的
Admin distance
6
.改变与
BGP
有关的
Router-map
4
.建立
Neighbor
关系的特例(配置练习)
A
以对方的
LO0
(
2.2.2.2
)口来建立邻居
(
在
as 100
中
)
B
以对方的直连接口(
12.12.12.1
)来建立邻居
(
在
as 200
中
)
![2005558.jpg](http://cunshen.cnblogs.com/p_w_picpaths/cnblogs_com/cunshen/2005558.jpg)
A:Router bgp 100
Neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 ebgp-multihop 2
B: Router bgp 200
Neighbor 12.12.12.1 remote-as 100
Neighbor 12.12.12.1 update-source lo0
待续
…
4
.
r2#show ip rou
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
r2#show ip bgp
BGP table version is 13, local router ID is 2.2.2.2
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
*>i11.11.11.0/24 1.1.1.1 0 100 0 i
*> 45.45.45.0/24 4.4.4.4 0 0 400 i
5. show ip bgp paths
显示
BGP
拓扑图
和
show ip bgp
显示
BGP
路由表的区别?
6.
私有
AS
号码剥离:
RTA(config)#router bgp 1
RTA(config-router)#neighbor 172.16.20.2 2 remote-as 65001
RTA(config-router)#neighbor 192.168.6.3 remote-as 7
RTA(config-router)#neighbor 192.168.6.3 remove-private-as
1. Bgp
配置缺省路由和路由聚合
① ip route 0.0.0.0 0.0.0.0 null0
router bgp 100
network 0.0.0.0
(向所有建立的邻居都发送缺省路由)
② router bgp 100
neighbor *.*.*.* default-originate
(只是向特定的邻居发送缺省路由,如果只想发送缺省路由,则需要做路由过滤,这条命令不需要)手动建立一条缺省路由。)
2. Neighbor *.*.*.* version
:不同版本的
BGP
直接的手动协商。
3.
1
收藏
转载于:https://blog.51cto.com/steve/50600
Ctrl+Enter 发布
发布
取消