R1和R2,R4和R5建立EBGP对等体
R1和R2(R4和R5)之间属于EBGP对等体,可以使用直连物理接口建立对等体关系,TTL值默认1。由于使用直连物理接口方式建立,刚好一跳到达。
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 12.0.0.2 as-number 200
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.0.0.1 as-number 100
R1和R2(R4和R5)也可以使用Loopback 0环回接口建立对等体关系,但是使用环回接口进行配置时,保证两路由器的环回互通,然后更改使用命令connect-interface LoopBack0。由于到达环回接口为2跳,所以TTL值需要改为2。
[R1]ip route-static 2.2.2.2 32 12.0.0.2
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 2.2.2.2 as-number 200
[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R1-bgp]peer 2.2.2.2 ebgp-max-hop 2
[R2]ip route-static 2.2.2.2 32 12.0.0.1
[R2]bgp 200
[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 LoopBack 0
[R2-bgp]peer 1.1.1.1 ebgp-max-hop 2
R2,R3和R4建立OSPF
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]a 0
[R2-ospf-1]network 2.2.2.2 0.0.0.0
[R2-ospf-1]network 23.0.0.2 0.0.0.0
[R3]ospf 1 router-id 10.0.3.3
[R3-ospf-1]a 0
[R3-ospf-1]network 3.3.3.3 0.0.0.0
[R3-ospf-1]network 23.0.0.3 0.0.0.0
[R3-ospf-1]network 34.0.0.3 0.0.0.0
[R4]ospf 1 router-id 10.0.4.4
[R4-ospf-1]a 0
[R4-ospf-1]network 4.4.4.4 0.0.0.0
[R4-ospf-1]network 34.0.0.4 0.0.0.0
R2,R3和R4建立IBGP对等体
R2,R3和R4属于IBGP,在IBGP对等体中,常常使用环回接口地址作为源目IP地址,原因环回接口稳定并且可以借助AS内部的IGP的冗余拓扑来保证可靠性, TTL值被设置为255 ,TTL值无需更改。
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 3.3.3.3 as-number 200
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 2.2.2.2 as-number 200
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 3.3.3.3 as-number 200
[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
1.配置BGP配置完成后,通过network命令发布路由信息
BGP邻居配置完成,但是无法学习整个网络中的网段的信息。需要进行路由发布来保证全网ping通。
路由发布——对于BGP而言,只要是路由表中存在的信息,都可以通告network命令发布
R1发布路由1.1.1.1
[R1]bgp 100
[R1-bgp]network 1.1.1.1 32
注意:BGP使用network命令宣告时,该路由信息必须与全局BGP路由表中存在的路由项一致
R1,R2查看BGP路由表
network:表示目标网络号
NextHop :下一跳谁先发送的路由信息下一跳写谁;如果是本地发送的下一跳就写0.0.0.0,NextHop属于BGP路径属性。
*> 为状态码,表示可用且优(不同的状态码表示路由信息的不同)
BGP路由表状态码
“*” 状态码:表示路由可用
所有设备会根据下一跳属性中的参数来查询本地路由表的可达性,本地路由表中可达,则代表该路由信息可用;若本地不可达,则表示该路由信息不可用。如果该路由条目不可用,则将不会参与到路由信息的优先过程中。
“>” 状态码:代表优先
当收到多条到达相同网段的路由信息时,并且都可用,则将依据属性在其中选择最优的路由信息进行加表及传递
“i” 状态码:代表该路由信息是通过IBGP对等体学习到的 ,只有i则表示路由不可用也不优
R3查看BGP路由表,状态码为i的原因是R2传递来的路由信息是不可用且不优的,原因在于下一跳属属性未更改,无法递归。
解决命令:[R2-bgp]peer 3.3.3.3 next-hop-local
将路由传递给自己的3.3.3.3邻居时,将路由中的下一跳属性改为本地
R3查看BGP路由表信息,状态码显示可用且优
R2和R4建立全连接IBGP,由于IBGP水平分割,从IBGP学习到的路由不可以传递到自己的其他的IBGP邻居,故R3无法将从R2学习到的路由,传递给邻居上R4。
故R2和R4建立全连的IBGP对等体
[R2-bgp]peer 4.4.4.4 as-number 200
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[R4]bgp 200
[R4-bgp]peer 2.2.2.2 as-number 200
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
R4查看BGP路由表
和R3一样同理,在R2上将R4路由中的下一跳属性改为本地
[R2]bgp 200
[R2-bgp]peer 4.4.4.4 next-hop-local
R5发布路由
当R5发布路由5.5.5.5时
[R5-bgp]network 5.5.5.5 32
R4查看BGP路由表
5.5.5.5路由没有显示状态码,可以理解为不可用。由于R4已经通过静态路由可以访问到了R5的环回5.5.5.5,R5又在通告BGP宣告了5.5.5.5路由,导致双方起冲突始路由不可用。
R5发布路由10.1.1.1,将宣告的5.5.5.5路由删除
[R5-bgp]undo network 5.5.5.5
[R5-bgp]network 10.1.1.1 24
R4显示路由10.1.1.0可用且优
R2和R3查看BGP路由表时状态码显示为i
在R4上将R2和R3路由中的下一跳属性改为本地
[R4]bgp 200
[R4-bgp]peer 2.2.2.2 next-hop-local
[R4-bgp]peer 3.3.3.3 next-hop-local
显示10.1.1.0路由可用且优
使用R1作为测试
R1已经学会了网络中的路由,实现全网ping通
总结:
完成所有路由器的IGP配置
使用直连接口建立EBGP对等体
使用环回建立IBGP对等体
使用 connect-interface命令修改IBGP建源IP地址,双方均修改
使用next-hop-local命令修改路由传递的下一跳属性
若存在使用环回接口建立EBGP对等体,则需要建立通讯条件,并使用ebgp-max-hop x命令修改TTL值。