假装网络工程师24——BGP路由反射器与联邦
一、背景介绍
bgp协议根据工作的位置又可分为ibgp与ebgp,不同的as之间通过as_path来进行防环,但是在AS内部,as_path值为空,这样就有环路的隐患,为了消除该隐还,bgp要求as之间采用水平分割的方式进行防环,这样就要求启用bgp的路由器两两之间建立对等体关系。如下图,R2与R4之间如果不建立对等体关系,R1与R5之间无法相互学习到对方路由,尽管R2与R4都将路由发送给了R3,R3根据水平分割法则不会向R2与R4告知对方的路由
需要建立对等体的数量为:n*(n-1)/2,在大规模环境下,靠手动建立对等体工作变得极为繁重,而路由反射器与联邦就是为解决上述问题而产生的。
二、路由反射器
1. 反射器几种角色
路由反射器的出现本质上打破bgp水平分割机制,所以为了避免路由发生环路,它定义了服务端、客户端与非客户端3种角色,承担服务端的路由器rr(router-reflector)将客户端加入管辖,而客户端本身并不感知,无需做任何操作
2. 路由反射规则
首先需要说明的是:路由反射器的工作区域是在as内部,即只是针对ibgp对等体生效
上述要注意区别反射与发送是两种不同的行为,即使没有rr,学习自ebgp对等体的路由一样会发送给as内的ibgp对等体
3. 实验拓扑
物理接口地址为xx.0.0.x(x为路由器编号),lo0接口为x.x.x.x((x为路由器编号)作为ibgp通信地址
- 设置as 100与as 500的bgp进程
- 建立as 234底层的ospf连接
- 在as 234内启动bgp进程
- 操作完成后能看到R3通过bgp学习到了1.1.1.1/24与5.5.5.5/24的路由
- 但是由于bgp水平分割的机制,他不会将5.5.5.5/24路由传给R2,同理也不会将1.1.1.1/24传给R4,这样R1与R5之间相互学习不到对方的路由
- 将R2与R4加入R3的客户端
- 再次查看路由表,R1和R5已经通过bgp相互学习到路由
三、联邦
1.联邦内AS的划分
既然AS内部通过水平分割法则防环,那如果将一个AS在进行切割,分成一个个不同的子AS,这样就可以“绕过”水平分割法则的约束,联邦就是基于这点实现的
2.联邦对等体关系
由于联邦是一个AS内部的再次划分,所以其他AS并不感知,对于R1和R5来讲,他们是跟AS234建立ebgp对等体关系,并不感知成员AS的存在。
成员AS内建立的是联邦ibgp对等体关系,成员AS之间建立的是联邦ebgp对等体关系,由于底层已经通过ospf打通,所以联邦ebgp建立时不再需要让下一跳指向自己3.实验配置
- R2上配置
- R3上配置
- R4上配置
配置完后查看R3路由表,能看到他已从R4上学已到了5.5.5.0/24网段路由,且AS路径为(64513)500
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
盘点:2020年最酷的10家网络初创公司
改变网络市场游戏规则 可以肯定地说,2020年是充满挑战的一年,迫使IT行业以前所未有的速度向前发展。 COVID-19新冠病毒大流行导致全球许多企业关门,并让大多数员工不得不在家办公,这意味着几乎在一夜之间,原本主要由公司总部和分支机构流量构成的企业网络,突然需要转向全新的流量模式和使用模式。 与此同时,边缘网络正在兴起。新的应用场景不断涌现,医疗设施和学校设施需要在停车场和零售商店之间建立连接,而餐厅需要随停随取服务,更不用说物联网的全面兴起。这些新的需求为众多的网络初创公司带来了新的机会,而这些企业通过多云网络解决方案、数据中心软件产品、网络即服务以及利用蜂窝技术(LTE和5G)的解决方案开始在业界崭露头角。 下面就让我们来看看10家最热门的企业网络初创公司都有谁。 Alkira 首席执行官:Amir Khan 多云网络初创公司Alkira在今年4月凭借Cloud Services Exchange(CSX)走出隐身模式,这款统一的按需提供的产品,让客户可以根据实际使用情况付费,让云架构师和网络工程师在几分钟内就能构建和部署多云网络。 Alkira总部位于美国加州圣何塞,得到了来...
- 下一篇
Java Optional 解决空指针异常总结(java 8 功能)
1、概述 Java8的版本,新增了Optional和[Lambda]表达式,Optional主要用于作为返回类型(主要解决的问题是臭名昭著的空指针异常(NullPointerException)),并将其与流(或返回可选的方法)相结合以构建连贯API。 但是,有些情况可以被认为是陷阱,因为它们会降低代码的质量,甚至导致意想不到的错误。总结以下26个例子,以避免这些陷阱。 2、 目 录 [第1项:决不将Null分配给可选变量] [第2项:调用Optional.get()之前,确保Optional具有值] [第3项:当不存在任何值时,通过Optional.orElse()方法设置/返回已经构造的默认对象] [第4项:不存在任何值时,通过Optional.orElseGet()方法设置/返回不存在的默认对象] [第5项:当不存在任何值时,自Java 10起通过orElseThrow()抛出java.util.NoSuchElementException异常] [第6项:当不存在任何值时,通过orElseThrow(Supplier <?extended X> exceptionS...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案