Next-HOP的三个工作原则:
原则一:
如果宣告路由器与接收路由器的位置位于不同的AS,那么Next-Hop是宣告路由的接口地址。
原则二:
如果正在宣告的路由器和接收路由器在同一个AS内,并且UPdate消息中的路由前缀NLRI目的也是在同一个AS 中,则next_hop为宣告路由器的IP地址.
其实在这个图中,对于最后一个路由器来说,如果要到达172.16.5.0的网段,首先要有IGP路由能到172.16.83.2,进行路由的递归查找,最后才能到达目的网段。
所以为什么说BGP实际上查找路由表的时候是进行递归查找的。
原则三:
如果宣告路由器和接收路由器是不同AS的路由器,那么所学到的路由的下一跳始终是宣告路由器的接口IP地址。
要,使下一跳是172.16.83.2,必须在ASBR 172.16.83.2上面的bgp进程下面:neighbor 172.16.101.2 next-hop-self.
验证:
R2的bgp配置:
R3的BGP配置:
在R4上查看:
从上图看是符合原则三的。
下面在R2的bgp进程增加network 20.1.1.0 mask 255.255.255.0
在R1和R4上查看:
从上面的图可以看出是符合规则一,规则二。
BGP的选路规则第三条:如果本地优先级相同,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由。
验证拓扑:
----------------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
查看:
从上图可以看出是符合“如果本地优先级相同,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由”。