XICE-HUAWEI-超级完整的BGP-2
上一章的总结
BGP-大型路由协议,即可内网也可以外网,TCP-179-OSI第七层应用层
区分邻居
IBGP=内部=ttl=255=优先级255=同一个AS号
EBGP=外部=ttl=1=优先级255=不同的AS号
(均为默认值)
互相进入
1.始发的路由直连都会自动修改下一跳
2.IBGP设备收到{
IBGP}邻居发来的路由进入EBGP的时候,会自动修改下一跳
3.IBGP设备收到{
IBGP}邻居发来的路由不会发给任何一个IBGP邻居(IBGP防环原则)
4.顺带提一下,EBGP的防环原则是AS-PATH,简单的说就是路由器水平分割一样的,具体后面讲
5.当IBGP设备学到{
EBGP}的路由再发给IBGP的邻居的时候,不会修改下一跳
解决办法:指定本机为IBGP邻居的下一跳,用于边界(PE,CE)
6.EBGP进入EBGP,是最正常的,会自动修改下一跳
https://blog.csdn.net/weixin_48137911/article/details/128134083?spm=1001.2014.3001.5501 //上一章
BGP和BGP4+的区别
版本不同:BGP是第四版的IP协议(IPv4)的边界网关协议,而BGP4+是对BGP协议的改进和扩展,增加了一些新的特性。
路由信息处理能力不同:BGP4+相比BGP,能够处理更大规模的路由信息,支持更多的路由对象类型和路由属性,能够更好地应对互联网发展带来的挑战。
链路容错能力不同:BGP4+在链路容错方面比BGP更加健壮,支持快速检测和恢复故障链路,提高了网络的可靠性和稳定性。
配置和管理的复杂度不同:由于BGP4+增加了许多新特性,因此其配置和管理的复杂度相对较高,需要更高的技术水平和更多的配置工作。
总的来说,BGP4+是BGP协议的升级版,相对于BGP来说,BGP4+具有更强的路由信息处理能力和链路容错能力,但也带来了更高的配置和管理复杂度。
最主要的就是bgp不支持ipv6 bgp4+支持
BGP特点
这个,基于TCP179号,说详细点
他是基于TCP目的端口179
无论什么协议,都是双向的
那么,源则是TCP的高位随机端口,目的是TCP-179端口
在旧版本的HCIE-RS中面试会问
BGP更新机制
1.触发更新(增量更新)
意思是,只更新变化的内容,增加/删减
BGP在公网上大概是80-100(W)条路由
为平均水平
记住BGP没有周期更新
要是有
你就砍死他
这要是周期更新
公网上的设备啥也不用干,每天就更新路由就完事了
2.手动更新(因为收敛速度慢)
手动在用户视图下
refresh bgp all
BGP的路由产生(四种)
BGP的路由是不会自己产生的,他是传递的
产生方式有两种
第一种是network(BGP只能宣告路由表的路由,所以为什么说BGP是基于3层以上的)
可以看见,如果没有的路由是无法宣告的
32可以宣告仅仅因为他是主机路由
第二种-引入-重分布
思科叫重分布- Redistribution
华为叫引入-import
第三种,聚合产生的路由条目(默认关闭 )这个是自动聚合
只能聚合路由引入(import) 的路由(跟汇总差不多)
BGP进程下
summary automatic //聚合路由
汇总後在BGP表里面会把明细路由的*变成s,suppressed,意思是抑制。
s=supperssed=抑制的意思
看操作
明细路由被抑制
只剩下一条汇总的主类路由
汇总的路由不会被传递
The device is running!
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1
[R1]undo inf en
Info: Information center is disabled.
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 1.1.1.1 24
[R1-GigabitEthernet0/0/0]q
[R1]bgp 1
[R1-bgp]peer 1.1.1.2 as-num 1
[R1-bgp]net 1.1.1.1 24
[R1-bgp]im
[R1-bgp]import-route st
[R1-bgp]import-route static
[R1-bgp]q
[R1]ip rou
[R1]ip route-
[R1]ip route-static 172.16.1.0 24 n
[R1]ip route-static 172.16.1.0 24 NULL 0
[R1]ip route-static 172.16.2.0 24 NULL 0
[R1]
The device is running!
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R2
[R2]undo inf en
Info: Information center is disabled.
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip add 1.1.1.2 24
[R2-GigabitEthernet0/0/0]q
[R2]bgp 1
[R2-bgp]peer 1.1.1.1 as-num 1
[R2-bgp]net 1.1.1.2 24
[R2-bgp]dis bgp pe
[R2-bgp]dis bgp peer
BGP local router ID : 1.1.1.2
Local AS number : 1
Total number of peers : 1 Peers in established state : 0
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
1.1.1.1 4 1 0 0 0 00:00:12 Idle
0
[R2-bgp]dis bgp peer
BGP local router ID : 1.1.1.2
Local AS number : 1
Total number of peers : 1 Peers in established state : 0
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
1.1.1.1 4 1 0 0 0 00:00:30 Idle
0
[R2-bgp]dis bgp peer
BGP local router ID : 1.1.1.2
Local AS number : 1
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
1.1.1.1 4 1 4 3 0 00:00:00 Established
3
[R2-bgp]dis bgp rou
[R2-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
i 1.1.1.1 0 100 0 i
*>i 172.16.1.0/24 1.1.1.1 0 100 0 ?
*>i 172.16.2.0/24 1.1.1.1 0 100 0 ?
[R2-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
i 1.1.1.1 0 100 0 i
*>i 172.16.0.0 1.1.1.1 100 0 ?
第四种,手动聚合
aggregate x.x.x.x mask
可以看到,自动聚合和手动聚合的区别
在BGP表里面,并不一样,而是成了>*,可以进入路由表
在接收方这个地方,也不一样
IBGP防环原则
IBGP:从IBGP收到的路由不会传递给IBGP邻居(一个AS的才是IBGP邻居),这个叫IBGP的水平分割
简单的说:同一个AS的路由不会传递给同一个AS
EBGP防环原则(AS-PATH)
AS-PATH是什么呢,就是一个AS的标记
比如,我是AS-1,那么,我的路由条目对外发的时候,就会加上一个我的AS
每经过一个设备就会加上一个AS号(以后会讲BGP版本的NAT,叫做联邦)
有啥用呢?
EBGP不会接收含有自己AS号的路由,也叫EBGP防环原则
synchronization(BGP同步)
思科与华为都是默认关闭的
no synchronization
undo synchronization
先说他是干嘛的
这个是早期BGP用来防路由黑洞的
思科可以手动打开
华为不可以手动打开哈
如果在IGP路由表中不存在,则认为不同步,将不会传递给EBGP邻居
华为BGP解决路由黑洞办法
一 全互联模式(fullmesh)
什么意思呢,就是全部相邻的设备都启BGP,但是其实没意义,因为BGP最大的意义在EBGP,可以跨设备
全互联就是TTL=1,全部都有路由了
二 边界(CE.PE)路由器上,将BGP引入IGP-已经淘汰
三 边界(CE,PE)路由器上,做GRE隧道,相当于做了个虚拟直连的意思
四 通过LSP隧道(MPLS)解决路由黑洞问题
MPLS的隧道和GRE的隧道不一样,标签转发,直接看标签就给他转发了
以上就差不多是BGP的基础了哈!
看清楚,基础
BGP的邻居建立过程和报文分析
省流版:看见Established(相当于OSPF的FULL) 才是正常的其他都是不正常的
BGP状态描述的是BGP邻居的建立过程,BGP状态共有六种,分别是Idle(空闲)、Connect(连接)、Active(活动)、OpenSent(打开发送)、OpenConfirm(打开确认)和Established(建立成功)。
环境为两个设备直连,启动EBGP邻居
首先会idle状态,默认初始状态,经过32秒以后会到connect状态,这个是连接的意思
与此同时抓包可以发现,已经有12.1.1.1-12.1.1.2的TCP的三次握手请求了
因为另外一边还没配置
所以会有TCP的重传
如果TCP连接成功,会进入opensen状态
如果TCP连接失败,会进入Active状态