龙空技术网

边界网关协议BGP实践课(1)——理论篇

onme0 1341

前言:

现时小伙伴们对“基于距离向量算法的路由协议的模拟实现”都比较关心,我们都想要学习一些“基于距离向量算法的路由协议的模拟实现”的相关内容。那么小编也在网上汇集了一些有关“基于距离向量算法的路由协议的模拟实现””的相关知识,希望兄弟们能喜欢,姐妹们一起来了解一下吧!

概述

通过实践验证理论的方式,往往可快速的学习、积累和应用知识。接下来,我将通过实践课的方式向各位小伙伴总结分享边界网关协议BGP。

基础BGP组网案例组网拓扑图

组网拓扑如下图所示,利用BGP协议实现SW_1设备接口loopback0的IP和SW_4设备接口loopback0的IP之间的互联、互通。

备注:模拟器采用HCL 5.5.0

组网地址规划

组网地址规划如下图所示,互联地址采用30位的掩码,采用BGP技术,最终实现10.10.0.1和10.30.0.1之间的互联、互通。

组网设备基础配置

组网设备基础配置主要涉及设备命名和接口IP地址配置

# SW_1基础配置

[H3C] sysname SW_1

[SW_1]interface LoopBack0

[SW_1-LoopBack0] ip address 10.10.0.1 255.255.255.255

[SW_1-LoopBack0]quit

[SW_1]interface GigabitEthernet1/0/2

[SW_1-GigabitEthernet1/0/2] port link-mode route

[SW_1-GigabitEthernet1/0/2] ip address 10.10.2.1 255.255.255.252

[SW_1-GigabitEthernet1/0/2]quit

[SW_1]ip ttl-expires enable

[SW_1]ip unreachables enable

# SW_2基础配置

[H3C] sysname SW_2

[SW_2]interface LoopBack0

[SW_2-LoopBack0] ip address 10.20.0.2 255.255.255.255

[SW_2-LoopBack0]quit

[SW_2]interface GigabitEthernet1/0/2

[SW_2-GigabitEthernet1/0/2] port link-mode route

[SW_2-GigabitEthernet1/0/2] ip address 10.10.2.2 255.255.255.252

[SW_2-GigabitEthernet1/0/2]quit

[SW_2]interface GigabitEthernet1/0/3

[SW_2-GigabitEthernet1/0/3] port link-mode route

[SW_2-GigabitEthernet1/0/3] ip address 10.20.3.1 255.255.255.252

[SW_2-GigabitEthernet1/0/3]quit

[SW_2]ip ttl-expires enable

[SW_2]ip unreachables enable

# SW_3基础配置

[H3C] sysname SW_3

[SW_3]interface LoopBack0

[SW_3-LoopBack0] ip address 10.20.0.3 255.255.255.255

[SW_3-LoopBack0]quit

[SW_3]interface GigabitEthernet1/0/3

[SW_3-GigabitEthernet1/0/3] port link-mode route

[SW_3-GigabitEthernet1/0/3] ip address 10.20.3.2 255.255.255.252

[SW_3-GigabitEthernet1/0/3]quit

[SW_3]interface GigabitEthernet1/0/4

[SW_3-GigabitEthernet1/0/4] port link-mode route

[SW_3-GigabitEthernet1/0/4] ip address 10.20.4.1 255.255.255.252

[SW_3-GigabitEthernet1/0/4]quit

[SW_3]ip ttl-expires enable

[SW_3]ip unreachables enable

#SW_4基础配置

[H3C] sysname SW_4

[SW_4]interface LoopBack0

[SW_4-LoopBack0] ip address 10.30.0.1 255.255.255.255

[SW_4-LoopBack0]quit

[SW_4]interface GigabitEthernet1/0/4

[SW_4-GigabitEthernet1/0/4] port link-mode route

[SW_4-GigabitEthernet1/0/4] ip address 10.20.4.2 255.255.255.252

[SW_4-GigabitEthernet1/0/4]quit

[SW_4]ip ttl-expires enable

[SW_4]ip unreachables enable

组网设备BGP配置

#SW_1设备BGP配置

[SW_1]bgp 10

[SW_1-bgp-default] router-id 10.10.0.1

[SW_1-bgp-default] peer 10.10.2.2 as-number 20

[SW_1-bgp-default] address-family ipv4 unicast

[SW_1-bgp-default-ipv4] network 10.10.0.1 255.255.255.255

[SW_1-bgp-default-ipv4] peer 10.10.2.2 enable

[SW_1-bgp-default-ipv4]quit

[SW_1-bgp-default]quit

[SW_1]

#SW_2设备BGP配置

[SW_2]bgp 20

[SW_2-bgp-default] router-id 10.20.0.2

[SW_2-bgp-default] peer 10.10.2.1 as-number 10

[SW_2-bgp-default] peer 10.20.3.2 as-number 20

[SW_2-bgp-default] address-family ipv4 unicast

[SW_2-bgp-default-ipv4] peer 10.10.2.1 enable

[SW_2-bgp-default-ipv4] peer 10.20.3.2 enable

[SW_2-bgp-default-ipv4] peer 10.20.3.2 next-hop-local

[SW_2-bgp-default-ipv4]quit

[SW_2-bgp-default]quit

[SW_2]

#SW_3设备BGP配置

[SW_3]bgp 20

[SW_3-bgp-default] router-id 10.20.0.3

[SW_3-bgp-default] peer 10.20.3.1 as-number 20

[SW_3-bgp-default] peer 10.20.4.2 as-number 30

[SW_3-bgp-default] address-family ipv4 unicast

[SW_3-bgp-default-ipv4] peer 10.20.3.1 enable

[SW_3-bgp-default-ipv4] peer 10.20.3.1 next-hop-local

[SW_3-bgp-default-ipv4] peer 10.20.4.2 enable

[SW_3-bgp-default-ipv4]quit

[SW_3-bgp-default]quit

[SW_3]

#SW_4设备BGP配置

[SW_4]bgp 30

[SW_4-bgp-default] router-id 10.30.0.1

[SW_4-bgp-default] peer 10.20.4.1 as-number 20

[SW_4-bgp-default] address-family ipv4 unicast

[SW_4-bgp-default-ipv4] network 10.30.0.1 255.255.255.255

[SW_4-bgp-default-ipv4] peer 10.20.4.1 enable

[SW_4-bgp-default-ipv4]quit

[SW_4-bgp-default]quit

[SW_4]

组网目标验证

查看SW_1设备的BGP路由表并进行路由跟踪,如下图所示;

#查看SW_1设备的BGP路由表

[SW_1]display bgp routing-table ipv4

#带源地址的路由跟踪

[SW_1]tracert -a 10.10.0.1 10.30.0.

查看SW_4设备的BGP路由表并进行路由跟踪,如下图所示;

通过上述验证,实现了本次组网的目标。

BGP理论基础

组网实验本身比较基础,根据上述描述便可模拟验证,那么接下来让我们结合实验总结一下BGP相关理论知识。

BGP的含义

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议

BGP也可以理解成一种应用层的协议,传输层采用TCP,工作端口179。如下图所示,在SW_1设备G1/0/2接口抓取的SW_1向SW_2发送的BGP Update报文。

自治系统AS(Autonomous System)

AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。其中,RFC1771定义AS号是2字节,即1至65535;RFC4893定义AS号是4字节,即1至4294967295。支持4字节AS号的设备能够与支持2字节AS号的设备兼容。

就如,本组网拓扑中的AS 10、AS 20和AS 30。以SW_1设备举例来说,对应的命令是:[SW_1]bgp 10。

BGP分类

如图组网拓扑所示,BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。

EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。

IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。

BGP报文交互中的角色

BGP报文交互中分为Speaker和Peer两种角色。

Speaker:发送BGP报文的设备称为BGP发言者(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它BGP Speaker。

Peer:相互交换报文的Speaker之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)。

以SW_1设备举例来说,配置对等体并使能的配置命令如下所示;

[SW_1-bgp-default] peer 10.10.2.2 as-number 20

[SW_1-bgp-default] address-family ipv4 unicast

[SW_1-bgp-default-ipv4] peer 10.10.2.2 enable

BGP的路由器号(Router ID)

BGP的Router ID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。

以SW_1设备举例来说,配置SW_1设备的路由号命令如下所示;

[SW_1-bgp-default] router-id 10.10.0.1

如下图所示,在SW_1设备G1/0/2接口抓取的SW_1向SW_2发送的BGP Open报文中,SW_1设备的Router ID是10.10.0.1。

BGP的报文及状态机

BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:

Open报文:用于建立BGP对等体连接。

Update报文:用于在对等体之间交换路由信息。

Notification报文:用于中断BGP连接。

Keepalive报文:用于保持BGP连接。

Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。

BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。

如下图所示,在SW_1设备G1/0/2接口抓取它与SW_2设备设备之间建立BGP连接、保持连接以及相互通告路由更新的过程报文;

标识1:Idle—>Connect状态 ——在Connect状态,SW_1设备向SW_2设备的TCP 179端口发起TCP连接并完成TCP连接;

标识2:Open报文已发送(OpenSent)——>Open报文已确认(OpenConfirm)——SW_1设备与SW_2设备相互发送Open报文并相互确认报文;

标识3: SW_1设备和SW_2设备相互收到对方的Keepalive报文和确认报文,BGP对等体间进入Established状态;

标识4:SW_1设备和SW_2设备间相互发送Update报文通告各自的路由。

标签: #基于距离向量算法的路由协议的模拟实现