【网络协议详解】——BGP协议(学习笔记)

这篇具有很好参考价值的文章主要介绍了【网络协议详解】——BGP协议(学习笔记)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🕒 1. 概述

BGP(Border Gateway Protocol),边界网关协议。

  • 一种自治系统间的选路协议,在 AS 之间交换网络的可达性信息
  • 根据可达性信息,路由器能够构造 AS 之间的连接关系图,从而计算出到达目的网络的路由。

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • 在计算路由时,管理员可以在 AS 层面上应用一些路由控制策略。
    • 例如,控制到某网络的路由不经过某些 AS。
  • 因此,BGP尽力寻找一条能够到达目的网络且比较好的路由(不兜圈子),而并非找最佳路由。
  • BGP属于距离矢量路由算法的增强协议,在原有路由信息的基础上加入路径信息,防止了路由环路的出现。
  • 在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人
  • 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的路由控制策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

标准:

  • RFC 4271:BGP4,支持 CIDR 和路由聚集,用于 IPv4 网络的 AS 间路由。
  • RFC 4760:扩展了 BGP4,支持不同网络层协议的 AS 间路由。

🕒 2. BGP 发言人

自治系统中,运行 BGP 协议的路由器称为 BGP 发言人(BGP speaker)。

  • 每个 BGP 发言人都有一个 4 字节的 BGP 标识符(BGP identifier);
  • 标识符在 BGP 发言人启动过程中确定,通常是其某个接口的 IP 地址。

BGP 发言人通过与其他自治系统的 BGP 发言人交换路径信息来学习路由。

建立连接的两个 BGP 发言人互称为对等发言人(peer)。

  • 内部对等发言人(internal peer;IBGP):位于同一个 AS。如R1和R2。
  • 外部对等发言人(external peer;EBGP):位于不同 AS。如R1和R3。

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

🕒 3. 工作原理

  • 不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

两个 BGP 发言人建立 TCP 连接后:

  1. 发送打开报文,协商路由信息交换参数;
  2. 发送更新报文,交换各自的 BGP 路由表。
  • BGP 发言人并不周期性交换路由表,而采用增量式路由更新方法:
    • 只在路由表发生改变时,才向对等发言人通知改变的路由,包括增加新路由,或撤销失效路由。
    • 只交换管理策略允许的路由。

使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)

  1. BGP 发言人之间周期性交换保活报文,以检测对方是否活跃。
  • 若一段时间内接收不到对方的保活报文,就认为对方不再活跃,关闭与对方的连接。
  1. 协议运行过程中若发生错误,BGP 发言人向对方发送通知报文,并关闭与对方的连接。
  • 连接关闭后,BGP 发言人撤销对方通知的所有路由。

如果一个 AS 与多个 AS 连接,该 AS 往往会有多个 BGP 发言人。

必须确保自治系统内部路由的一致性:需要在所有 BGP 发言人之间建立对等关系。

为防止在 AS 内部出现环路路由,BGP 发言人不会将从 IBGP 学习到的路由再通告给其他 IBGP (称为“水平分割”)。

🕒 4. 报文格式

BGP4 定义了 4 种报文:

类型 报文名称
1 打开(OPEN)报文
2 更新(UPDATE)报文
3 通知(NOTIFICATION)报文
4 保活(KEEPALIVE)报文

🕘 4.1 报文首部

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • 固定首部分为三个字段,占19字节。
  • 标记”,占16字节,必须设置为0,用于检查BGP对等体的同步信息是否完整,以及用于BGP验证的计算。不使用验证时所有比特均为1
    • 用于在TCP字节流中定位BGP报文的开始位置。
  • 长度”,占2字节,指明了报文(包括固定首部)的长度,即报文的结束位置,以字节为单位。
  • 类型”,占1字节,指明了BGP报文的类型。

🕘 4.2 打开报文

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

BGP 发言人与对等 BGP 发言人建立 TCP 连接后,首先向对方发送一个打开报文 ,协商路由信息交换参数

接收到打开报文后,BGP 发言人用保活报文响应。

  • 1字节的“版本”字段,指明BGP协议的版本号,对BGP4协议设置为4
  • 2字节的“自治系统号”,是发送方所属自治系统的编号。
  • 2字节的“保持时间”,是发送方建议的连接保持时间,以秒为单位。接收方将以自己配置的保持时间和发送方建议的保持时间中的较小者作为实际的连接保持时间。保持时间指明了从对方接收到下一个BGP报文的最长等待时间。若超过保持时间后还没有从对方接收到任何报文,就认为对方不可达,关闭与对方的TCP连接。
  • 4字节的“BGP标识符”,即发送方的BGP标识符。BGP发言人在与所有对等发言人通信时必须使用相同的标识符。
  • 1字节的“选项参数长度”,指明了报文中包含的所有选项参数的总长度,以字节为单位。若为 0,表明报文中没有选项参数。剩余数据则是选项参数。

打开报文可包含多个选项参数,每个参数用一个三元组(TLV结构)表示:

  • 参数类型”, 占1个字节,指明参数的数据类型,如整型、字符串等。
  • 参数长度”, 占1个字节,指明“参数值”字段的长度,以字节为单位

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

🕘 4.3 更新报文

BGP 发言人通过发送更新报文通知对等发言人路由信息

BGP4 中路由被定义为:一组目的地址以及到达这些目的地址的一条路径;路径用一系列属性描述

  • 路径属性包括:经过的 AS 列表(路径)、路由来源、下一跳地址、路由是否被聚集等;
  • 到达这组目的地址的路径相同。

一个 BGP 更新报文中可以包含一条增加的新路由,以及多条要撤销的失效路由

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

撤销路由用“撤销路由长度”和“撤销路由”两个字段指明。

  • 撤销路由长度”字段,占2字节,指明“撤销路由”字段的长度,以字节为单位。为 0 表示没有要撤销的路由,报文中也不包含撤销路由字段。
  • 撤销路由”字段长度可变,列出了一组要撤销路由的目的网络地址。BGP4采用了一种压缩表示法,即采用二元组 <前缀长度,前缀>表示网络地址,其中“前缀长度”占1字节,指明32位的IP地址中网络前缀所占的位数;而“前缀”只有IP地址中包含网络前缀的字节,即前缀长度小于等于8时,前缀只包含地址的第一个字节;前缀长度在9到16之间时,包含前两个字节;前缀长度在17到24之间时,包含前三个字节;当前缀长度大于等于25时则包含所有四个字节。特别地,若前缀长度为0,表示是默认路由。

新增的路由“路径属性总长度”、“路径属性”和“网络层可达性信息”三个字段共同描述。

  • 路径属性总长度”,占2字节,是紧接着的“路径属性”字段的总长度,单位是字节。如果是 0 表示报文中不包含新增路由,也不存在“路径属性”和“网络层可达性信息”字段。
  • 路径属性”字段,长度可变,描述了新增的路由,是新路由的一组属性值。每个属性为TLV结构。其中“类型”占2个字节,第一个字节是“属性类型标志”,第二个字节是“属性类型代码”;“长度”指明了属性值所占的字节数,依赖于属性类型标志中“扩展长度位”是否置位,占1个字节或2个字节。一个更新报文中,一种路径属性只能出现一次。
  • 网络层可达性信息”字段长度可变,列出了一组通过“路径属性”字段指明的路径可到达的目的地址。目的地址的编码方式与“撤销路由”字段中相同。

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

BGP 发言人根据接收的更新报文构造自治系统之间的连接关系图,计算出到达目的网络的下一跳地址。

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

🕘 4.4 保活报文

BGP 发言人周期性向对等发言人发送保活报文,以维持与对方的连接。

保活报文发送间隔不能小于 1 秒,通常设置为保持时间的 1/3

  • 如果保持时间是 0,不发送保活报文。

保活报文只有标准的报文首部(19字节)而不包含其他数据。
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

🕘 4.5 通知报文

当协议运行发生错误时,BGP 发言人向对等发言人发送通知报文,并立即关闭相关的 TCP 连接。
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • 错误代码”和“错误子代码”字段各占1个字节,指明了具体的错误类型。
  • 数据”字段长度可变,内容依赖于错误代码和错误子代码,用于错误原因的诊断。结束位置由报文首部中的长度字段指明。
错误代码 含义
1 报文首部错误
2 OPEN 报文错误
3 UPDATE 报文错误
4 保持时间超时
5 BGP 有限状态机错误
6 停止

🕒 5. BGP 的路径属性

BGP结合丰富的路径属性,很好地控制路由信息的传递,实现路由的选择。

BGP路径属性是一组描述BGP前缀特性的参数

BGP路径属性可以被分为四大类:

  • 公认必遵(Well-known mandatory)
  • 公认任意(Well-known discretionary)
  • 可选过渡(Optional transitive)
  • 可选非过渡(Optional non-transitive)

BGP 必须识别所有公认属性。可选属性不要求所有BGP路由器都必须能识别。

公认属性包括强制和任意两大类:

  • 其中强制属性必须包含在每一个UPDATE 消息里,即公认必遵属性。
  • 其他任意属性则可能会被包含在某些具体UPDATE 消息中。

可选属性包括过渡和非过渡两大类:

  • 其中对于过渡属性,如果BGP路由器不能识别该属性,也要接收携带该属性的路由更新,而且将该路由通告给其他对等体,也必须携带该属性。
  • 对于非过渡属性,如果BGP路由器不能识别该属性,该路由器会忽略携带该属性的路由信息,也不通告给其他对等体。

常见BGP路由属性:
1、Origin
2、AS_PATH
3、Next hop
4、MED(Multi-Exit-DISC)
5、Local-Preference
6、Atomic-Aggregate
7、Aggregator
8、Community
9、Originator-ID
10、Cluster-List
11、MP_Reach_NLRI
12、MP_Unreach_NLRI
13、Extended_Communities

以下列出几种常用的属性:

  • Origin:起源属性。定义路由信息的来源,标记一条路由是怎样成为BGP路由的。
  • As_PATH:AS路径属性。是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。它可以防止路由循环,并用于路由的过滤和选择。
  • Next hop:下一跳属性。包含到达更新消息所列网络的下一跳边界路由器的IP地址。
  • MED属性:当某个AS有多个入口时,可以用MED属性来帮助其外部的AS选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。
  • Local-Preference:本地优先级属性。用于在AS内优选到达某一目的地的路由。反映了BGP Speaker对每条BGP路由的偏好程度。属性值越大越优。
  • Community:团体属性。团体属性标识了一组具有相同特征的路由信息,与它所在的IP子网或自治系统无关。
属性名 公认/可选 必遵/任意 过渡/非过渡
Origin 公认 必遵
As_PATH 公认 必遵
Next hop 公认 必遵
Local-Preference 公认 任意
MED 可选 非过渡
Community 可选 过渡

🕘 5.1 origin 属性

该属性定义了BGP 路径信息源头,实际上也就是BGP Speaker 产生BGP 路由的方式。

有3 种起源属性值:IGP、EGP和Incomplete(不确定来源)。

某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP

  • 通过network命令注入BGP的路由
  • 这些路由是有选择性地通过network 命令转换为BGP路由,所以称为“半动态”。
<RT2>                           
 Total Number of Routes: 2
                               
 BGP Local router ID is 1.1.1.1
 Status codes: * - valid, > - best, d - damped, 
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
                                                                         
 *>   18.0.0.1/32        0.0.0.0          1                     0         i
 *>   18.0.0.2/32        0.0.0.0          1                     0         i

通过EGP学到的路由,则origin属性为EGP

  • 这个属性在现实网络中将很难遇到,因为EGP 基本上已经退出了历史舞台。

其他情形下,Origin属性都为 Incomplete

  • 通过import命令注入BGP的路由
<RT2>
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped, x - best external,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? – incomplete

Total Number of Routes: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   18.0.0.1/32       0.0.0.0          1                      0      ?
 *>   18.0.0.2/32       0.0.0.0          1                      0      ?

Origin属性值默认情况下不被任何路由器修改

IGP:在BGP 路由表中(用display bgp routing-table 查看)将会看到“i”的标识,通过network 命令宣告的路由,起点属性为IGP,此种方式也称为BGP 信息的半动态注入,network 命令所宣告的网络来自于IGP 协议(包括静态路由),这些路由是有选择性地通过network 命令转换为BGP路由,所以称为“半动态”。
EGP:在BGP 路由表中将会看到“E”的标识,通过将EGP 转化(import)成的BGP 路由将具备此属性,这个属性在现实网络中将很难遇到,因为EGP 基本上已经退出了历史舞台。
Incomplete:在BGP 路由表中将会有一个“?”标识,具备这种属性的路由是通过一些别的方式学到的,属于未知的不明确的状态,一般来说,是通过将IGP 或者静态路由引入(import)以后产生的。因为无条件地把IGP 路由信息引入到BGP 路由表可能会造成副作用,比如不要的或者错误的信息会漏(leak)进BGP 中,比如IGP 路由表中可能会包含很多仅仅用于AS 内部的专用地址或者未经注册的地址。除此以外,这样做还有可能造成BGP 路由表的动荡(因为BGP 的路由依赖于IGP 路由),对此问题BGP 提供了一个解决方案路由衰减(ROUTE DAMPENING),此处将不再讨论。

🕘 5.2 AS_PATH 属性

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • 所谓AS_PATH,是指BGP 路由在传输的路径中所经历的AS 的列表
  • AS200 内的关于网络18.0.0.0/8 的BGP 路由经AS200、AS300、AS400 到达AS100的AS_PATH 为(400 300 200)
  • 经AS200、AS500 到达AS100 的AS_PATH 为(500 200)
  • 这时BGP优先选择有较短AS_PATH 的BGP 路由(500 200)
  • 如果在路由更新消息中发现自己所在的AS 号已经被包含在AS_PATH 属性中,将此路由信息丢弃。
  • BGP 不会接收AS_PATH 属性中包含本AS Number 的路由,从而避免了AS 间产生环路的可能。

🕘 5.3 Next Hop 属性

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • BGP 在向EBGP 邻居通告路由时,或者将本地发布的BGP 路由通告给IBGP 邻居时,下一跳属性是本地BGP 与对端连接的端口地址。
  • 对于多路访问的网络(广播网或NBMA 网络),下一跳情况有所不同。
  • BGP 在向IBGP 邻居通告从其他EBGP 得到的路由时,不改变路由的下一跳属性,而直接传递给IBGP 邻居。

🕘 5.4 Local-Preference 属性

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

假设Internet 上有这样两条路由:

  • 210.52.83.0/24和210.52.82.0/24,而需求是使到网络83 的流量分布在到ISP1 的链路上,而到网络82 的流量分布在到ISP2 的链路上。
  • RT5 分别有两个来源获得82 和83 路由,这样只需要在RT3 和RT4 上适当地对来源的属性进行修改,就可以达到目的。
  • BGP 可以给路由附加一种称为本地优先级的属性,路由器接收到去往同一目的地的多条路由,可以根据本地优先级属性值的高低进行路由选举。

🕘 5.5 MED 属性

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

  • MED是可选非过渡属性,是用于控制数据流怎样进入本AS
  • MED值越小,链路越优先
  • 这时候AS200 的管理者想达到以下目的,从AS100 来的到82 的数据流通过RT2 路由器到达,而从AS100 来的到83 的数据流通过RT1 到达。
  • 在AS200 的边界路由器RT1 上,当向RT3 发布路由82 和83 时,给83 打上标记50,而给82 打上标记100。
  • 在AS200 的边界路由器RT2 上,当向RT3 发布路由82 和83 时,给82 打上标记50,而给83 打上标记100。

🕘 5.6 Community 属性

  • 团体是一组有相同性质的目的地址路由。目的就是将路由信息编组,通过组的标识决定路由传递的策略
  • 每个AS 的管理员都可以自己定义目的地址所属的团体
  • 团体属性由一系列以32 位长度(4字节)为单位的数值所组成
    • 保留的团体属性:
      • 0x00000000—0x0000FFFF
      • 0xFFFF0000—0xFFFFFFFF
    • 私有团体属性:
      • AS(2B):Number(2B)
    • 公认团体属性:
      • NO_EXPORT (0xFFFFFF01)
        • 路由器收到带有这一团体值的路由后,不应把该路由通告给一个联盟之外的对等体。
      • NO_ADVERTISE (0xFFFFFF02)
        • 路由器收到带有这一团体值的路由后,不应把该路由通告给任何的BGP 对等体。
      • NO_EXPORT_SUBCONFED (0xFFFFFF03)
        • 路由器收到带有这一团体值的路由后,可以把该路由通告给它的IBGP 对等体,但不应通告给任何的EBGP 对等体。

🕘 5.7 BGP路径选择过程

1.如果此路由的下一跳不可达,忽略此路由
2.评估Preferred-Value值,数值高的优先 (VRP5增加的新参数,指定对等体的首选值,数值越高越好 )
3.Local-Preference值最高的路由优先
4.聚合路由优先于非聚合路由
5.本地手动聚合路由的优先级高于本地自动聚合的路由
6.本地通过network命令引入的路由的优先级高于本地通过import-route命令引入的路由
7.评估AS路径的长度,最短的路径优先
8.比较Origin属性, IGP优于EGP,EGP优于Incomplete
9.选择MED较小的路由
10. EBGP路由优于IBGP路由
11. EBGP优先选择到BGP下一跳的IGP度量最低的路径

当以上全部相同,则为等价路由,可以负载分担
注:AS_PATH必须完全一致

当负载分担时,以下3条原则无效
13. 比较Cluster-List长度,短者优先
14. 比较Originator_ID(如果没有Originator_ID,则用Router ID比较),选择数值较小的路径
15. 比较对等体的IP地址,选择IP地址数值最小的路径

🕒 6. 路由重分布

  • 在同一网络中,存在多协议并存的情况
  • 为了有效地支持多种路由协议,在不同路由协议之间共享路由

路由重分布:将一种路由选择协议获悉的路由信息告知另一种路由选择协议

特点:

  • 路由重分布既可以是单向也可以双向
  • 通常只有自治系统边界路由器才能实现路由重分布
  • 路由分布只能在同一种第三层协议的路由选择进程之间进行

存在问题:

  • 路由回环
  • 管理距离不同(次优路由)
  • 路由信息不兼容(度量值不同)
  • 收敛时间不一致

注意事项:

  • 不要在同一网络重叠使用路由协议
  • 多个边界路由器:使用单向重分布
  • 单边界路由器:双向重分布
Router(config-router)#redistribute protocol [process-id]  [metric metric-value]  [metric-type type-value] [match {internal | external 1 | external 2}] [tag tag-value] [route-map map-tag] [weight weight] [subnet]
  • protocol:源路由协议
  • process-id:进程号
  • metric:度量值
  • metric-type: 一般用于ospf,默认type-2外部路由;如果type-value为1,即type-1外部路由
  • match {internal | external 1 | external 2}]:只用在重分布到其他路由协议的OSPF中
  • weight:重分布到BGP的路由中定义权重(0-65535)
  • subnet:主要用于重分布到OSPF

🕘 6.1 实例

将ospf、静态、直连重分配到rip:

R(config)#router rip
R(config-router)#redistribute ospf 1 metric  1
R(config-router)# redistribute static metric 1
R(config-router)# redistribute connected metric 1

注:rip 以跳数作度量,最大为15 跳

将rip 、静态、直连重分配到ospf:

R(config)#router ospf 1
R(config-router)#redistribute rip metric 30 subnets
R(config-router)# redistribute static metric 100 subnets
R(config-router)# redistribute connected metric 100 subnets

注:subnets 参数为重分配子网,不加即只重分配主类地址

🕘 6.2 选择最佳路由

  • 多路由协议的使用,产生两个或多个达到目的地的不同路由
  • 选择最佳路由:管理距离、默认度量值
  • 接受重分布的路由协议要将这些路由协议与自己的度量关联起来,让执行路由重分布的路由器被重分布的路由指定度量值/改变默认度量值
  • 也可以改变路由协议的管理距离,改变最佳路由

🕤 6.2.1 改变管理距离

  • 管理距离可以看做是一个可信度的度量
  • 管理距离越小,协议的可信度越高
  • 通过distance命令改变管理距离
路由选择协议 管理距离 路由选择协议 管理距离
直连接口 0 OSPF 110
静态接口 1 RIP 120
EIGRP 90 BGP 20

可信度:直连路由>静态路由>BGP>EIGRP>OSPF>RIP

Distance命令:

distance weight [address mask [access-list-number | name] ] [ip]
  • weight:实际的管理距离(10-255)
  • address、mask:指定匹配的网络
  • Access-list-number | name:入站更新报文的访问列表的编号/标准IP访问列表的名称
  • ip:用于IS-IS协议

实例:

R(config)# router ospf 1
R(config-router)# network 172.16.0.0 
R(config-router)# distance 255
R(config-router)# distance 110 192.168.31.0 0.0.0.255

🕤 6.2.2 改变默认度量值

默认度量值(种子度量值):路由重分布中,从外部重分布进来的路由的初始度量值

路由协议 默认种子度量值
RIP 16(无穷大)
EIGRP 225(无穷大)
OSPF BGP为1,其他为20
IS-IS 0
BGP IGP的度量值

default-metric 指令实例:

R(config)# router rip 
R(config-router)# default-metric 4
R(config-router)# redistribute ospf 100 //当OSPF路由重分布到RIP中,默认度量值为4
R(config)# router ospf 100
R(config-router)# default-metirc 10
R(config-router)# redistribute rip //当RIP路由重分布到OSPF中,默认度量值为10

🕒 7. 实验

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

设备名 端口 ip地址 掩码 AS ID
R1 f0/1 192.168.2.1 255.255.255.0 65101
f0/0 192.168.3.1 255.255.255.0
loopback0 1.1.1.1 255.255.255.0
R2 f0/1 192.168.3.2 255.255.255.0 65101
f0/0 192.168.4.2 255.255.255.0
loopback0 2.2.2.2 255.255.255.0
R3 f0/1 192.168.1.3 255.255.255.0 65100
f0/0 192.168.2.3 255.255.255.0
R4 f0/1 192.168.1.4 255.255.255.0 65100
R5 f0/1 192.168.4.5 255.255.255.0 65102

注:R1和R2由于其位置的特殊性(既是IBGP对等体,又是EBGP对等体),因此都配置环回口,作为IBGP的对等体ID。

实验步骤:

一、基本配置
(1)配置所有路由器的接口IP
(2)打开接口

二、 配置RIP(以R1为例)

R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 192.168.2.0
R1(config-router)#network 192.168.3.0
R1(config-router)#network 1.1.1.0
R1(config-router)#passive-interface f0/1

注:RIP只作用在所在区域内,不得跨区域应用(这是BGP的功能),因此在边界处(如R1的f0/1、R2的f0/0)设置被动端口。

三、在R1和R2之间、R1和R3之间开启抓包

根据拓扑图,我们选出的IBGP有R1、R2、R3、R5,EBGP有R1、R2

四、在R1上配置BGP

# 启用 BGP路由协议
R1(config)#router bgp 65101
# 配置BGP邻居,其中R2为IBGP对等体
R1(config-router)#neighbor 2.2.2.2 remote-as 65101
R1(config-router)#neighbor 2.2.2.2 update-source loopback0
# 配置R3为EBGP对等体
R1(config-router)#neighbor 192.168.2.3 remote-as 65100
# 路由重分布
R1(config-router)#redistribute rip

注:用loopback接口地址作为IBGP邻居标识时,必须指定邻居的更新源接口。

五、在R2上配置BGP

R2(config)#router bgp 65101
R2(config-router)#neighbor 1.1.1.1 remote-as 65101
R2(config-router)#neighbor 1.1.1.1 update-source loopback0
R2(config-router)#neighbor 192.168.4.5 remote-as 65102
R2(config-router)#redistribute rip

六、在R3上配置BGP

R3(config)#router bgp 65100
R3(config-router)#neighbor 192.168.2.1 remote-as 65101
R3(config-router)#redistribute rip

七、在R5上配置BGP

R5(config)#router bgp 65102
R5(config-router)#neighbor 192.168.4.2 remote-as 65101
R5(config-router)#redistribute rip

八、抓包分析
在wireshark的显示过滤器设置过滤条件:bgp,通过观察数据包分析BGP的工作机制

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络

九、查看路由表、BGP路由表、BGP邻居路由器

R1#show ip route
R1#show ip bgp
R1#show ip bgp neighbors

bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络
bgp协议,TCP/IP网络协议原理与分析,网络协议,学习,笔记,经验分享,网络


❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页文章来源地址https://www.toymoban.com/news/detail-753780.html

到了这里,关于【网络协议详解】——BGP协议(学习笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • BGP协议基础配置—学习

    IGP是运行在AS内部的路由协议,主要有RIP、OSPF及IS-IS,着重于发现和计算路由。 EGP是运行在AS之间的路由协议,通常是BGP,它是实现路由控制和选择最好的路由协议。 这次主要讲的是BGP。 BGP它不生产路由,是路由的搬运工,就比如是把AS10的路由搬到AS20上去,network,不叫产生

    2023年04月23日
    浏览(70)
  • 计算机网络 网络层 边界网关协议BGP

             

    2024年02月13日
    浏览(46)
  • IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)

    路由产生方式: 直接路由:路由器会 自动生成 本路由器激活端口所在网段的路由条目 静态路由:网络管理员手工配置,静态路由信息在缺省的情况下私有的, 不会传递给其他的路由器 简单、高效、可靠、安全保密性高 静态路由描述转发路径的方式有两种:指向本地接口、

    2024年02月12日
    浏览(39)
  • Linux 网络编程学习笔记——一、TCP/IP 协议族

    数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(以太网、令牌环等)上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供一个统一的接口。最常用的协议是 ARP(Address Resolve Protocol,地址解析协议)和 RARP(

    2024年02月02日
    浏览(74)
  • 为什么RIP使用UDP,OSPF使用IP,而BGP使用TCP?为什么RIP周期性地和邻站交换路由信息而BGP却不这样做?

    RIP只和邻站交换信息,使用UDP无可靠保障,但开销小,可以满足RIP要求; OSPF使用可靠的洪泛法,直接使用IP,灵活、开销小; BGP需要交换整个路由表和更新信息,TCP提供可靠交付以减少带宽消耗; RIP使用不保证可靠交付的UDP,因此必须不断地(周期性地)和邻站交换信息才

    2024年02月02日
    浏览(54)
  • 「网络编程」传输层协议_ TCP协议学习_及原理深入理解(一)[万字详解]

    「前言」文章内容大致是传输层协议,TCP协议讲解,续上篇UDP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) TCP( Transmission Control Protoco l)是一种面向连接的、可靠的传输协议,TCP全称为 \\\"传输控制协议”,TCP人如其名,要对数据的传输进行一个

    2024年02月16日
    浏览(38)
  • 「网络编程」传输层协议_ TCP协议学习_及原理深入理解(二 - 完结)[万字详解]

    「前言」文章内容大致是传输层协议,TCP协议讲解的第二篇,续上篇TCP。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 首先明确,TCP是面向连接的,TCP通信之前需要先建立连接,就是因为 TCP的各种可靠性保证都是基于连接的,要保证传输数据的可靠性

    2024年02月15日
    浏览(44)
  • 【网络原理】TCP/IP协议

    目录 1.应用层 2.传输层(核心问题) 2.1 UDP协议 2.1.2 UDP的特点 2.1.3 基于UDP的应用层协议 2.2 TCP协议(重点内容) 2.2.1 TCP/IP 协议含义 2.2.2 TCP协议端格式: 2.2.3 TCP的特点 2.3 TCP原理 2.4 确认应答机制(安全机制) 2.5 超时重传机制(安全机制) 2.5.1 数据直接丢了,接收方没

    2023年04月13日
    浏览(54)
  • 【网络原理】TCP/IP协议(续)

    目录 🔥网络层重点协议(IP 协议) 一、地址管理 1.如何解决上述地址不够用问题? 2.NAT 机制 2.1 NAPT 2.2 在 NAT 背景下如何通信? 3.IPv6 4.IP地址 4.1 ABCDE类 4.2 子网掩码 4.3 特殊的 IP 地址 二、路由选择 1.路由器 1.1 网关 1.2 路由 🌴数据链路层重点协议 1.以太网 1.1 认识以太网

    2023年04月19日
    浏览(70)
  • BGP路由器协议排错教程:BGP 基本配置

    在配置 BGP 时,最好从模块化的角度考虑配置信息。BGP 路由器上需要配置以下组成 部分。 ? BGP 会话参数:BGP 会话参数中提供了用来与远端 BGP 邻居建立通信所需的设置。 会话设置中包含 BGP 对等体的 ASN、认证和存活计时器。 ? 地址家族初始化:地址家族的配置是在 BGP 路由

    2024年02月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包