BGP的介绍
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
总的实验拓扑:
史上最简单且最基础的BGP实验(EBGP和IBGP)
一.EBGP的建立
1. 通过物理接口建立邻居关系
接口如图配置相应IP地址;在路由器上分别启动Loopback接口
EBGP配置:
R1#sh run | se bgp
router bgp 100
network 1.1.1.1 mask 255.255.255.255 //宣告回环口地址
neighbor 12.12.12.2 remote-as 200 //指定BGP的邻居(R2)的地址和R2所在的AS号200
R2#sh run | se bgp
router bgp 200
network 2.2.2.2 mask 255.255.255.255 //宣告回环口地址
neighbor 12.12.12.1 remote-as 100 //指定BGP的邻居(R1)的地址和R1所在的AS号100
查看BGP的路由信息:
sh ip route bgp
R1#sh tcp brief //查看TCP信息
注意:
不同的回环口的mask需要对应宣告
lo1:IP地址为1.1.1.1 /32
正确宣告 network 1.1.1.1 mask 255.255.255.255 //宣告回环口地址
错误宣告 network 1.1.1.0 mask 255.255.255.0 //宣告回环口地址
lo1:IP地址为1.1.1.1 /24
正确宣告 network 1.1.1.0 mask 255.255.255.0 //宣告回环口地址
1.1.通过loopback口建立邻居:
配置:
必须保证两个回环口之间可达:可以写静态路由方式:
R1(config)#ip route 5.5.5.0 255.255.255.0 15.15.15.2
R5(config)#ip route 1.1.1.0 255.255.255.0 15.15.15.1
R5的配置:
R5(config)#router bgp 300
R5(config-router)#neighbor 1.1.1.1 remote-as 100 //指定R1的回环口地址 、AS100
R5(config-router)#neighbor 1.1.1.1 update-source loopback 0 //更新源为回环口地址;不然就会出现idle状态
更新源:不然默认是用物理口和对方的回环口建立邻居。
R5(config-router)#neighbor 1.1.1.1 ebgp-multihop 3 //TTL值改为3,两个回环口之间TTL至少要2
R5(config-router)#neighbor 1.1.1.1 disable-connected-check //这个也可以替换上面的TTL值得修改
R1#sh run | se bg
router bgp 100
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255
neighbor 5.5.5.5 remote-as 300
neighbor 5.5.5.5 ebgp-multihop 3
neighbor 5.5.5.5 update-source Loopback1
二、 iBGP 的建立:
配置
在R2、R3、R4上启用ospf使内网通信(此处配置省掉)
R2#sh run | se bg
router bgp 200
bgp log-neighbor-changes
network 2.2.2.0 mask 255.255.255.0
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 disable-connected-check
neighbor 1.1.1.1 update-source Loopback2
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 update-source Loopback2
neighbor 3.3.3.3 next-hop-self //下一跳为自己,为了EBGP路由可达
neighbor 4.4.4.4 remote-as 200
neighbor 4.4.4.4 update-source Loopback2
neighbor 4.4.4.4 next-hop-self
R4#sh run | se bg
router bgp 200
bgp log-neighbor-changes
network 4.4.4.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source Loopback4
看路由信息
路由黑洞
因为上面的R2和R4中间的R3没有运行BGP
解决方式:全互联(R2、R3、R4都互相建立BGP)
查看命令:
BGP的三张表:
r1#sh ip bgp summary --查看邻居表的简要信息
r2#sh ip route bgp --查看bgp路由表
r2#sh ip bgp --查看BGP表
BGP的邻居状态:
idle:
connect:
open sent:
open confirm:
Established
active:
总结:
一台设备一般只能启动一个AS号
BGP通过单播建立邻居
BGP是一个基于TCP的可靠协议,端口号179
BGP可以承载巨大的路由条目
当我们用非直连地址来建立BGP邻居时:
一、 如果是EBGP邻居,则需要配置ebgp多跳,因为EBGP默认TTL值为1;如果是IBGP邻居,则不需要,因为IBGP默认TTL值255;
二、不管是EBGP还是IBGP,都需要指定更新源
组播地址:回顾之前的协议
不同路由协议通过的组播建立的邻居地址:ospf(224.0.0.5)rip(224.0.0.9)eigrp(224.0.0.10)