这节主要学习IBGP和IGP之间的区别与联系, BGP 路由信息交互,了解BGP的安全性,BGP协议的基本配置,如何建立IBGP、EBGP对等体,引入与传递路由。
目录
BGP协议
BGP基础概念
IBGP和IGP的不同
BGP 路由信息交互
BGP 安全性
BGP基础实验
一,配置IP地址和OSPF内网
二,配置R1到R2的EBGP邻居
三,配置内网R2和R4之间的IBGP邻居
四,两种BGP的路由信息发布
一,使用 BGP network宣告
二,使用重分布将OSPF的所有路由通告为BGP
五,BGP路由黑洞问题
AS内部使用IBGP原因:
IBGP能够传送所有的路由前缀,为什么还需要IGP?
BGP本身不会自动产生路由,必须要将IGP的路由引入到BGP路由表中。引入的方式有2种:
BGP可以通过network和重分布方式发布路由
Network方式和ospf的network存在区别,ospf的network是为了告知本地那个接口加入ospf,BGP的network是为了告知本地的那条路由需要通过BGP传递。
因此BGP的network存在两个特点:
BGP 使用认证和 GTSM(Generalized TTL Security Mechanism)两个方法保证 BGP 对等体间的交互安全。
BGP认证
BGP GTSM
R1:
R1(config)#interface gigabitEthernet 0/0 //进入接口G0/0
R1(config-if-GigabitEthernet 0/0)#no switchport //开启三层功能
R1(config-if-GigabitEthernet 0/0)#ip address 12.1.1.1 24 //配置接口ip地址
R1(config)#interface loopback0 //开启接口loopback口
R1(config-if-Loopback 0)#ip address 1.1.1.1 32 //配置loopback口的IP地址
r2:
R2(config)#interface gigabitEthernet 0/0 //进入接口G0/0
R2(config-if-GigabitEthernet 0/0)#no switchport //开启三层功能
R2(config-if-GigabitEthernet 0/0)#ip address 12.1.1.2 24 //配置接口ip地址
R2(config-if-GigabitEthernet 0/0)#exit //退出接口模式R2(config)#interface gigabitEthernet 0/1 //进入接口G0/1
R2(config-if-GigabitEthernet 0/1)#no switchport //开启三层功能
R2(config-if-GigabitEthernet 0/1)#ip address 23.1.1.2 24 //配置接口ip地址
R2(config-if-GigabitEthernet 0/1)# ip ospf 1 area 0 //配置OSPF 1的区域0R2(config)#interface loopback0 //开启接口loopback口
R2(config-if-Loopback 0)#ip address 2.2.2.2 32 //配置loopback口的IP地址
R2(config-if-Loopback 0)#ip ospf 1 area 0 //配置OSPF 1的区域0
R3:
R3(config)#interface gigabitEthernet 0/0 //进入接口G0/0
R3(config-if-GigabitEthernet 0/0)#no switchport //开启三层功能
R3(config-if-GigabitEthernet 0/0)#ip address 23.1.1.3 24 //配置接口ip地址R3(config-if-GigabitEthernet 0/0)# ip ospf 1 area 0 //配置OSPF 1的区域0
R3(config-if-GigabitEthernet 0/0)#exit //退出接口模式R3(config)#interface gigabitEthernet 0/1 //进入接口G0/1
R3(config-if-GigabitEthernet 0/1)#no switchport //开启三层功能
R3(config-if-GigabitEthernet 0/1)#ip address 34.1.1.3 24 //配置接口ip地址
R3(config-if-GigabitEthernet 0/1)# ip ospf 1 area 0 //配置OSPF 1的区域0R3(config)#interface loopback0 //开启接口loopback口
R3(config-if-Loopback 0)#ip address 3.3.3.3 32 //配置loopback口的IP地址
R3(config-if-Loopback 0)#ip ospf 1 area 0 //配置OSPF 1的区域0
R4:
R4(config)#interface gigabitEthernet 0/0 //进入接口G0/0
R4(config-if-GigabitEthernet 0/0)#no switchport //开启三层功能
R4(config-if-GigabitEthernet 0/0)#ip address 34.1.1.4 24 //配置接口ip地址
R4(config-if-GigabitEthernet 0/0)#ip ospf 1 area 0 //配置OSPF 1的区域0
R4(config)#interface loopback0 //开启接口loopback口
R4(config-if-Loopback 0)#ip address 4.4.4.4 32 //配置loopback口的IP地址
R4(config-if-Loopback 0)#ip ospf 1 area 0 //配置OSPF 1的区域0
EBGP的配置一般情况不涉及跨设备建立邻居
R1:
R1(config)#router bgp 100 //启用BGP协议且本设备的AS号为100,每台设备只能属于一个AS,一旦启用AS,再加入其他AS会报错
R1(config-router)#neighbor 12.1.1.2 remote-as 200 //手工和12.1.1.2建立邻居关系,对端的AS为200
R2:
R2(config)#router bgp 200 //启用BGP协议AS号为200
R2(config-router)#neighbor 12.1.1.1 remote-as 100 //手工配置和12.1.1.1的邻居 ,对端AS为100
EBGP配置完成,查看BGP邻居表
当发现EBGP邻居建立失败,排错方式:
1.查看双方AS号是否写反,或者写错,遇到这个问题会报:
2.查看邻居ip地址是否配置有误,查看邻居表,会发现邻居在connect状态
IBGP邻居通常使用Loopback接口建立邻居关系,使用loopback建立更加稳定,但需要注意配置update-source命令 用于强制修改源地址。
此时可以看到R2和R4之间配置了OSPF是互通的
配置R2和R4的IBGP邻居
R4
R4(config)#router bgp 200 // 启用BGP协议AS号为200
R4(config-router)#neighbor 2.2.2.2 remote-as 200 //手工和2.2.2.2建立邻居关系,对端的AS为200
R2:
R2(config)#router bgp 200 //启用BGP协议AS号为200
R2(config-router)#neighbor 4.4.4.4 remote-as 200 //手工配置和4.4.4.4的邻居 ,对端AS为200
此时查看BGP邻居表,发现邻居状态为active
此时IBGP未配置完成,需要配置update-source
R2(config-router)#neighbor 4.4.4.4 update-source loopback 0 //和邻居4.4.4.4进行信息发送时使用loopback0的地址作为源地址,
R4(config-router)#neighbor 2.2.2.2 update-source loopback 0 //和邻居2.2.2.2进行信息发送时使用loopback0的地址作为源地址,两边只需要配置一边即可建立邻居,但是推荐都配置。
此时查看邻居表可以发现邻居建立成功
在R2上做network宣告
查看R2的路由表,路由表存在的才可以network宣告【注意掩码一致】
R2(config)#router bgp 200 //启用BGP协议AS号为200
R2(config-router)#network 4.4.4.4 mask 255.255.255.255 //宣告4.4.4.4/32条目
R2(config-router)#network 3.3.3.0 mask 255.255.255.0 //宣告3.3.3.0/24条目,注意这条路由信息的掩码不对
此时发现R1学习到的BGP表里只有4.4.4.4/32,因为3.3.3.0/24不在路由表里所以就算写 它的network在BGP表里不会出现
R2(config)#router bgp 200 //启用BGP协议AS号为200
R2(config-router)#redistribute ospf 1 //重分布OSPF1的路由进入BGP
配置完成后发现所有OSPF的路由全部进入BGP被R1学习
重分布配置完成,查看BGP路由表
在R1上network自身的loopback接口
R1(config)#router bgp 100 //启用BGP协议AS号为100
R1(config-router)#network 1.1.1.1 mask 255.255.255.255 //宣告1.1.1.1/32条目
此时查看 R2和R4可以看到到达R1的路由,可以看到R2到R4的IBGP传递下一跳不变,R4的下一跳不可达,路由不可用
R4需要通过手工的方式强制修改下一跳。
R2(config)#router bgp 200 //启用BGP协议AS号为200
R2(config-router)#neighbor 4.4.4.4 next-hop-self //向4.4.4.4发送路由时将下一跳修改自身的地址。
配置完成查看 BGP的路由信息
在数据发送的过程中R4需要先将数据发送给R3,R3由于没有路由不知道怎么转发,所以直接丢弃。造成了路由黑洞。因此路由黑洞产生是因为BGP跨越多跳路由器建立邻居,中间设备没有学习BGP的相关路由,但是转发仍然需要经过这些设备造成的丢包现象。
解决方法:
同步规则【不建议】:将BGP和IGP路由信息同步,双向引入,将BGP重分布进OSPF里面
R2(config)#router ospf 1 //进入OPSF 1
R2(config-router)#redistribute bgp subnets //将BGP路由重分布到OSPF
此时 ,R1和R4之间可以进行通信
有问题大家可以留言讨论,关注IT其他方面的小伙伴们可以参考尚文网络其他老师文章,也可以微信搜索尚文网络公众号,有详细资讯发布,认准尚文网络成为一名优秀的IT人。