华为网络----BGP路由协议理论+实验

文章目录

        • 前言:
        • 一、BGP协议理论部分
          • 1.1 BGP协议概述
          • 1.2 动态路由分类
            • 1.2.1 按自治系统分类
            • 1.2.2 按协议类型分类
          • 1.3 BGP协议特征
          • 1.4 BGP工作原理
            • 1.4.1 BGP报文
            • 1.4.2 BGP工作过程
            • 1.4.3:BGP数据库
            • 1.4.4 BGP类型
        • 二、BGP协议配置(实验部分)
          • 2.1 实验拓扑
          • 2.2 路由器R1配置
          • 2.3 路由器R2配置
          • 2.4 路由器R3配置
          • 2.5 路由器R4配置
          • 2.6 验证
        • 总结:

前言:

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

一、BGP协议理论部分

1.1 BGP协议概述
  • BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS之间自动交换无环路由信息

  • 以此来构建AS的拓扑图,从而消除路由环路并实施用户配置的路由策略。

  • 目前公网网络条目众多,IGP协议无法承载,而BGP可以轻松应对,通常BGP协议用于ISP和ISP之间或跨域地域总、分公司之间的路由信息交换

  • 自制系统编号

    自治系统(AS):由一个技术管理机构管理,使用统一选路策略的一组路由器集合

    自治系统一般是由电信、移动、连通运营商申请的

    自治系统编号范围:1-65535,其中1-64511是互联网上注册公有AS号,类似公网IP地址。

    其中 64512-65535 是私有AS号,类似私网IP地址

    www.inna.org,注册网址(个人无法注册)

1.2 动态路由分类
1.2.1 按自治系统分类
  • IGP

    自治系统内部路由协议,主要使用:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)

    IGP是运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由

  • EGP

    自治系统之间的路由协议,通常使用BGP

    EGP是运行在AS与AS之间的路由协议,他解决AS之间选路问题。

1.2.2 按协议类型分类
  • 距离矢量路由协议

    • rip1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议)
  • 链路状态路由协议

    • OSPF、ISIS:使用SPF最短路径算法

    Ps:peers (对等体)BGP中因为可以非直连建立邻居关系,所以邻居关系也被称为对等体

1.3 BGP协议特征
  • BGP采用TCP协议。端口号为179
  • BGP是外部路由协议,用来在AS之间传递路由信息
  • BGP是一种增强的路径矢量路由协议
  • 拥有可靠的路由更新机制
  • 无环路协议设计
  • 具备丰富的Metric度量方法
  • 为路由条目附带多种属性信息
  • 支持CIDR(无类别域间选路)
  • 丰富的路由过滤和路由策略
  • 无需周期性更新
  • 路由更新时只发送增量路由
  • 周期性发送KeepAlive报文以保持TCP连通性
1.4 BGP工作原理
1.4.1 BGP报文
  • BGP所有的数据均基于TCP会话传递,由TCP来进行邻居的发现及所有数据包的ACK

  • Open报文

    OPen报文是TCP建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,主要包含BGP版本号、本地AS编号、Holdtime等信息

  • UPdate报文

    Update报文用来在BGP之间更新路由信息,Updata报文可以通告多条属性相同的可达路由信息,也可以撤销多条路由不可达的路由信息

  • Notification报文

    报文的作用是当BGP检测到错误状态时候,立即向对等体发送NOtification报文,之后BGP就会中断只要收到Notification报文就会返回idle状态

  • Route-Refresh报文

    用来告知对等体所支持路由的刷新能力,BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送Route-Refresh报文,收到信息后,对等体将其路由信息重新发送给本地BGP路由器

  • KeepAlive报文

    该报文在对等体之间周期的发送报文,用以保持连接的有效性并维护其连接,KeepAlive报文只有一个BGP报文头,默认KeepAlive报文发送周期为60S,保持时间180S,这个类似于OSPF中的Hello报文

1.4.2 BGP工作过程
  • 空闲(Idle):为初始状态,当协议激活后开始初始化,复位计时器,并发起第一个TCP连接,并开始倾听远程对等体所发起的连接,同时转向Connect状态。
  • 连接(Connect):开始TCP连接并等待TCP连接成功的消息。如果TCP连接成功,则进入OpenSent状态;如果TCP连接失败,进入Active状态。
  • 行动(Active):BGP总是试图建立TCP连接,若连接计时器超时,则退回到Connect状态,TCP连接成功就转为Open sent状态。
  • OPEN发送(Open sent):TCP连接已建立,自己已发送第一个OPEN报文,等待接收对方的Open报文,并对报文进行检查,若发现错误则发送Notification消息报文并退回到Idle状态。若检查无误则发送Keepalive消息报文,Keepalive计时器开始计时,并转为Open confirm状态。
  • OPEN证实(Open confirm):BGP等待Keepalive报文,同时复位保持计时器。如果收到了Keepalive报文,就转为Established状态,邻居关系协商完成。如果系统收到一条更新或Keepalive消息,它将重新启动保持计时器;如果收到Notification消息,BGP就退回到空闲状态。
  • 已建立(Established):即建立了邻居(对等体)关系,路由器将和邻居交换Update报文,同时复位保持计时器。
1.4.3:BGP数据库
  • ① IP路由表:全局路由信息库,包括最优的IP路由信息
  • ② BGP路由表:BGP路由信息库,包括本地BGPSpeak通告的路由信息,将其最优的添加到路由表中
  • ③ 邻居表:对等体邻居清单表,包括对等体两端的邻居信息及邻居列表
  • ④ Adi-RIB-In:对等体宣告给本地的Speak的未处理的路由信息库
  • ⑤ Adjust-RIB-OUT:本地Speak宣告给指定的对等体路由信息库
1.4.4 BGP类型
  • BGP有两种类型:IBGP和EBGP

  • IBGP:同一个AS内部BGP邻居关系,IBGP邻居是指运行BGP协议的对等体两端在同一个AS域内,属于BGP AS内部

  • EBGP:AS之间的BGP邻居关系,EBGP通常指运行BGP协议的对等体两端在不同AS内部

二、BGP协议配置(实验部分)

2.1 实验拓扑

华为网络----BGP路由协议理论+实验_第1张图片

2.2 路由器R1配置
sys
[Huawei]sysname R1

#配置物理接口、环回接口的IP地址
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 14.0.0.1 24
[R1-GigabitEthernet0/0/0]undo shut
[R1-GigabitEthernet0/0/0]q
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 15.0.0.1 24
[R1-GigabitEthernet0/0/1]undo shut
[R1-GigabitEthernet0/0/1]int loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q

#全局模式下配置router id
[R1]router id 1.1.1.1

[R1]bgp 100
#配置对等体R4路由环回地址4.4.4.4的对端AS号为100。
[R1-bgp]peer 4.4.4.4 as-number 100 
#配置向4.4.4.4发送报文时,使用源地址是本地的环回地址[R1-bgp]peer 4.4.4.4 connect-interface LoopBack 0
#配置含义同上
[R1-bgp]peer 2.2.2.2 as-number 100
[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R1-bgp]q

#进入ospf1进程
[R1]ospf 1
#进入区域0
[R1-ospf-1]area 0
#宣告内部路由网段(import-route为外部路由网段)
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 14.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 15.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]q
2.3 路由器R2配置
sys
[Huawei]sysname R2

#配置物理接口、环回接口的IP地址
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 13.0.0.1 24
[R2-GigabitEthernet0/0/1]undo shut
[R2-GigabitEthernet0/0/1]q
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 14.0.0.2 24
[R2-GigabitEthernet0/0/0]undo shut
[R2-GigabitEthernet0/0/0]q
[R2]int loo 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]q

#全局模式下配置router id
[R2]router id 2.2.2.2


[R2]bgp 100
#配置对等体R4路由环回地址4.4.4.4的对端AS号为100。
[R2-bgp]peer 4.4.4.4 as-number 100	
#配置向4.4.4.4发送报文时,使用源地址是本地的环回地址
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
#配置含义同上
[R2-bgp]peer 1.1.1.1 as-number 100	
[R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0
[R2-bgp]q

#进入ospf1进程
[R2]ospf 1
#进入区域0
[R2-ospf-1]area 0
#宣告网段
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0	
[R2-ospf-1-area-0.0.0.0]network 14.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 13.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]q

#启动bgp进程指定as号为100
[R2-ospf-1]bgp 100
#重分发,引入ospf 1的路由
[R2-bgp]import-route ospf 1
[R2-bgp]q

#与R3建立EBGP关系,使用物理地址建立对邻居关系
[R2-bgp]peer 13.0.0.2 as-number 200
#宣告环回地址
[R2-bgp]network 2.2.2.2 255.255.255.255
2.4 路由器R3配置
sys
[Huawei]sysname R3

#配置物理接口、环回接口的IP地址
[R3]int g0/0/01
[R3-GigabitEthernet0/0/1]ip add 13.0.0.2 24
[R3-GigabitEthernet0/0/1]undo shu
[R3-GigabitEthernet0/0/1]q
[R3]int loo 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]q

#全局模式下配置router id
[R3]router id 3.3.3.3
#启动bgp进程指定as号为100
[R3]bgp 200	
#与R3建立EBGP关系,使用物理地址建立对邻居关系
[R3-bgp]peer 13.0.0.1 as-number 100
#宣告环回地址
[R3-bgp]network 3.3.3.3 255.255.255.255
2.5 路由器R4配置
sys	
[Huawei]sysname R4

#配置物理接口、环回接口的IP地址
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 15.0.0.2 24	
[R4-GigabitEthernet0/0/1]und shutdown 
[R4-GigabitEthernet0/0/1]q
[R4]int loo 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]q
[R4]int loo 1
[R4-LoopBack1]ip add 202.0.0.1 24
[R4-LoopBack1]q
[R4]int loo 2
[R4-LoopBack2]ip add 202.0.1.1 24
[R4-LoopBack2]q


#全局模式下配置router id
[R4]router id 4.4.4.4

#启动bgp进程指定as号为100
[R4]bgp 100
#配置对等体R1路由环回地址1.1.1.1的对端AS号为100
[R4-bgp]peer 1.1.1.1 as-number 100	
#配置向1.1.1.1发送报文时,使用源地址是本地的环回地址
[R4-bgp]peer 1.1.1.1 connect-interface LoopBack 0	
#配置含义同上
[R4-bgp]peer 2.2.2.2 as-number 100
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0

#启动ospf 1进程
[R4-bgp]ospf 1
#配置区域0
[R4-ospf-1]area 0
#宣告内部路由网段
[R4-ospf-1-area-0.0.0.0]network 15.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0	
[R4-ospf-1-area-0.0.0.0]network 202.0.0.0 0.0.0.255	
[R4-ospf-1-area-0.0.0.0]network 202.0.1.0 0.0.0.255
2.6 验证
  • 实验R4 ping R3

华为网络----BGP路由协议理论+实验_第2张图片

总结:

  • Ⅰ BGP配置思路

    ① 启用BGP(跟AS系统号)

    ② 在全局模式宣告Router id,这样可以不用在建立邻居关系的时候再次宣告Router-id

    ③ 宣告建立邻居、对等体关系的对象

    ④ 通告BGP路由(network 内部区域路由,import-route 外部区域路由)

  • Ⅱ 跨自治域建立邻居关系时,需要使用物理地址,否则学习不到对方的路由条目

  • Ⅲ 跨自治域建立邻居关系的两个路由,想要学习对方区域的所有路由条目,需要对方将ospf或者IS-IS的路由条目注入进来

  • Ⅳ 跨自治域建立另据关系,如果要使用虚拟环回地址,则需要添加静态路由并指向下一跳为两跳,配置如下:

[R2] router id 2.2.2.2
[R2] bgp 100
[R2-bgp] peer 3.3.3.3 as-number 200
[R2-bgp] peer 3.3.3.3 connect-interface LoopBack 0
[R2-bgp] peer 3.3.3.3 ebgp-max-hop 2

[R3] router id 3.3.3.3
[R3] bgp 200
#指定发送BGP报文的源接口,并可指定发起连接时使用的源地址。
[R3-bgp] peer 2.2.2.2 as-number 100
[R3-bgp] peer 2.2.2.2 connect-interface LoopBack 0

#指定建立EBGP连接允许的最大跳数为2
#默认情况下,EBGP连接允许的最大跳数为1,即只能在物理直连链路上建立EBGP连接
[R3-bgp] peer 2.2.2.2 ebgp-max-hop 2

你可能感兴趣的:(华为网络)