BGP路由协议的next-hop属性
一、使用next-hop属性的原因:
EBGP之间传递路由时,下一跳会改变,但是在IBGP之间传递路由时,下一跳不改变,所以会造成下一跳不可达,这个时候就要用next-hop属性,改变下一跳,使其路由可达。
IGP的下一跳地址不一定是BGP的下一跳地址;Next-hop-local命令用来修改BGP的下一跳地址,可以通过peer next-hop-invariable命令不修改下一跳地址。
二、缺省情况下:
1、BGP向EBGP对等体通告路由时,向IBGP对等体发布引入的IGP路由时,将下一跳属性设为自身的接口地址。
2、BGP从EBGP向IBGP对等体通告非标签路由时,不改变下一跳属性,通告标签路由时,将下一条属性改为自身的接口地址。
3、BGP从IBGP向IBGP对等体通告路由时,不改变下一跳属性,相当于执行命令peer next-hop-invariable。
三、peer next-hop-local与peer next-hop-invariable的差异
1、peer next-hop-local:命令用来设置向IBGP对等体通告路由时,把下一跳属性设为自身的IP地址。
2、peer next-hop-invariable:命令配置不同AS域的PE间向EBGP对等体发布路由时不改变下一跳,向IBGP对等体发布引入的IGP路由时使用IGP路由的下一跳地址。
四、配置过程
如果你不写peer next-hop-local,那么BGP路由更新的下一跳将不会被修改,而是会保留默认的下一跳,即对端的地址。这可能会导致一些问题,特别是在你的网络中使用了多个出口时。
peer next-hop-local的作用是将BGP路由的下一跳改为本地出接口的IP地址,这通常用于实现更优的路由选择或避免出接口上可能出现的可达性问题。
如果你在BGP邻居关系中不写peer next-hop-local,那么你可能需要在你的网络中手动配置额外的路由规则,以确保数据包可以正确地通过最优路径返回给对端。
(一)拓扑图
(二)配置过程
1、配置AR1:
System-view
sysname AR1
interface GigabitEthernet0/0/1
ip address 10.1.12.1 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.13.1 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
bgp 64512
router-id 1.1.1.1
peer 10.1.12.2 as-number 64513
peer 10.1.12.2 ebgp-max-hop 255
peer 10.1.13.3 as-number 64512
ipv4-family unicast
undo synchronization
network 1.1.1.1 255.255.255.255
peer 10.1.12.2 enable
peer 10.1.13.3 enable
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.13.0 0.0.0.255
2、配置AR2:
System-view
sysname AR2
interface GigabitEthernet0/0/1
ip address 10.1.12.2 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.23.2 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
bgp 64513
router-id 2.2.2.2
peer 10.1.12.1 as-number 64512
peer 10.1.12.1 ebgp-max-hop 255
peer 10.1.23.3 as-number 64512
peer 10.1.23.3 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 2.2.2.2 255.255.255.255
peer 10.1.12.1 enable
peer 10.1.23.3 enable
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.0 0.0.0.255
network 10.1.23.0 0.0.0.255
3、配置AR3:
System-view
sysname AR3
interface GigabitEthernet0/0/1
ip address 10.1.13.3 255.255.255.0
interface GigabitEthernet0/0/2
ip address 10.1.23.3 255.255.255.0
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
bgp 64512
router-id 3.3.3.3
peer 10.1.13.1 as-number 64512
peer 10.1.23.2 as-number 64513
peer 10.1.23.2 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 3.3.3.3 255.255.255.255
peer 10.1.13.1 enable
peer 10.1.23.2 enable
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 10.1.13.0 0.0.0.255
network 10.1.23.0 0.0.0.255
(三)查看路由情况
1、查看OSPF邻居与OSPF路由表
(1)在总公司的AR2上查看OSPF的邻居,可以看出,总公司的AR2与分公司的AR1、AR3已经建立了邻接关系。
(2)在分公司的AR1上查看OSPF路由表
2、查看BGP邻居与BGP路由表
(1)在总公司的AR2上查看BGP邻居,可以看出与分公司的AR1及AR3都建立了BGP的邻居关系,状态均为Established。
(2)在分公司的AR3上查看BGP路由表,重点观察到达总公司AR2的2.2.2.2/32的2条路由,主路由与次优路由的下一跳均在EBGP的总公司AR2的2个接口上。
3、查看ip路由表
(1)在分公司的AR1上查看ip路由表,可以看出与总公司的AR2建立了EBGP邻居,也与分公司的AR3建立了iBGP的邻居关系。
(2)在总公司的AR2上查看ip路由表,总公司到达分公司AR1的1.1.1.1与分公司的3.3.3.3,下一跳均是10.1.12.1。
(3)在总公司的AR2上执行tracert –a 2.2.2.2 3.3.3.3命令,跟踪从总公司的AR2到达分公司AR3的3.3.3.3的网络流量路径,可以看出,BGP为防环路,中间途经了AR1,而不是直接到达AR3,如下图:
五、验证效果
(一)next-hop属性默认采用peer next-hop-invariable时,注意看分公司的AR1到总公司的AR2的BGP路由表,主路由的下一跳地址是10.1.12.2,次优路由的下一跳是10.1.23.2,下图标识1是主路由,标识2是次优路由。
(二)next-hop属性使用命令peer next-hop-local修改后,注意对比从分公司的AR1到达总公司的2.2.2.2时,次优路由的下一跳变化。
至此,BGP路由协议的next-hop属性结束,在同一个AS自治系统区域的AR1与AR3上配置peer next-hop-local,EBGP之间不需要配置。在AR1上配置peer next-hop-local时,在AR3上查看到达AR2的次优路由下一跳会变化;同理在AR3上配置peer next-hop-local时,在AR1查看到达AR2的次优路由下一跳也会变化。