前言
本文作者:肉肉
本文链接:https://blog.csdn.net/Arouroua/article/details/106093877
更多源代码请参考我的
【GitHub】
边界网关协议( Border Gateway Protocol,BGP)是互联网上一个核心的去中心化自治路由协议
bgp本身就是一个多地址的协议簇(mp-bgp,多协议bgp)–地址族(ipv4)
bgp刷新很慢,需要手工刷新,加快收敛
AS,自治性系统域(16位的号码空间—>会扩展到32位)
bgp作用
bgp特点
tcp --179
运行bgp的理由
大量路由需要承载,能容纳上万条
支持mpls\的应用,传递客户路由
策略能力强,可以很好的实现路由策略与数据控制
bgp邻居概述
bgp speakers :运行bgp的路由器
bgp peers=bgp neighbor=bgp对等体\邻居
邻居关系建立在tcp连接基础上,因此邻居不一定需要直连,可以通过igp(keepalive,60s)或静态路由提供tcp连接的可靠性(区别于其他igp)
邻居必须手动指定,而非自动建立(区别于其他igp),所有的包都是单播
一台bgp路由器只能运行在一个as内(区别于其他igp)
邻居类型
ibgp
:内部bgp邻居,位于相同asebgp
:外部bgp邻居,位于不同asbgp报文
open
:类似hello,只发一次,建立邻居关系keeplive
:类似hello,维护邻居关系update
:路由更新,包含属性notification
:当检测到错误,发送后关闭bgp连接route-refresh
:当路由策略发生变化时,触发请求邻居重新通告路由bgp状态机
idle
:初始,路由器查找路由表,是否有到达邻居的路由connect
:发起tcp连接,等待tcp连接完成active
:tcp连接失败继续尝试tcp连接open sent
:tcp连接成功,已发送open包open confirm
:已收到对方正确的open包,如果没有收到就会进入activeestablished
:邻居建立完成,开始传递活跃状态验证
active
:路由器已经发送一个open包,正在等待响应
bgp邻居建立配置命令
bgp 123 //声明所在as号(创建进程)
router-id 1.1.1.1 //和ospf一样,必须唯一
peer 12.0.0.2 asnumber 123 //配置邻居的ip地址和所在as号
display bgp peer //查看邻居
bgp邻居优化
router id 3.3.3.3
bgp 100
peer 10.1.35.5 as-number 300
peer 2.2.2.2 as-number 100
Peer 2.2.2.2 connect-interface loopback 0
使用环回口建立bgp邻居:为了增强稳定性,通常建议使用环回口来建立邻居
更新源
:建立邻居和邻居所学习都的路由下一跳
多跳:ebgp
邻居建立默认需要直连,因为TTL=1,如果非直连必须修改TTL(经过一个路由TTL会减一)
peer x.x.x.x connect-intterface lo 1 //配置更新源
peer xxxxx ebgp-max-hop[2] //配置TTL
bgp身份验证
peer 2.2.2.2 password cipher xxx //配置身份验证,md5形式
network
bgp xxx
network xxxx xxxx
import
bgp xxx
import-route xxx route-policy import
bgp数据库:
邻居表:bgp邻居名单
bgp路由表(转发数据库):列出从邻居那里多获取的所有路由及属性
ip路由表:列出最佳路由
adj-rib-in:邻居宣告给本地的未处理的路由信息库
adj-rib-out:本地宣告给指定邻居的路由信息库
宣告原则
明确宣告
的网络才会发送给邻居最优
的路由发布给邻居通过IBGP获得的最优路由不会发布给其他的IBGP邻居
#
display bgp routing-table
#
路由信息处理
IP路由表(IP_RIB):全局路由信息库,包括所有的IP路由信息。
BGP路由表(Local_RIB):BGP路由信息库,包括本地BGP路由器选择的路由信息,邻居表,邻居清单列表
bgp防环:
as内(ibgp):水平分割
从ibgp收到的更新不会发布给备份(ibgp封信只传一跳)
ibgp邻居全互联 :配置开销太大
路由反射器(route-reflector)
联盟(confederation)
as间(ebgp):AS-PATH
pre
origin
i
表明BGP路由通过network命令注入;e
表明BGP路由是从EGP学来的,EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e;?
即Incomplete表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由。AS_Path
as路径属性
定义经过的s的序列,列出此路在传递过程中经过了那些as。可以防止环路,并用于路由的过滤和选择
AS_Path的4种类型:
Next_hop
bgp在给邻居传递路由是的下一跳=更新源
ebgp间传递是会修改下一跳为自己的更新源
在ibgp传递第不会改自己的下一跳
BGP路由器将本端始发路由发布给IBGP邻居时,会把该路由信息的Next_hop设为本端建立邻居关系所使用的接口IP。
BGP路由器在向EBGP邻居发布路由时,会把路由信息的Next_hop设置为本端与对端建立BGP邻居关系的接口IP。
BGP路由器在向IBGP邻居通告从EBGP学来的路由时,不改变该路由下一跳属性。
igbp间
#
peer xxxx next-hop-local //修改下一跳为自己的更新源
#
Local_Preference
MED
当耨个as有多个入口时,可以用med属性来帮助其外部的as选择一个较好的入口路径
越小越优先
MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由。
Community
Internet
:缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP邻居;No_Export
:收到此属性的路由后,不将该路由发布到其他AS。如图,RTB上希望10.1.11.0/24的路由发布给AS 12之后,不再发布给其他AS,则可将10.1.11.0/24的Community属性设置为No_Export;No_Advertise
:收到此属性的路由后,不将该路由通告给任何其他的BGP邻居。如图,RTB上希望只将10.1.11.0/24的路由发布给RTC,并且不再通告给任何其他的BGP邻居,则可将10.1.11.0/24的Community属性设置为No_Advertise;No_Export_Subconfed
:在联盟中使用,这里不做介绍。BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。一般来说,BGP计算路由优先
级的规则如下:
最高
的路由(私有属性,仅本地有效)。最高
的路由。短
的路由。小
的。最小
的路由。最短
的路由。最小
的路由。最小
的路由器发布的路由。较小
IP地址的邻居学来的路由。静态聚合
#
ip route-s xxxx xxxx null o
#
bgp xx
net xxxxx xxxx
#
自动聚合
主类
掩码的聚合#
bgp xx
summary automaticl //开自动,缺省关了
#
手动聚合
detail-supperssed
:抑制明细as-set
:保留as-path属性,可以防环#
bgp xxx
aggregate xxxx xxxx detail-suppressed
aggregate xxxx xxxx as-path
#
实验要求
1、所有设备配置基本的ip地址(略)
2、在AS12中配置igp
3、在AS间和AS内配置bgp,使得不同的AS间可以通信
r1
#
ospf 1 router-id 1.1.1.1
a 0
net 10.1.1.0 0.0.0.255
net 1.1.1.1 0.0.0.0
#
ip router-s 3.3.3.3 32 20.1.1.1
#
bgp 12
route-id 1.1.1.1
peer 2.2.2.2 as 12
peer 2.2.2.2 con loop 0
peer 3.3.3.3 as 3
peer 3.3.3.3 con loop 0
#
r2
#
ospf 1 route-id 2.2.2.2
a 0
net 10.1.1.0 0.0.0.255
net 30.1.1.0 0.0.0.255
net 2.2.2.2 0.0.0.0
#
bgp 12
route-id 2.2.2.2
peer 1.1.1.1 as 12
peer 1.1.1.1 con lo 0
peer 4.4.4.4 as 12
peer 4.4.4.4 con lo 0
#
r3
#
bgp 3
route-id 3.3.3.3
peer 1.1.1.1 as 12
peer 1.1.1.1 con lo 0
#
r4
#
ospf 1 route-id 4.4.4.4
a 0
net 30.1.1.0 0.0.0.255
net 4.4.4.4 0.0.0.0
#
bgp 12
route-id 4.4.4.4
peer 2.2.2.2 as 12
peer 2.2.2.2 con lo 0
#
本文均属肉肉原创,阅读过程中如有错误欢迎指出!
往期文章
最最最能测出你数通hcia基础扎不扎实的实验
stp始终学不会?这份思维导图,猛男必点,猛女必看!
华为交换机中hybrid、access、trunk的区别
数通HCIP-ospf知识点