Next-HOP的三个工作原则:

原则一:

如果宣告路由器与接收路由器的位置位于不同的AS,那么Next-Hop是宣告路由的接口地址。
 

BGP属性分析--Next-hop_BGP 

原则二:

如果正在宣告的路由器和接收路由器在同一个AS内,并且UPdate消息中的路由前缀NLRI目的也是在同一个AS 中,则next_hop为宣告路由器的IP地址.
 

BGP属性分析--Next-hop_BGP_02

其实在这个图中,对于最后一个路由器来说,如果要到达172.16.5.0的网段,首先要有IGP路由能到172.16.83.2,进行路由的递归查找,最后才能到达目的网段。

所以为什么说BGP实际上查找路由表的时候是进行递归查找的。
 

原则三:

如果宣告路由器和接收路由器是不同AS的路由器,那么所学到的路由的下一跳始终是宣告路由器的接口IP地址。
 

BGP属性分析--Next-hop_Next-hop_03

要,使下一跳是172.16.83.2,必须在ASBR 172.16.83.2上面的bgp进程下面:neighbor 172.16.101.2 next-hop-self.

验证:

 

BGP属性分析--Next-hop_BGP_04

R2的bgp配置:

BGP属性分析--Next-hop_BGP_05 

R3的BGP配置:

BGP属性分析--Next-hop_BGP_06

在R4上查看:

BGP属性分析--Next-hop_BGP_07

从上图看是符合原则三的。

下面在R2的bgp进程增加network 20.1.1.0 mask 255.255.255.0

BGP属性分析--Next-hop_Next-hop_08

在R1和R4上查看:

BGP属性分析--Next-hop_BGP_09

BGP属性分析--Next-hop_BGP_10

从上面的图可以看出是符合规则一,规则二。

BGP的选路规则第三条:如果本地优先级相同,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由。

验证拓扑:

 

BGP属性分析--Next-hop_BGP_11

----------------R1----------------

interface Loopback0
ip address 100.100.100.100 255.255.255.0
ip ospf network point-to-point
!
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
duplex auto
speed auto
!
router ospf 200
router-id 1.1.1.1
log-adjacency-changes
network 12.1.1.0 0.0.0.255 area 0
network 100.100.100.0 0.0.0.255 area 0

-----------------R2----------------------

interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 23.1.1.2 255.255.255.0
duplex auto
speed auto
!
router ospf 200
router-id 2.2.2.2
log-adjacency-changes
network 12.1.1.0 0.0.0.255 area 0
!
router bgp 200
no synchronization
bgp router-id 2.2.2.2
bgp log-neighbor-changes
network 100.100.100.0 mask 255.255.255.0
neighbor 23.1.1.3 remote-as 200
no auto-summary

-----------------------R3--------------------

interface Loopback100
ip address 100.100.100.100 255.255.255.0
!
interface FastEthernet0/1
ip address 23.1.1.3 255.255.255.0
duplex auto
speed auto
!
router bgp 200
no synchronization
bgp router-id 3.3.3.3
bgp log-neighbor-changes
network 100.100.100.0 mask 255.255.255.0
neighbor 23.1.1.2 remote-as 200
neighbor 23.1.1.2 route-map set_weight in
no auto-summary
!
route-map set_weight permit 10
match ip address 1
set weight 32768
!
route-map set_weight permit 20

查看:

BGP属性分析--Next-hop_BGP_12

从上图可以看出是符合“如果本地优先级相同,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由”。