总结
1、完成所有路由器的IGP配置
2、使用直连接口建立EBGP对等体关系
3、使用环回接口建立IBGP对等体关系
4、使用connect-interface命令修改IBGP建邻源IP地址,双方均修改
5、使用next-hop-local命令修改路由传递的下一跳属性
6、若存在使用环回接口建立EBGP对等体关系,则需要建立通讯条件,并且使用ebgp-max-hop命令修改TTL值
一,BGP对等体关系的建立
1)EBGP对等体之间---直连建邻(直连接口IP)
1、启动BGP进程
[r1]bgp 1 --- 1不是进程号,是路由器所在AS的AS号。一台BGP路由器只启动一个BGP进程
2、配置RID
[r1-bgp]router-id 1.1.1.1 ---可以手工配置RID
3、配置BGP对等体,并指定所在AS号。手工指定邻居关系
[r1-bgp]peer 12.0.0.2 as-number 2
注:[r1-bgp]display bgp peer --- 查看BGP邻居表
2)IBGP对等体之间---环回建邻
由于IBGP对等体同处于一个AS内部,正常一个AS内部将存在大量备份路径;若使用物理接口建立邻居关系,将浪费备份链路及负载均衡资源;故建议使用环回接口进行BGP邻居关系的建立
因为IBGP水平分割导致AS内部的IBGP路由只能传递一跳,所以可以 在AS内部构建全连(两两之间均)建立BGP对等体的方式解决
[r2-bgp]peer 3.3.3.3 as-number 2
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
--- 指定邻居发包时 使用环回0接口对应的IP地址作为源IP发包
为BGP建立对等体是,源地址默认是递归路由表产生,所以可能导致建立 对等体的对象身份不统一,所以必须在环回建邻时,手工修改更新源地址
一般双方均要修改本地数据包的源IP地址
3)EBGP对等体之间---环回建邻
若EBGP对等体之间存在多条直连链路时,才可以使用环回建立对等体关系(因为不使用环回,会需要使用tcp维持多条链路,造成资源使用量过大)
1.首先,为保证环回网段之间具备路由条件,一般建议使用静态路由
ip route-static A的环回 24 B接口
ip route-static B的环回 24 A接口
2.对等体配置
[r4]bgp 2
[r4-bgp]peer 5.5.5.5 as-number 3
[r4-bgp]peer 5.5.5.5 connect-interface loopback 0
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 as-number 2
[r5-bgp]peer 4.4.4.4 connect-interface loopback 0
3.修改TTL值>1
EBGP对等体之间为了保证使用直连建邻,所以会将TTL值设置为1(可以正常建立TCP和BGP会话,但是路由器认为该连接和会话存在异常,在BGP对等体建立完成后,发送notification报文断开连接,从而产生一个现象---状态机震荡)
如果需要非直连建邻,则必须将TTL值改大才行
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 --- 将和5.5.5.5建邻的数据包中的TTL值改为2
[r5-bgp]peer 4.4.4.4 ebgp-max-hop --- 后面不加数字,则代表将TTL值改为255
注: 建议EBGP对等体关系建立使用第一种方法,IBGP对等体关系建立使用第二种方法,且两边均要修改,不然无法建立对等体关系,并会存在状态机震荡
二,路由发布
1)通过Network命令来发布路由
BGP可以通过network命令将路由表中只要是存在的路由进行发布。
[r1-bgp]network 1.1.1.0 24 --- network+目标网段+掩码,必须和路由表中相同
注:[r1-bgp]display bgp routing-table --- 查看BGP表
在BGP表中,除第一列network字段外,剩余后面的字段都属于BGP属性。
NETWORK---目标网段+掩码消息
Nexthop----对于BGP路由而言, 谁发送的路由信息,下一跳谁发的下一跳就是谁,如果是自身发布的 BGP路由,则用0.0.0.0来指代来源为自身
PATH--AS_PATH属性,当一条路由信息发出本AS时会添加本AS的AS号,如果在AS内部 传递则仅传递该属性 状态码---BGP对于每一条路由信息均设置了
状态码---在路由信息最前方所存在的符号
* ---路由可用----设备收到的路由信息,先检测下一跳的可达性,可达则可用,可用的路由才会参与路由选举。
> ---路由最优---如果设备收到到达相同网段多条可用的路由时(BGP路由有多个来源),会涉及选路,bgp会 根据每一条路由的属性 选择最好的路由 最终加载到设备路由表。 只有最优的路由才会加表和传递。
i --- 表示路由信息从IBGP对等体学来
当设备从EBGP对等体处学来一条路由信息后,并且该信息可用且优,则将会加载到路由表中,其协议字段为 --- EBGP,默认优先级为255(AS间路由不可靠,防止路由回馈)
![](https://i-blog.csdnimg.cn/direct/dc71cd1e2a654f54a01675dbc2c90989.png)
问题一:
因为AS-BY-AS的规则,所以,一个AS内部的路由信息的属性默认情况下是不会发生变化的,包括下一跳属性(示例中,r2与r3的下一跳会相同)
[r2-bgp]peer 3.3.3.3 next-hop-local---给3.3.3.3发路由信息时将下一跳改为本地的IP地址
当设备从IBGP对等体处学来一条路由信息后,并且该信息可用且优,则将会加载到路由表中,其协议字段为 --- IBGP,默认优先级为255。
注意:修改下一跳属性,是一对一的
bgp 不能发布建邻网段---解决方案直接换个网段发布
2)通过重发布进行批量发布路由
[r2-bgp]import-route ·····
OGN --- 起源码 --- 标识BGP路由的来源
1,i --- NETwork宣告的路由来自IGP协议(包含静态和直连)
2,e --- 通过EGP协议(EGP指的是BGP之前使用的外部网关协议EGP)发布的路由信息
3,?--- 通过除了以上两种方法学到的路由 --- 例如重发布的路由
路由策略抓取重发布
1.抓取想要发布的路由
[r1]ip ip-prefix aa permit 192.168.1.0 24
[r1]ip ip-prefix aa permit 192.168.2.0 24
[r1]ip ip-prefix aa permit 192.168.3.0 24
[r1]ip ip-prefix aa permit 192.168.0.0 16 greater-equal 24 less-equal 24 --可以直 接范围抓取很多网段
2.创建路由策略
[r1]route-policy aa permit node 10 ---抓取想要发布的路由
[r1-route-policy]if-match ip-prefix aa
3.重发布-调用
[r1-bgp]import-route direct route-policy aa
BGP路由通告原则
当一条BGP路由器发现了多条可以到达同一地址的路由条目,该设备会通过一个路由选择过程在这些路由条目中选择一条最优的路由,将这条路由加入到全局路由表中,并且在向其他BGP对等体通过该路由条目时,也只会通过最优的路由
通常情况下,路由器只会将最优的路由加载到路由表中,除了激活了负载均衡情况外
当一台路由器从EBGP邻居学习到了BGP路由时,缺省情况下,会将该条路由条目通告给所有IBGP对等体以及EBGP对等体
当一台路由器从自己的IBGP学习到BGP路由,缺省情况下,不会将该条路由条目通告给所有IBGP对等体 --- 因为IBGP水平分割原则
当一台路由器从自己的IBGP学习到BGP路由时,如果同步规则被激活,只有从IGP协议也学习到该路由条目后,才会将BGP路由激活,并学习到本地以及通告到EBGP对等体。如果同步规则被关闭,即使没有从IGP学习到该路由也会将BGP路由通告给EBGP对等体。
-
三,路由聚合---等价汇总
1)自动聚合
--只能针对重发布的路由进行聚合
只能聚合到主类---会产生巨大的路由黑洞
一旦一条路由状态码是S-suppressed(抑制),则代表该路由被抑制将不能传递给 其他BGP对等体
BGP因为害怕缺省和聚合相遇会出现环路,会自动在配置了聚合的路由器上自动生成 一条指向空接口的防环路由。
2)手工聚合
[r1-bgp]aggregate 192.168.0.0 22
问题一: 手工聚合不会自动抑制明细路由
解决方法,在聚合同时使用明细抑制(detail-suppressed )的关键字去抑制所 有明细路由
[r1-bgp]aggregate 192.168.0.0 22 detail-suppressed
BGP-有时候并不希望直接抑制所有明细路由
所以可以利用抑制策略去抑制不想发布的明细路由,剩下的明细也会发布
1.抓取需要抑制的网段
[r1]ip ip-prefix bb permit 192.168.1.0 24
[r1]ip ip-prefix bb permit 192.168.2.0 24
2.创建路由策略
[r1]route-policy bbb permit node 10
[r1-route-policy]if-match ip-prefix bb--利用路由策略关联前缀列表抓取到的路由
3.调用
[r1-bgp]aggregate 192.168.0.0 22 suppress-policy bbb --必须保证抑制策略和路 由策略名称一致才能匹配