千家信息网

华为BGP动态路由协议理论+实验

发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,文章目录前言一:BGP协议理论1.1:概述1.2:动态路由的分类1.2.1:按自治系统分类1.2.2:按协议类型分类1.3:BGP的特点1.4:BGP的工作原理1.4.1:BGP报文1.4.2:BGP
千家信息网最后更新 2025年01月28日华为BGP动态路由协议理论+实验

文章目录

前言

一:BGP协议理论

1.1:概述

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的类型

二:BGP协议实验

2.1:实验环境

2.2:实验目的

2.3:实验拓扑图

2.4:实验过程

2.4.1:命令讲解

2.4.2:实操

2.5:实验验证

2.6:实验总结

一:BGP协议理论

1.1:概述

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最短路径算法

1.3:BGP的特点

传输协议:TCP,端口号179

BGP是外部路由协议,用来在AS之间传递路由信息

是一种增强的路径矢量路由协议

拥有可靠的路由更新机制

具备丰富的Metric度量方法

无环路协议设计

为路由条目附带多种属性信息

支持CIDR(无类别域间选路)

丰富的路由过滤和路由策略

无需周期性更新

路由更新时只发送增量路由

周期性发送KeepAlive报文以保持 TCP连通性

1.4:BGP的工作原理

1.4.1:BGP报文

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数据库

IP路由表:全局路由信息库,包括最优的IP路由信息
BGP路由表:BGP路由信息库,包括本地BGPSpeak通告的路由信息,将其最优的添加到路由表中
邻居表:对等体邻居清单表,包括对等体两端的邻居信息及邻居列表
Adi-RIB-In:对等体宣告给本地的Speak的未处理的路由信息库
Adjust-RIB-OUT:本地Speak宣告给指定的对等体路由信息库

1.4.3:BGP的类型

两种邻居:IBGP和EBGP

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

二:BGP协议实验

2.1:实验环境

eNSP软件

4台路由器(R1,R2,R3,R5)

R1,R2,R4处于OSPF的area 0,也处于AS100中

R3处于AS200中

2.2:实验目的

通过配置,实现全网互通

2.3:实验拓扑图

2.4:实验过程

2.4.1:命令讲解

BGP配置思路

1、启用BGP,后面跟AS系统号
2、宣告Route-id,建立邻居关系用,由于此中含有OSPF协议,所以router-id可以在启动BGP前宣告,减少一个操作步骤
3、宣告和谁建立邻居关系
4、通告BGP路由,(network、import)

命令展示

'//建立邻居关系'[R1]router-id 1.1.1.1   '//宣告router-id'[R1]bgp 100 '//启动bgp'[R1-bgp]peer 7.7.7.7 as-number 100  '//建立邻居关系第一步,宣告要建立的as区域'[R1-bgp]peer 7.7.7.7 connect-interface loo 0    '//建立邻居关系第二步,使用loo 0地址建立 邻居关系'[R1-bgp]network 1.1.1.1 32  '//宣告网段'
'//查看命令'[R1] display bgp peer       '//查看BGP邻居'[R1] display routing-table      '//查看BGP路由表'[R1-bgp] import-route ospf 1    '//注入ospf/ISIS中的路由''//只有建立邻居关系,注入的路由信息才能被邻居学习到'

2.4.2:实操

配置的命令我直接给出结果了,具体的大家应该都会,如果有疑问可以私聊我或者评论交流

R1配置

sysname R1      //修改名称router id 1.1.1.1       //宣告router idint g0/0/0      //配置接口地址ip add 12.0.0.1 30int g0/0/1      //配置接口地址 ip address 15.0.0.1 30int loo 0           //配置接口地址ip add 1.1.1.1 32bgp 100         //启动bgp,100为进程号peer 2.2.2.2 as-number 100      //和router id 为2.2.2.2且as区域为100的路由建立邻居关系的第一步,指定对方peer 2.2.2.2 connect-interface LoopBack0    //和router id 为2.2.2.2的路由建立邻居关系的第二步,用loo 0接口连接对方 peer 4.4.4.4 as-number 100  //和router id 为4.4.4.4且as区域为100的路由建立邻居关系的第一步,指定对方peer 4.4.4.4 connect-interface LoopBack0    //和router id 为4.4.4.的路由建立邻居关系的第二步,用loo 0接口连接对方 network 1.1.1.1 255.255.255.255 //宣告网段ospf 1              //启动ospf进程为1area 0.0.0.0            //宣告ospf区域 network 1.1.1.1 0.0.0.0     //以下都为宣告网段 network 12.0.0.0 0.0.0.3network 15.0.0.0 0.0.0.3

R2配置

sysname R2router id 2.2.2.2int g0/0/0ip add 12.0.0.2 30int g0/0/1ip add 23.0.0.1 30int loo 0ip add 2.2.2.2 32bgp 100peer 1.1.1.1 as-number 100peer 1.1.1.1 connect-interface LoopBack0peer 4.4.4.4 as-number 100peer 4.4.4.4 connect-interface LoopBack0peer 23.0.0.2 as-number 200     //直接使用23.0.0.2的物理地址和bgp200区域的路由器建立连接,不可以使用虚拟接口地址network 2.2.2.2 255.255.255.255import-route ospf 1     //注入ospf 1 的路由条目,否则R3学习不到bgp100中的其他路由条目,除了R2在BGP中宣告的2.2.2.2,其他的都会学习不到,所以需要注入ospf 1 的路由条目'ospf 1       area 0.0.0.0    network 2.2.2.2 0.0.0.0 network 12.0.0.0 0.0.0.3network 23.0.0.0 0.0.0.3

R3配置

sysname R3router id 3.3.3.3int g0/0/1ip add 23.0.0.2 30int loo 0ip add 3.3.3.3 32bgp 200peer 23.0.0.1 as-number 100         //使用物理地址23.0.0.1和bgp100的路由器建立邻居关系network 3.3.3.3 255.255.255.255

R4配置

sysname R5router id 4.4.4.4int g0/0/1ip add 15.0.0.2 30int loo 0ip add 4.4.4.4 32int loo 1ip add 202.0.0.1 24int loo 2ip add 202.0.1.1 24bgp 100peer 1.1.1.1 as-number 100peer 1.1.1.1 connect-interface LoopBack0peer 2.2.2.2 as-number 100peer 2.2.2.2 connect-interface LoopBack0network 4.4.4.4 255.255.255.255ospf 1area 0network 4.4.4.4 0.0.0.0network 15.0.0.0 0.0.0.3network 202.0.0.0 0.0.0.255network 202.0.1.0 0.0.0.255

此时我们使用dis ip routing-table即可发现已经相互学习到了所有的路由条目

2.5:实验验证

成功全网互通,用相同方法测试其他几台路由器即可

2.6:实验总结

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

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

跨自治域建立邻居关系如果要使用虚拟回环地址,需要添加静态路由,并指向下一条为两跳

'//静态路由的添加不在赘述'##R2##[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##[R3] router id 3.3.3.3[R3] bgp 200[R3-bgp] peer 2.2.2.2 as-number 100[R3-bgp] peer 2.2.2.2 connect-interface LoopBack 0[R3-bgp] peer 2.2.2.2 ebgp-max-hop 2
0