文章目录

  • 前提概念
    • AS
      • ASN
    • IGP与EGP
  • BGP的基本概述
    • 基本作用
  • BGP协议特点
  • BGP邻居关系和配置
    • 建立TCP连接
    • BGP邻居类型
    • BGP简单邻居关系配置
    • 报文类型
    • 邻居关系的建立

前提概念

AS

AS(Autonomous System):自治系统/路由选择域

AS是指由同一技术机构管理使用同一选路策略的一些路由器的集合。
一般来说,一个公司、一个企业、一所大学就可以说是一个自治系统

AS内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。

不同的AS之间,使用EGP来进行通信。BGP作为EGP中的一种协议,用于在AS之间进行路由控制和优先

ASN

ASN:自治系统号

一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

自治系统号由IANA分配,范围为:1-65535,最开始大小为2B(0~65535)。
自治系统号分为(可类比共有IP地址、私有IP地址)

公有ASN:1~64511
私有ASN:64512~65535

后来由于不够用,长度升级到了4B(45536~4294967295)

IGP与EGP

IGP:内部网关路由协议:

包含有:OSPF、RIP、IS-IS等
注重于发现和计算路由。执行在AS内部

EGP:外部网关路由协议:

包含有:EGP(目前不使用)、BGP:外部网络路由协议代表(目前AS间路由协议或者说的EGP协议一般都指的是BGP协议)

由于BGP的前身EGP由于设计简单,只能简单的传递路由信息,不会对路由进行优选,会造成环路等问题,所以就有了BGP代替了EGP。

BGP的基本概述

基本作用

)

AS之间的路由我们可以将一个AS看成一个大路由器

BGP协议特点

  1. 可靠的路由更新机制(有变化才发)(没有组播,只有单播的连接。建立在TCP之上。只有在路由信息发生更新的时候才会发送增量路由。不会释放掉TCP连接:keep alive机制,保证TCP连接不会断掉)(注意:建立BGP连接首先要建立TCP连接
  2. 丰富的度量方式
  3. 避免环路
  4. 路由附带属性信息(AS之间的路由器是不完全互相信任的,为了实现路由按需求控制和优选,BGP设置了诸多属性)
  5. 支持CIDR、VLSM
  6. 丰富的路由选择和路由控制
  7. 增量更新计算
  8. 可以跨越多跳路由器建立邻居关系

BGP邻居关系和配置

建立TCP连接

BGP协议被设计运行在AS之间传递路由,AS之间是广域网链路,数据包在广域网上传递是可能出现不可预测的链路拥塞或丢失等情况,因此BGP使用TCP作为其承载协议来保证可靠性。
相当于TCP连接一直存在,BGP通过Keep alive机制(不断、定时发送keepalive报文)时TCP连接不会断掉

BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居。(配置的时候需要自己手动指定邻居)

先看起BGP的一端发起TCP的连接。

TCP连接(三次握手)简单介绍:
一下图为例:RTB向RTA发起建立TCP连接请求,RTA收到之后,返回一个连接请求和确认消息,RTB收到之后返回一个确认消息。连接建立完成。
)

BGP邻居类型

)
BGP邻居类型分为两种:

EBGP(External BGP):运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
IBGP(Inter BGP):运行在相同AS内的BGP路由器建立的邻居关系为IBGP邻居关系

EBGP只用于不同AS之间传递路由。如图,AS 100内的RTB与BTC分别从AS 200与AS 300学习到不同的路由,怎么实现AS 200与AS 300之间路由在AS 100内的交换?

在AS 100内实现将学到的AS 200和AS 300路由进行交换,可以在拓扑中的RTB与RTC路由器上将BGP的路由引入IGP协议(图中为OSPF协议),再将IGP协议的路由在RTB与RTC路由器上引入回BGP协议,实现AS 200与AS 300路由的交换。

上述方法存在以下几个缺点:

公网上BGP承载的路由数目非常大,引入IGP协议后,IGP协议无法承载大量的BGP路由;BGP路由引入IGP协议时,需要做严格的控制,配置复杂,不易维护;BGP携带的属性在引入IGP协议时,由于IGP协议不能识别,可能会丢失。

因此我们用IBGP来邻居关系来解决上述问题:如上图,因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。如图所示,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。

注意:建立IBGP邻居关系建立一般使用Loopback口IP地址,因为Loopback口为逻辑接口,且不会down,非常稳定,这样邻居关系一直处于稳定状态。EBGP邻居关系建立使用直连接口IP地址。

BGP简单邻居关系配置

)
第一步

搭建拓扑,规划网段并配置各个接口IP地址。

以RTB举例:

[RTB]int g0/0/0
[RTB-GigabitEthernet0/0/0]ip ad 10.1.24.2 24
[RTB-GigabitEthernet0/0/0]int g0/0/1
[RTB-GigabitEthernet0/0/1]ip ad 10.1.12.2 24
[RTB-GigabitEthernet0/0/1]int lo0
[RTB-LoopBack0]ip ad 22.22.22.22 32
[RTB-LoopBack0]quit
[RTB]

第二步

AS 100内部使用IGB:OSPF协议通信。配置OSPF协议
注意:不要忘记宣告Loopback接口所在网段。

以RTB为例其余路由器相同:

[RTB]ospf
[RTB-ospf-1]a 0
[RTB-ospf-1-area-0.0.0.0]network 22.22.22.22 0.0.0.0
[RTB-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255

验证RTB环回口是否能与RTC环回口通信,若正确则进行下一步:

<RTB>ping -a 22.22.22.22 33.33.33.33PING 33.33.33.33: 56  data bytes, press CTRL_C to breakReply from 33.33.33.33: bytes=56 Sequence=1 ttl=254 time=40 msReply from 33.33.33.33: bytes=56 Sequence=2 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=3 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=4 ttl=254 time=30 msReply from 33.33.33.33: bytes=56 Sequence=5 ttl=254 time=30 ms--- 33.33.33.33 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 30/32/40 ms

第三步

配置BGP邻居关系:

1. 配置Router ID:标识路由器
2. 配置EBGP邻居关系:AS之间传递路由

以RTB、RTD之间建立EBGP关系为例:

[RTB]
[RTB]bgp 100
[RTB-bgp]peer 10.1.24.4 as-number 200    //BGP邻居关系的类型主要靠配置的AS号区别,peer关键字后面是对端邻居的接口IP地址,as-number后面是邻居路由器所在的AS号,AS号相同则为IBGP邻居关系;AS号不同,则为EBGP邻居关系。
[RTD]
[RTD]bgp 200
[RTD-bgp]peer 10.1.24.2 as-number 100

第四步

配置IBGP邻居关系:

本例中RTB和RTC建立IBGP邻居关系(本例使用逻辑接口建立IBGP邻居关系):

[RTB]
[RTB]bgp 100
[RTB-bgp]peer 33.33.33.33 as-number 100     //AS号相同则为IBGP邻居关系
[RTB-bgp]peer 33.33.33.33 connect-interface LoopBack 0
[RTC]
[RTC]bgp 100
[RTC-bgp]peer 22.22.22.22 as-number 100
[RTC-bgp]peer 22.22.22.22 connect-interface  LoopBack 0
[RTC-bgp]

额外提供直连接口配置方法:

[RTB-bgp]peer 10.1.12.1 as-number 100

查看邻居关系display bgp peer

以RTB为例:

[RTB]display bgp peer BGP local router ID : 2.2.2.2Local AS number : 100Total number of peers : 2          Peers in established state : 2Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv10.1.24.4       4         200       41       42     0 00:39:16 Established     033.33.33.33     4         100       37       37     0 00:35:27 Established     0

注意:此时BGP邻居关系已经建立,但是由于没有路由引入所以没有路由表,查看BGP路由表命令:display bgp routing-table。路由引入命令下一遍文章介绍

报文类型

BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、Notification、Keepalive和Route-refresh等5种报文类型。

Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。

Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。(该报文内容少,无意义,只是为了保证连接不中断)

Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

Notification报文:当BGP路由器(BGP speaker)检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。

Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

邻居关系的建立


lBGP路由器报文交互过程:

  1. Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。
  2. 在Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接。
  • 如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP路由器转至Active状态。
  • 如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。

在Active状态下,BGP路由器总是在试图建立TCP连接。

  • 如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP路由器停留在Active状态。
  • 如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。

  • 在OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。

  • 如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态。

  • 如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。

  • 在OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

  • 在Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。

BGP协议原理(一)BGP协议基本概念:BGP作用与特点、BGP邻居关系建立与配置相关推荐

  1. bgp 建立邻居发送的报文_OSPF报文,SPF算法,邻居关系建立及排错,理论+实战

    OSPF拓扑: OSPF算法: SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明的 查看R4 OSPF算法 LSA 序列号: 在R3 查看LSA 序列号 ...

  2. BGP协议原理与配置

    AS(自治系统)是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合. 私有自治系统,类似于私网那个IP地址,归属个人,不会连接到公网 国际管理自治系统 AS的内部:使用IGP(内部网关协 ...

  3. HCNP学习笔记-路由交换网络(2)-IS-IS协议原理及配置

    一.IS-IS协议简单介绍 和OSPF一样,IS-IS也是一种基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议.IS-IS最初是国际化标准组织ISO为它的无线接网络协议CLNP设计的一种 ...

  4. HTTPS协议原理分析

    HTTPS协议原理分析 HTTPS协议需要解决的问题 HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题: 身份验证 确保通信双方身份的真实性.直白一些,A希望与B通信,A如何确认B的身份 ...

  5. 计算机网络——HTTP协议原理

    摘要 在日常的开发中,很多开发的同学可能很少了解的HTTP协议的底层原理.HTTP协议的底层涉及到请求响应模型,HTTP的工作流程.cookie和session的原理等.本博文主要介绍计算机网络中HT ...

  6. 计算机网络——ICMP/IGMP协议原理

    摘要 ICMP全称是Internet Control Message Protocol,也就是互联网控制报文协议.网络包在复杂的网络传输环境里,常常会遇到各种问题.当遇到问题的时候,总不能死个不明不白 ...

  7. IS-IS协议原理和配置 与OSPF

    真正的成功没有捷径可走. 文章目录 一.拓扑 二.基础配置 三.观察与分析 四.原理 五.IS-IS与OSPF LSP 用于描述携带LSA信息:LSP(link state PDU) L1 LSP 描 ...

  8. BGP——邻居关系(IBGP+EBGP)的建立(讲解及配置命令)

    目录 一.BGP邻居分类: 二.BGP邻居的建立: --(1)IBGP邻居关系建立-环回接口: -注意点+要求: -配置命令: --(2)EBGP邻居关系建立-直连接口 : -注意点+要求: -配置命 ...

  9. bgp 建立邻居发送的报文_大型网络BGP之IBGP和EBGP邻居关系基础配置

    一.BGP拓扑 说明:BGP一般用于大型企业及国际出口.运营商.大型数据中心 二.BGP基本配置 1.IBGP配置(IBGP属于同一个BGP AS号内部建立邻居关系) 我们在R2 和 R4 之间配置简 ...

最新文章

  1. DJANGO获取用户访问IP
  2. 南京晓庄学院大一第二学期计算机数据结构期末考试试卷及答案,南京晓庄学院数据结构题库参考标准答案...
  3. 网易智慧企业 Node.js 实践(3)| 灰度环境和应用监控
  4. 【计算机组成原理】各种码表示的数
  5. c 调用c语言dll数组,C#调用C类型dll入参为struct的问题详解
  6. Flask笔记-使用Cookie及简单加密判断是否为登录用户
  7. 如何改变maven项目的pom文件中默认的主代码目录 以及默认的测试代码目录?
  8. 公众服务常用电话号码大全
  9. html+字体有白色的重影+重影字体设置,win10字体重影怎么解决_win10电脑字体不清晰有重影修复方法...
  10. 智联+影音,AITO问界M7想干翻的不止理想One
  11. jpg格式电脑怎么弄_电脑上图片改为jpg格式方法_照片怎么改为jpg格式-win7之家
  12. 安卓系统的电视机_再送出一款智能电视、电视盒子、安卓手机通用TV直播软件...
  13. 大数据还能火多久?现在学习还来得及吗?
  14. mac怎么显示服务器中隐藏文件,mac怎么显示隐藏文件夹-mac显示隐藏文件命令与使用教程 - 河东软件园...
  15. VScode运行时提示找不到应用程序
  16. 如何把wps随机数据固定_WPS Excel:巧用随机函数rand和randbetween生成各种数据
  17. 软件设计与体系结构第二版董威_董威-软件设计与体系结构(第2版)-PPT课件.zip-3-4-形式化方法.ppt...
  18. 一个通用的ajax程序(实现像百度一样自动提示功能)
  19. require.js库
  20. 2023版最新最全React面试题

热门文章

  1. 谷歌浏览器插件-html页面js事件查看器
  2. 什么是委派模式(Delegate)?应用场景是什么?
  3. 苹果拒绝专利授权三星 诉讼或蔓延至中国地区
  4. 生成一份1500字前端程序员年终总结
  5. 微信公众平台开发(68)苹果IMEI查询
  6. 叙述微型计算机系统组成,(微型计算机系统的组成.doc
  7. 春节晚会告诉我们要占领东京
  8. HTML5入门讲解(第一期)
  9. 【Jenkins】xcopy无效的驱动器规格
  10. 双目视觉测量原理及其实现(求取三维世界坐标)