上述命令出现的EBGP邻居(ebgp-multihop)和IBGP邻居(next-hop-self)中。如下图
一、基础认识EBGP和IBGP
R1--R2属于不同AS号,是外部边界网关EBGP;
R2--R3属于同意AS号,是内网边界网关IBGP;
二、基本配置
1.配置R1,R2,R3的直连,保证直连连通性(略)
2.只在R2和R3之间部署OSPF,保证OSPF区域连通性(略)
3.部署BGP
(1)在R1和R2部署BGP基于环回口(基于环回口意义是:若远程拉多条线,再用直连地址就显得麻烦。)
(a)R1,R2部署静态路由
R1: ip route 2.2.2.2 255.255.255.255 Serial0/0
R2: ip route 1.1.1.1 255.255.255.255 Serial0/0
(b)R1,R2基于静态路由建立BGP邻居
R1:
router bgp 100
no synchronization
bgp router-id 1.1.1.1
neighbor 2.2.2.2 remote-as 230
neighbor 2.2.2.2 update-source Loopback1
network 1.1.1.1 mask 255.255.255.255
no auto-summary
R2:
router bgp 230
no synchronization
bgp router-id 2.2.2.2
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source Loopback1
network 2.2.2.2 mask 255.255.255.25
no auto-summary
(c)R1,R2部署多跳
使用sh ip bgp summary查看该1.1.1.1,2.2.2.2 的bgp路由状态是Idle—初始化,因为EBGP是跨不同的AS号,头部的包的TTL值默认是1(防止信息泄露的内网),需要把信息送到内网,就需要更改TTL值,比如:传到R3的就需要2跳,故TTL=2,(更改多跳的命令就是该neighbor 对方地址 ebgp-multihop 2)
R1:
Route bgp 100
neighbor 2.2.2.2 ebgp-multihop 2
R2:
Route bgp 230
neighbor 1.1.1.1 ebgp-multihop 2
上述2图的状态值为0,属于正常状态,表示没有学到2.2.2.2的路由。
在R1,R2通告1.1.1.1,2.2.2.2
R1:
network 1.1.1.1 mask 255.255.255.255
R2:
network 2.2.2.2 mask 255.255.255.255
上述2图的状态值,变成1,说明都学到对方的路由信息,只有1条。
可在R1,R2上,sh ip route bgp,一条也没有,是因为R1和R2使用的环回口建立的邻居,使用的静态路由,所以使用sh ip route bgp什么也没有。
在sh ip route static,就可以看见
4.在R2,R3部署BGP,使R3学到路由信息
R2:
neighbor 3.3.3.3 remote-as 230
neighbor 3.3.3.3 update-source Loopback1
R3:
router bgp 230
no synchronization
bgp router-id 3.3.3.3
network 3.3.3.3 mask 255.255.255.255
neighbor 2.2.2.2 remote-as 230
neighbor 2.2.2.2 update-source Loopback1
no auto-summar
若不指定下一条,就会出现,R3学不到R1的路由,并R1 ping不通R3的3.3.3.3
指定后
R2:
router bgp 230
neighbor 3.3.3.3 next-hop-self
指定后R3学到R1的路由
验证:R1 ping 3.3.3.3 source 1.1.1.1
注意:next-hop
1.R1,R2,R3是同一AS;
R2学到的1.1.1.1 的下一跳是12.1.1.1
R3学到的1.1.1.1 的下一跳是23.1.1.1
2.R1与R2--R3属于不同AS;
R2学1.1.1.1的下一跳是12.1.1.1,
R3学1.1.1.1的下一跳也是12.1.1.1--因为R2,R3同一AS,所以需要在R2上:
方法一:(推荐)
R2:
neighbor 3.3.3.3 remote-as 230
neighbor 3.3.3.3 update-source Loopback1
neighbor 3.3.3.3 next-hop-self //从R3学到的路由,下一跳是3.3.3.3
R3:
neighbor 2.2.2.2 remote-as 230
neighbor 2.2.2.2 update-source Loopback1
neighbor 2.2.2.2 next-hop-self /
方法二:
R2:
neighbor 23.1.1.3 remote-as 230
neighbor 23.1.1.3 next-hop-self //从R3学到的路由,下一跳是23.1.1.3
R3:
neighbor 23.1.1.2 remote-as 230
neighbor 23.1.1.2 next-hop-self //从R2学到的路由,下一跳是23.1.1.2
3.一般在 AS边界路由器(R2) 对 内部其它路由(R3)指明“下一跳”为自己,可以将访问外部AS流量交给ASBR(自治系统边界路由)
注:菜鸟心得,若有误,感谢指出。