HCNP Routing&Switching之BGP邻居建立条件、优化和认证
前文我们了解了BGP相关概念、AS相关概念以及BGP邻居类型、基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html;今天我们来聊一聊BGP建立邻居的条件和优化相关话题;
BGP建立邻居条件
我们知道动态路由协议能够学习到路由,最基础的就是建立邻居;对于BGP来说,它工作在七层应用层,TCP179端口,所以两个路由器要想建立BGP邻居,首先满足对应两端的网络可达;即邻居地址可达;
其次,我们配置的邻居地址所在AS号必须是邻居配置中声明的AS号;即本端配置邻居AS号一定是对端邻居所在AS号;
最后,也是BGP建立邻居中最重要的一点,数据包源ip必须等于对方配置的邻居ip,这个源IP也叫更新源,也将作为路由的下一条IP;即配置邻居的ip地址,必须是邻居发送三次握手的源ip地址;
sys sys R1 int g0/0/0 ip add 12.0.0.1 24 int lo 1 ip add 1.1.1.1 32 ospf 1 router-id 1.1.1.1 area 0 net 12.0.0.1 0.0.0.0 net 1.1.1.1 0.0.0.0 bgp 12 peer 2.2.2.2 as 12View Code R2的配置
sys sys R2 int g0/0/0 ip add 12.0.0.2 24 int g0/0/1 ip add 23.0.0.2 24 int lo 2 ip add 2.2.2.2 32 ospf 1 router-id 2.2.2.2 area 0 net 12.0.0.2 0.0.0.0 net 2.2.2.2 0.0.0.0 ip route-s 3.3.3.3 32 23.0.0.3 bgp 12 peer 1.1.1.1 as 12 peer 3.3.3.3 as 3View Code
验证:在R1上验证ospf邻居和路由
sys sys R3 int g0/0/0 ip add 23.0.0.3 24 int lo 3 ip add 3.3.3.3 32 ip route-s 2.2.2.2 32 23.0.0.2 bgp 3 peer 2.2.2.2 as 12View Code 验证:在R2、R3上查看是否有去往对端回环接口ip路由?
提示:可以看到R2上有去往3.3.3.3的路由,R3上也有去往2.2.2.2的路由;
在R2上更改更新源
在R3上更改更新源
验证:在R2上或R3上查看bgp邻居是否正常建立?
提示:在R3上查看bgp邻居,对应和2.2.2.2邻居关系为idle,为什么不是established呢?
在R2上查看bgp邻居
提示:在R2上查看对应邻居关系也是idle;
在R2或R3上抓包
提示:在R2的g0/0/1口可以抓到对应源ip为2.2.2.2向3.3.3.3发起三次握手请求,对应三次握手也是通过了,对应3.3.3.3、2.2.2.2也发送了open包,心跳包为什么邻居关系建立不起来呢?对比之前我们抓到的正常邻居关系包里,我们可以看到在心跳包后面多了notification包,然后后续就tcp4次挥手,断掉了;
提示:从上面的抓包内容中可以看到,不管是R2还是R3在发送的心跳包,open包,对应ttl值为1;之所以R2和R3建立起邻居以后,马上就断了,其原因就是因为R2发送到包ttl为1;我们知道TTL的值是每经过一次路由以后,对应值减1;在R2的g0/0/1收到R3发送到TTL值为1 的报文,对应报文经过R2路由以后,对应R2的回环口收到此包的TTL就变为0;对于TTL为0的报文,路由器会认为该包无效,所以邻居马上断掉;同样的道理R2向R3发送到包也是经过R3路由以后,对应Rf3的lo3收到的包,对应TTL也为0,所以R3也会发送notification包,然后对应邻居马上断掉;
BGP多跳技术
为了解决BGP使用回环口建立ebgp类型邻居,我们可以修改对应报文的TTL值实现邻居关系的建立;
在R2上修改TTL值为2,看看对应邻居是否正常建立?
在R2上抓包验证,看看对应发送到包是否TTL值修改为2 了?
提示:可以看到此时R2发送的open包对应TTL值为我们指定的值;但是邻居还是没有建立;
提示:在R2的终端中,我们一会就会收到说对应邻居状态从established转变为idle;说明我们的邻居关系非常的不稳定;这里的原因是R3发送的包中TTL值为1,到R2的lo2接口对应TTL值变为0导致邻居关系一会建立,一会断掉;
在R3上更改TTL值为255
提示:默认命令后面不跟任何数字,默认就是将对应TTL修改为255;
验证:在R3上抓包查看,对应发送的报文TTL值是否修改为255?
提示:可以看到对应R2发送的包TTL值为2,R3发送的包TTL值为255;
验证:查看bgp邻居是否正常建立?
提示:可以看到邻居关系现在为稳定状态established;
通过上述实验可以看到不同AS之间使用非直连网络建立邻居需要修改对应报文的TTL值,原因是不同AS之间建立邻居发送包的TTL值为1,如果不是直连,对应非直连经过路由以后,对应报文的TTL值会减为0,对端收到TTL值为0的包,会认为该包无效,所以会导致邻居关系建立不起来;如果一段修改了TTL值,另一端未修改,那么会导致邻居关系非常不稳定,一会建立,一会断开;通常情况下我们建议ibgp类型邻居使用回环口建立邻居,ebgp使用物理口建立邻居;用回环口建立邻居有一个好处就是对应回环口只要ip地址不变,它几乎都是up的,也就是说在同一as内,推荐使用回环口建立邻居,因为回环口非常稳定;
BGP身份认证
在R1上配置认证
提示:BGP配置认证以后,对应发送的所有包都会启用,即bgp认证是在TCP上做的,并非在专有BGP报文上;
在R1上抓包
提示:可以看到R1发送的包对应tcp上会有可选项,对应R2发送的包里没有可选项;我们在R1上配置上认证以后,对应邻居不会马上断掉,它会经过3个keepalived包周期,对应邻居才会断掉;
在R2上配置bgp认证
验证邻居关系
提示:可以看到在R2上配置好认证以后,对应bgp邻居就恢复正常;
- HCNP Routing&Switching之IS-IS邻居建立、LSDB同步、拓扑计算和路由形成
- HCNP Routing&Switching之IS-IS路由聚合和认证
- HCNP Routing&Switching之OSPF LSA类型(一)
- HCNP Routing&Switching之OSPF LSA类型(二)
- HCNP Routing&Switching之OSPF外部路由类型以及forwarding address
- HCNP Routing&Switching之OSPF LSA更新规则和路由汇总
- HCNP Routing&Switching之IS-IS报文结构和类型
- BGP之邻居关系建立
- BGP 邻居关系建立
- 关于BGP邻居的密码认证
- eigrp & ospf 邻居建立过程比较
- EBGP和IBGP邻居建立条件实验
- 使用回环地址建立bgp邻居 推荐
- BGP路由反射器以及大AS之间的邻居建立
- BGP多跳建立邻居实验总结
- HCNA Routing&Switching之动态路由协议OSPF基础(二)
- 利用Loopback建立BGP邻居
- HCNA Routing&Switching之OSPF度量值和基础配置命令总结
- BGP的邻居建立
- HCNA Routing&Switching之DHCP服务