BGP详解+配置
BGP
考点:对等体、BGP消息、BGP基本配置、属性
是什么:
BGP是边界网关协议,目前版是BGP4,是一种增强的距离矢量路由协议。该协议运行子不同AS的路由器之间,用于选择AS之间花费最小的协议。BGP协议基于TCP协议,端口为179.使用面向连接的TCP可以进行身份认证。可靠地交换路由信息。BGP+支持IPV6
BGP特点:
(1)不用周期性发送路由信息。
(2)路由变化,发送增量路由(变化了的路由信息)。
(3)周期性发送Keepalive报文效验TCP的连通性。
1.对等体(Peer)
在BGP中,两个路由器之间的相邻连接称为对等体连接,两个路由器互为对等体。如果路由
器对等体在同-一个AS中,就称为IBGP对等体:否则称为EBGP对等体。BGP4 网关向对等实体
发布可以到达的AS列表。
2. BGP 消息
BGP常见四种报文: OPEN报文、KEEPLIVE报文、UPDATE报文和NOTIFICATION报文.
(1) OPEN 报文:建立邻居关系。.
(2) KEEPLIVE报文:保持活动状态,周期性确认邻居关系,对OPEN报文回应。
(3) UPDATE 报文:发送新的路由信息。
(4) NOTIFICATION报文:报告检测到的错误。
发送过程如图所示。
BGP工作流程:
(1) BGP路由器直接进行TCP三次握手,建立TCP会话连接。
(2)交换OPEN信息,确定版本等参数,建立邻居关系。
(3)路由器交换所有BGP路由,直到平衡,之后只交换变化了的路由信息。
(4)路由更新由UPDATE完成。
(5)通过KEEPALIVE验证路由器是否可用。
(6)出现问题,发送NOTIFICATION消息通知错误。
3. BG基本P配置
BGP基本配置如下:
Router # confg terminal
进入全局配置模式
Routerconfig) # ip routing
启动路由协议
Router (config)”router bgp antlonomous-ystem mumber
启动BGP协议进程,autonomous-system -number用来指定自治区号
Router (configrouter) # network network address mask nehwark mask
配置接口网络、掩码
Router (confgrouter) # end
返回特权模式
BGP选路
Help—AR手册
BGP选择路由的策略
当到达同一目的地存在多条路由时,BGP 采取如下策略进行路由选择:
1.优选协议首选值(PrefVal) 最高的路由。
协议首选值(PrefVal) 是华为设备的特有属性,该属性仅在本地有效。
2.优选本地优先级(Local Pref) 最高的路由。
如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。通过
执行default local-preference命令可以修改BGP路由的缺省本地优先级。
3. 优选本地生成的路由(本地生成的路由优先级高于从邻居学来的路由)。
本地生成的路由包括通过network命令或import-route命令引入的路由、手动聚合路由
和自动聚合路由。
a.优选聚合路由(聚合路由优先级高于非聚合路由)。
b. 通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic
命令生成的自动聚合路由。
C.
通过network命令引入的路由的优先级高于通过import-route命令引入的路由。
4. 优选AS路径(AS_ Path) 最短的路由。
AS_ Path 的长度不包括AS_ CONFED_ SEQUENCE和AS_ CONFED_ SET.
AS_ SET的长度为1,无论AS_ SET 中包括多少AS号。
执行bestroute as-path-ignore命令后,BGP 选路时,忽略AS_ Path 的比较。
5. 比较Origin属性,依次优选Origin类型为IGP、 EGP、Incomplete的路由。
6.优选MED (Multi Exit Discriminator) 值最低的路由。
●BGP只比较来自同一个AS(不包括联盟的子AS)的路由的MED值。即,只有
两条路由的AS_ SEQUENCE (不包括AS_ CONFED_ SEQUENCE) 属性的第一一个 AS
号相同时,BGP才会比较二者的MED值。
●
如果路由没有MED属性,BGP选路时将该路由的MED值按缺省值0来处理;
执行bestroute med-none- as-maximum命令后,BGP选路时将该路由的MED值
按最大值4294967295来处理。
●
执行compare-different as-med命令后, BGP将强制比较来自不同自治系统中的
邻居的路由的MED值。除非能够确认不同的自治系统采用了同样的IGP和路由
选择方式,否则不要使用compare-different-as-med命令(可能产生环路)。
●
执行bestroute med-confederation命令后,只有当AS_ Path 中不包含外部AS号
(不属于联盟的子AS),且AS_ CONFED_ SEQUENCE 的第一个AS号相同时,才
能比较MED值的大小。
执行deterministic-med命令后,将消除路由接收顺序对选路结果的影响。
7.优选从EBGP邻居学来的路由(EBGP 路由优先级高于IBGP路由)。
依次优选EBGP路由、IBGP 路由、LocalCross 路由、RemoteCross 路由。
8. 优选到 BGP 下一跳 IGP Metric 较小的路由。
9. 优选 Cluster_List 最短的路由。
10. 优选 Router ID 最小的路由器发布的路由。
11. 比较对等体的 IP Address,优选从具有较小 IP Address 的对等体学来的路由。
BGP属性
BGP路由属性是一套参数,它对特定的路由进-步的描述,使得BGP能够对路由进行过滤和
选择。事实上,所有的BGP路由属性都可以分为以下4类:
公认必须遵循的(Well-known mandatory) :所有BGP路由器都可以识别,且必须存
在于Update消息中。如果缺少这种属性,路由信息就会出错。
公认任意( Well-known discretionary) :所有BGP路由器都可以识别,但不要求必须
存在于Update消息中,可以根据具体情况来选择。
可选过渡(Optional transitive) :在AS之间具有可传递性的属性。BGP路由器可以不
支持此属性,但它仍然会接收这类属性,并传递给其他对等体。
可选非过渡(Optional non-transitive) :如果BGP路由器不支持此属性,则相应的这
类属性会被忽略,且不会传递给其他对等体。
下面介绍几种常用的BGP路由属性:
Origin属性
Origin属性用来定义路径信息的来源,标记一条路 由是怎么成为BGP路由的。它有以下
3种类型:
■ IGP: 具有最高的优先级。通过路由始发AS的IGP得到的路由信息,比如通过
network命令注入到BGP路由表的路由,其Origin属性为IGP。
EGP:优先级次之。通过EGP得到的路由信息,其Origin 属性为EGP。
Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过
import-route命令引入的路由,其Origin属性为Incomplete。
AS_ Path 属性
AS_ Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。
当BGP Speaker本地通告一条 路由时:
当BGP Speaker将这条路由通告到其他AS时,便会将本地AS号添加在AS_ Path
列表中,并通过Update消息通告给邻居路由器。
■
当BGP Speaker将这条路由通告到本地AS时,便会在Update消息中创建-一个
空的AS_ Path 列表。
当BGP Speaker传播从其他BGP Speaker的Update消息中学习到的路由时:
当BGP Speaker将这条路由通告到其他AS时,便会把本地AS编号添加在
AS_ Path 列表的最前面(最左面)。收到此路由的BGP路由器根据AS_ Path 属
性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前
面,其他AS号按顺序依次排列。
当BGP Speaker将这条路由通告到本地AS时,不会改变这条路由相关的AS_ Path
属性。
Next_ Hop 属性
BGP的下一跳属性和IGP的有所不同,不- ~定就是邻居路由器的IP地址。通常情况下,
Next Hop 属性遵循下面的规则:
BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下一跳属性
设置为本地与对端建立BGP邻居关系的接口地址。
■
BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下- -跳
属性设置为本地与对端建立BGP邻居关系的接口地址。
■
BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该
路由信息的下一跳属性。
MED
MED (Multi-Exit- Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS一方
不会再将其通告给任何其他第三方AS。
MED属性相当于IGP使用的度量值(Metrics) ,它用于判断流量进入AS时的最佳路由。
当一个运行BGP的路由器通过不同的EBGP对等体得到目的地址相同但下- -跳不同的多条路
由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。
●
Local_ Pref 属性
Local_ Pref 属性仅在IBGP对等体之间有效,不通告给其他AS。它表明路由器的BGP优
先级。
Local_ Pref 属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP对
等体得到目的地址相同但下- -跳不同的多条路由时,将优先选择Local_ Pref 属性值较高的路
由。
简单的BGP配置
4台路由器,R1、R2、R4之间为电信运营商,底层用的OSPF协议,上层为BGP协议,国家骨干网为BGP协议。
路由拓扑图
配置
少了一个接口
步骤
1.配置4台路由器的接口IP、回环地址
2.配置R1、R2、R4的OSPF协议
3.配置R1、R2、R3、R4的BGP协议
4.配置R2与R3的rip协议,设置引入路由
5.进行测试
AR1:
Jun 18 2020 16:50:56-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEt
hernet0/0/0 has turned into UP state.
sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR
Jun 18 2020 16:51:03-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[1]:Interface GigabitEt
hernet0/0/1 has turned into UP state.
[Huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 15.0.0.1 30
Jun 18 2020 16:57:06-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[2]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR1-GigabitEthernet0/0/0]q
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 12.0.0.1 30
Jun 18 2020 16:57:30-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[3]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR1-GigabitEthernet0/0/1]q
[AR1]int llop
[AR1]int loop
[AR1]int LoopBack 0
[AR1]int LoopBack 0
[AR1]int LoopBack 0
[AR1]int LoopBack 0
[AR1-LoopBack0]ip add 1.1.1.1 32
[AR1-LoopBack0]q
[AR1]bgp 100
[AR1-bgp]rout
[AR1-bgp]route-select
[AR1-bgp]router-id 1.1.1.1
[AR1-bgp]peer 2.2.2.2 as
[AR1-bgp]peer 2.2.2.2 as-number
[AR1-bgp]peer 2.2.2.2 as-path-filter
[AR1-bgp]peer 2.2.2.2 as-number
[AR1-bgp]peer 2.2.2.2 as-path-filter
[AR1-bgp]peer 2.2.2.2 as-number 100
[AR1-bgp]peer 2.2.2.2 connet
[AR1-bgp]peer 2.2.2.2 connec
[AR1-bgp]peer 2.2.2.2 connect-interface loop
[AR1-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[AR1-bgp]peer 4.4.4.4 ad
[AR1-bgp]peer 4.4.4.4 as
[AR1-bgp]peer 4.4.4.4 as-path-filter
[AR1-bgp]peer 4.4.4.4 as-number 100
[AR1-bgp]perr 4.4.4.4 connect
[AR1-bgp]perr 4.4.4.4 connect-
[AR1-bgp]perr 4.4.4.4 connect-in
[AR1-bgp]perr 4.4.4.4 connect-inet
[AR1-bgp]perr 4.4.4.4 connect-inter
[AR1-bgp]perr 4.4.4.4 connect-inter
[AR1-bgp]perr 4.4.4.4 connect-inter
[AR1-bgp]perr 4.4.4.4 connect-interfa
[AR1-bgp]perr 4.4.4.4 connect-interface
[AR1-bgp]perr 4.4.4.4 connect-interface loop
[AR1-bgp]perr 4.4.4.4 connect-interface loop
[AR1-bgp]perr 4.4.4.4 connect-interface loopback 0
^
Error: Unrecognized command found at ‘^’ position.
[AR1-bgp]peer 4.4.4.4 con
[AR1-bgp]peer 4.4.4.4 connect-interface loop
[AR1-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[AR1-bgp]q
[AR1]ospf
[AR1-ospf-1]router
[AR1-ospf-1]router-
[AR1-ospf-1]router-id
[AR1-ospf-1]router-id 1.1.1.1
^
Error: Unrecognized command found at ‘^’ position.
[AR1-ospf-1]q
[AR1]ospf 1 router-id 1.1.1.1
Info: The configuration succeeded. You need to restart the OSPF process to valid
ate the new router ID.
[AR1-ospf-1]area
[AR1-ospf-1]area 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]network
[AR1-ospf-1-area-0.0.0.0]network 15.0.0.0 0.0.0.3
[AR1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.3
AR2:
The device is running!
##########
Jun 18 2020 16:50:56-08:00 Huawei %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEt
hernet0/0/0 has turned into UP state.
sys AR2
^
Error:Too many parameters found at ‘^’ position.
SYS
Enter system view, return user view with Ctrl+Z.
[Huawei]sys 2
[2]sys AR2
[AR2]
Please check whether system data has been changed, and save data in time
Configuration console time out, please press any key to log on
SYS
Enter system view, return user view with Ctrl+Z.
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 12.0.0.2 30
Jun 18 2020 17:08:57-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 23.0.0.1 30
[AR2-GigabitEthernet0/0/1]int loo
[AR2-GigabitEthernet0/0/1]int loop
[AR2-GigabitEthernet0/0/1]int loopback 0
[AR2-LoopBack0]ip add 2.2.2.2 32
[AR2-LoopBack0]bgp 100
[AR2-bgp]router-
[AR2-bgp]router-id 2.2.2.2
[AR2-bgp]peer 1.1.1.1 as
[AR2-bgp]peer 1.1.1.1 as-number 100
[AR2-bgp]peer 1.1.1.1 connect-inter
[AR2-bgp]peer 1.1.1.1 connect-interface loop
[AR2-bgp]peer 1.1.1.1 connect-interface LoopBack 0
[AR2-bgp]peer 3.3.3.3 as
[AR2-bgp]peer 3.3.3.3 as-number 200
[AR2-bgp]peer 3.3.3.3 ebg
[AR2-bgp]peer 3.3.3.3 ebgp-max-hop 2
[AR2-bgp]peer 3.3.3.3 connect
[AR2-bgp]peer 3.3.3.3 connect-interface loopback0
[AR2-bgp]peer 4.4.4.4 as
[AR2-bgp]peer 4.4.4.4 as-number 100
[AR2-bgp]peer 4.4.4.4 conne
[AR2-bgp]peer 4.4.4.4 connect-interface loopback0
[AR2-bgp]ospf 1 router -id 2.2.2.2
^
Error: Unrecognized command found at ‘^’ position.
[AR2-bgp]q
[AR2]ospf 1 router -id 2.2.2.2
^
Error: Wrong parameter found at ‘^’ position.
[AR2]ospf 1 router - id 2.2.2.2
^
Error: Wrong parameter found at ‘^’ position.
[AR2]ospf 1
[AR2]ospf 1
[AR2]ospf 1 rou
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]import
[AR2-ospf-1]import-route rip
[AR2-ospf-1]import-route rip 1
[AR2-ospf-1]area 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]netwo
[AR2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]netwo
[AR2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.3
[AR2-ospf-1-area-0.0.0.0]rip 1
[AR2-rip-1]version
[AR2-rip-1]version 2
[AR2-rip-1]netwo
[AR2-rip-1]network 2.0.0.0
[AR2-rip-1]netw
[AR2-rip-1]network 23.0.0.0
[AR2-rip-1]import
[AR2-rip-1]import-route ospf 1
[AR2-rip-1]
AR3:The device is running!
##########
sys
system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR3
[AR3]
Please check whether system data has been changed, and save data in time
Configuration console time out, please press any key to log on
sys
Enter system view, return user view with Ctrl+Z.
[AR3]int 0/0/0
^
Error: Wrong parameter found at ‘^’ position.
[AR3]ip add 23.0.0.2 30
^
Error: Unrecognized command found at ‘^’ position.
[AR3]ip add 23.0.0.2 30
^
Error: Unrecognized command found at ‘^’ position.
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 23.0.0.2 30
Jun 18 2020 17:16:53-08:00 AR3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR3-GigabitEthernet0/0/0]int loopback0
[AR3-LoopBack0]ip add 3.3.3.3 32
[AR3-LoopBack0]bgp 200
[AR3-bgp]router
[AR3-bgp]router-id 3.3.3.3
[AR3-bgp]peer 2.2.2.2 as-number 100
[AR3-bgp]peer 2.2.2.2 ebgp
[AR3-bgp]peer 2.2.2.2 ebgp-max-hop 2
[AR3-bgp]peer 2.2.2.2 conne
[AR3-bgp]peer 2.2.2.2 connect-interface loopback0
[AR3-bgp]rip 1
[AR3-rip-1]version 2
[AR3-rip-1]networ
[AR3-rip-1]network 3.0.0.0
[AR3-rip-1]networ
[AR3-rip-1]network 23.0.0.0
[AR3-rip-1]
AR4:The device is running!
############
SYS
Enter system view, return user view with Ctrl+Z.
[Huawei]SYS AR4
[AR4]
Please check whether system data has been changed, and save data in time
Configuration console time out, please press any key to log on
sys
Enter system view, return user view with Ctrl+Z.
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 15.0.0.2 30
Jun 18 2020 17:19:51-08:00 AR4 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 4.4.4.4 32
Error: The specified IP address is invalid.
[AR4-GigabitEthernet0/0/1]int loop
[AR4-GigabitEthernet0/0/1]int loopb
[AR4-GigabitEthernet0/0/1]int loopback0
[AR4-LoopBack0]ip add 4.4.4.4 32
[AR4-LoopBack0]int loop
[AR4-LoopBack0]int loop1
[AR4-LoopBack1]ip add 202.0.0.1 24
[AR4-LoopBack1]int loop2
[AR4-LoopBack2]ip add 202.0.1.1 24
[AR4-LoopBack2]bgp 100
[AR4-bgp]route
[AR4-bgp]route-select
[AR4-bgp]router-id 4.4.4.4
[AR4-bgp]peer 1.1.1.1 as
[AR4-bgp]peer 1.1.1.1 as-number 100
[AR4-bgp]peer 1.1.1.1 conn
[AR4-bgp]peer 1.1.1.1 connect-interface loop0
[AR4-bgp]peer 2.2.2.2 as
[AR4-bgp]peer 2.2.2.2 as-number 100
[AR4-bgp]peer 2.2.2.2 con
[AR4-bgp]peer 2.2.2.2 connect-interface loop0
[AR4-bgp]import
[AR4-bgp]import-route dir
[AR4-bgp]import-route direct
[AR4-bgp]ospf 1 rou
[AR4-bgp]ospf 1 router
[AR4-bgp]ospf 1 router-i
[AR4-bgp]ospf 1 router-id 4.4.4.4
[AR4-ospf-1]area 0.0.0.0
[AR4-ospf-1-area-0.0.0.0]netwo
[AR4-ospf-1-area-0.0.0.0]network 15.0.0.0 0.0.0.3
[AR4-ospf-1-area-0.0.0.0]netwo
[AR4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[AR4-ospf-1-area-0.0.0.0]net
[AR4-ospf-1-area-0.0.0.0]network 202.0.0.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]netwo
[AR4-ospf-1-area-0.0.0.0]network 202.0.1.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]
要点:配置完成要保存
- system-view
进入系统视图,默认我们打开命令行前面提示是尖括号<>,此为用户视图,当我们输入sys时就可以进入系统视图来对路由进行操作
interface + 接口名
ip address IP地址 子网掩码
undo + 原先配置时的命令
可以取消配置信息
rip
ctrl + z 快速退出到用户模式
quit 退出当前设置
save 保存配置信息
display ip routing-table 查看路由表
命令+ ? 查看帮助命令
查看L
display ip int brief 查看接口ip地址
display interface brief 查看接口的简要信息
display current-configuration 显示当前配置文件
display current-configuration 关键词(查看关键词的配置)
display saved-configuration 显示保存的配置文件
display ip routing-table 查看路由表
display ospf peer 查看ospf邻居关系
display ospf lsdb 查看链路关系数据库
display clock 查看系统当前时间
display this 查看当前模式下的配置,比如在接口上敲这条命令就可以看到当前接口下的信息
测试: