HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html;今天我们来学习下新的路由协议BGP;
BGP简介
BGP的前身EGP设计非常简单,只能在AS之间简单的传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EGP最终被BGP取代;相比于EGP,BGP更具有路由协议的特征,比如邻居的发现和邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力;
AS简介
在EGP(exterior gateway protocol,外部网关协议)协议中,引入了AS(autonomous system,自治系统)的概念;所谓AS就是指有同一个技术管理机构管理,使用统一选路策略的一些路由器的集合;ASN(as number,AS编号),主要用来区分不同AS,除了能标识不同自治系统外,它在BGP中还有关键性作用,比如最佳路由的选举、环路避免、路由过滤;;AS的内部使用IGP(interior gateway protocol,内部网关协议)来计算和发现路由,比如ospf,RIP,IS-IS等;同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少;即IGP建立邻居,发送hello包,计算路由,发现路由都是自动的,只要配置好对应的动态路由协议以后,建立邻居,发送hello包,计算路由等一系列操作都是自动的;对于不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选;使用BGP作为传递路由的协议,则用户的路由域被作为一个整体和其他路由与进行路由交换,这个路由域就是AS;AS的概念是若干台路由器以及这些路由器组成的网络集合,这些路由器均属于同一管理机构,并执行统一的路由策略;运行BGP协议需要一个统一的自治系统号来标识路由域,即AS编号;每个自治系统都有一个唯一的编号,这个编号由IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)分配;2009年1月之前,只能使用最多2字节长度的AS编号,即AS编号范围为0-65535,0和65535是保留;其中1-64511为公有AS,64512-65534为私有AS;在2009年1月以后,IANA决定使用4直接长度AS,范围是65536-4294967295;
常见AS号及查询网站
中国电信163(4134)、中国电信CN2(4809)、中国网通(9929);AS信息查询网站:https://whois.cnnic.cn/WhoisServlet;https://ip.sb/iana-asn/;查看自己属于哪个AS:https://ip.sb/;
BGP的基础作用
提示:如上图所示,BGP主要用于多个AS之间传递和控制路由信息;AS内部使用IGP来计算和发现路由,如ospf,IS-IS,RIP等;
BGP协议特点
提示:如上图所示,BGP可以可以跨越多跳路由器建立邻居关系;因为BGP是在AS之间传递路由,为保证数据的可靠性,BGP使用TCP作为其承载协议建立连接(主要是TCP可靠),因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系;AS之间的路由器是不完全相互信任的,为实现路由按需求进行控制和优选,BGP设计了诸多属性;BGP是路径矢量协议,工作在TCP的179端口;仅支持增量式、触发式更新,它没有周期更新,提供定期存活消息验证TCP连接,即心跳包(keepalived)来检测邻居的存活,默认心跳包是每60秒发送一次,如果在3个周期都没有收到对方的心跳,此时对应BGP路由器就会认为对方挂了,即邻居断开;丰富的度量标准,即路径矢量或属性;专为大型互联网而设计,优于距离矢量协议;
为什么要使用BGP呢?
1、大量路由需要承载,IGP只能容纳千跳,而BGP可以容纳上万条路由;
2、支撑MPLS/VPN的应用,传递客户VPN路由;
3、策略能力强,可以很好的实现路由决策与数据控制;
BGP邻居概述
BGP Speakers:指运行BGP协议的路由器;
BGP Peers:指BGP邻居或者BGP对等体;
邻居关系建立在TCP连接的基础上,因此邻居不一定需要直连,可以通过IGP或静态路由来提供TCP连接的可达性;BGP建立邻居和IGP不同,IGP需要邻居直连(P2P除外,它可以不直连,但一般不推荐),使用组播,单播建立邻居,而BGP只能单播建立邻居;邻居必须手动指定,而非自动建立;建立邻居和IGP也不同,IGP协议只要配置好,对应邻居会自动发现,自动建立,而BGP必须手动指定,怎么建立邻居,和谁建立邻居;一台BGP路由器只能运行在一个AS内;这个AS我们可以类比ospf里的区域,对于BGP路由器来说,它只能属于一个AS,不像ospf一台路由器可以同时属于多个区域;
BGP邻居类型
提示:如上图所示,运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居;运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居;
BGP基础配置
实验:如下拓扑,配置BGP邻居
分析:R1和R2在同一个AS内部,所以R1和R2他们建立IBGP邻居,而R2和R3他们处于不同AS,所以R2和R3只能建立EBGP邻居;
配置好各路由器的接口ip地址
R1的配置
R2的配置
R3的配置
在R1上配置BGP,指定R2为R1的邻居
提示:bgp 12后面的数字是指对应bgp所在as的编号,这个和IGP里面配置不同,IGP后面的数字是指对应进程号;其次手动指定邻居需要指定对应邻居的ip地址,以及邻居所属as编号;这样配置以后,R1就会向R2的12.0.0.2的179端口发起TCP三次握手,握手成功以后,开始建立邻居;
在R1上抓包
提示:可以看到R1向R2的179端口发送请求连接,但对方一直不搭理R1,所以导致R1的请求连接包一直被重置;其原因是R2上没有运行bgp,当然179端口也没有处于监听,所以R1一直不能建立连接;
在R2上配置BGP,并指定邻居为R1
查看R1上的抓包
提示:可以看到当R2配置好bgp,并指定邻居以后,对应R1TCP三次握手就成功了,对应成功以后,R1向R2发送open包,R2回复R1确认包;对应R2也会向R1发送tcp三次握手,握手成功以后,R2向R1发送open包,R1向R2发送open包,然后R1向R2发送心跳包,R2向R1发送心跳包,R1回复R2确认包;通过上述抓包过程可以看到,双方都需要建立TCP三次握手,并且建立成功以后,对应发送open包和心跳包;对应邻居建立成功;
验证:在R1查看bgp邻居
提示:可以看到在R1上能够查看到和R2建立起邻居关系,对应状态为established;这个状态就表示连接准备就绪,建立起TCP连接;
验证:在R2上查看bgp邻居
配置router id
提示:router id和ospf里的router id一样,用于标识bgp路由器;在配置过程中,如果我们没有配置,它也会自动选举,选举规则同ospf一样;这里还需要注意一点,bgp里更改router id会导致邻居宕掉,所以建议在规划好网络前配置好router id ;
配置R2和R3建立邻居
配置R3的邻居为R2
提示:上述命令表示指定邻居为23.0.0.3,对应邻居所在as编号为3;
在R3上配置邻居为R2
验证:R2和R3的邻居
提示:可以看到R2和R3也正常建立好邻居;后续我们就可以在对应bgp路由器里宣告网络;
HCNP Routing&Switching之BGP基础的更多相关文章
- HCNP Routing&Switching之BGP邻居建立条件、优化和认证
前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...
- HCNP Routing&Switching之BGP报文结构、类型和状态
前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...
- HCNP Routing&Switching之BGP路由宣告
前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...
- HCNP Routing&Switching之BGP防环机制和路由聚合
前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
- HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter
前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...
- HCNP Routing&Switching之BGP团体属性和团体属性过滤器
前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...
- HCNP Routing&Switching之VRRP基础
前文我们了解了链路高可用技术链路聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16279078.html:今天我们来聊一聊另一种高可用技术,网关高 ...
随机推荐
- 关于Mysql 5.7版本 一直出现时间 不对 链接出现问题 以及日志的问题 解决方案
问题: mysql版本号: 报错信息: Cause:java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecogni ...
- C# 使用正则表达式替换PPT中的文本(附vb.net代码)
文本介绍如何在C#程序中使用正则表达式替换PPT幻灯片中的指定文本内容.具体操作步骤如下: 1. 在程序中引用Spire.Presentation.dll.两种方法可参考如下: (1)直接在程序中通过 ...
- LVS实现(VS/DR)负载均衡和Keepalived高可用
LVS是Linux Virtual Server的简写即Linux虚拟服务器,是一个虚拟的服务器集群系统一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器(Load ...
- kratos
技术文章 日志库的使用姿势 通过 layout 探索 kratos 运行原理 发版日志 发布日志 - kratos v2.0.5 版本发布 发布日志 - kratos v2.0.4 版本发布
- JS019. 原生JS使用new Blob()实现带格式导出Word、Excel(提供无编程基础将页面上表格导出到本地的方法)
导出效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- centos7修改服务器时区
查看时区设置 timedatectl 列出所有时区,通过键盘上下键进行浏览 timedatectl list-timezones 修改服务器时区为Africa/Lagos # 拉各斯的时区,UTC+1 ...
- Fastjson 1.2.22-24 反序列化漏洞分析(2)
Fastjson 1.2.22-24 反序列化漏洞分析(2) 1.环境搭建 我们以ubuntu作为被攻击的服务器,本机电脑作为攻击者 本机地址:192.168.202.1 ubuntu地址:192.1 ...
- [第十三篇]——Docker Compose之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具.通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务.然 ...
- java中各个类相互调用资源的原理
当我们要进行跨类的调用/使用的时候,比如当前类调用另一个类中的变量或方法时, 这时需要一定的条件,如果那些将要被调用的变量或方法是static(静态)变量,也叫类变 量,那么可以通过类名调用,相 ...
- POJ题目 1003Hangover(叠放纸牌)
POJ 1003 叠放纸牌 描述 您可以将多张纸牌悬在桌子上多远?如果您有一张卡,则可以创建一个最大长度为卡长的一半.(我们假设这些卡片必须垂直于桌子.)使用两张卡片,您可以使最上面的卡片悬垂在底部的 ...