当前位置:网站首页>HCIP 作业 BGP总结
HCIP 作业 BGP总结
2022-06-23 03:54:00 【空丶白灬】
第一天内容
一、BGP:边界网关路由协议
无类别路径矢量EGP协议;工作于AS之间;
AS—自治系统 标准AS编号 16位二进制 0-65535
扩展AS编号 32位二进制
路径矢量(一个AS为一跳)— 距离矢量(一个路由器为一跳)
https://www.cidr-report.org
BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;
AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;
IGP协议追求:1、无环(选路佳) 2、收敛快 3、占用资源少
EGP协议的追求1:可控性强(管理员可以方便进行策略干涉选路)
2、可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)— 基于TCP工作 -三次握手四次断开 4种可靠传输机制 – TCP只能基于单播工作
单播—需要IP可达—依赖IGP BGP承载于IGP之上
3、AS-BY-AS 以一个AS为一跳;
二、BGP特点:
1)无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
2)使用单播更新来发送所有信息;基于TCP 179端口工作
3)增量更新–仅触发无周期
4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
5)可以在进项和出项对流量实施强大的策略–可控性
6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7)BGP支持认证和聚合(汇总)
三、BGP数据包
基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;
首先通过TCP的三次握手来寻找到邻居;
Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update 携带路由条目 目标网络号+各种属性
Notification 出现错误数据时收发;
四、BGP的工作过程
1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;
会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;
邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表;— 装载本地发出及接收到的所有路由条目;
默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
3、收敛完成,仅keeplive周期保活即可;
4、若出现错误信息,邻居间将使用Notification报文进行报错操作
5、结构突变
1)新增 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
2)断开 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
3)无法沟通 — hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由;
五、名词
邻居—直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;
EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中
六、BGP的路由黑洞问题
非直连建邻到达控制层面路由条目可传递,递归计算路由可达;
而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回
1、物理、逻辑拓扑全连 – 物理链路直连、或者vpn
2、邻居关系全连 – 网络中所有设备运行BGP
3、BGP重发布到IGP(LAB)
4、MPLS 多协议标签交换— 推荐做法
七、BGP的防环机制 –水平分割
1、EBGP水平分割—解决EBGP环路;
依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;
BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;
2、IBGP水平分割—解决IBGP环路由中的一种机制
本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
AS-BY-AS在一个AS内部条目传递的过程中,默认不会修改任何的属性;
由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目,必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;
后期可以依赖打破水平分割的机制来解决—联邦、路由反射器
八、BGP基础配置
【1】建立BGP邻居关系
[r1]bgp 1 启动时需要定义AS号,没有多进程概念;一台设备只能在一个AS中工作
[r1-bgp]router-id 1.1.1.1 //建议配置RID;RID的生成规则同OSPF;
1、单链路的EBGP邻居关系
[r1-bgp]peer 12.1.1.2 as-number 2
对端接口ip地址 对端所在的AS号
2、建立IBGP邻居关系;–由于一个AS的内部大多拓扑冗余比较丰富,若使用物理接口来作为源、目IP地址建立BGP邻居,将浪费冗余资源;建议使用环回接口作为源/目ip地址;
稳定/且可以同时使用多条链路资源
切记:在使用环回地址作为源、目ip地址时;及要定义目标为对端的环回,还需要修改本端的源为环回,否则将自动使用本地的物理出口作为源;
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
3、多链路的EBGP邻居关系
建议使用环回作为源、目标接口
1)IP可达问题—一般使用静态
[r4]ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.0 24 54.1.1.2
2)建立EBGP邻居关系
[r4]bgp 2
[r4-bgp]peer 5.5.5.5 as-number 3
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
3)TTL问题,默认IBGP邻居间的数据包TTL值为255,EBGP邻居间TTL值为1;
因此若使用环回来建立EBGP邻居关系,TTL不够;故,必须修改
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
两端配置完成后,邻居间先进行TCP的三次握手,建立TCP的会话;
[r1]display tcp status
当TCP会话建立后,邻居间收发一次open包(携带RID),建立BGP的邻居关系;生成邻居表:
BGP local router ID : 1.1.1.1
Local AS number : 1
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.1.1.2 4 2 5 6 0 00:03:22 Established 0
表格尾部的数字0,代表从该邻居处学习到的路由条目数量;
九、宣告路由
BGP协议所宣告路由为本地路由表中任何来源产生的路由信息;
宣告时,可逐条选择本地路由表中的路由信息宣告:
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24
切记:宣告时,所宣告的网络号必须和本地路由表中的记录完全一致;
当宣告配置完成后,本地生成BGP表;-装载本地发出及接收到所有BGP路由
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
状态 目标网络号 属性
. * 可用
. >优秀
使用i标识该条目通过本地的IBGP邻居学习
一条条目可用且优秀才能传输给本地的其他邻居;才能加载到本地的路由表中;
条目优秀的条件:
1、同步问题—目前的设备同步规则默认关闭,该问题在当下已经不需要关注了
同步问题—本地必须先通告IGP学习到该路由,在通过BGP学习
2、下一跳不可达问题—因为AS-BY-AS规则 使得下一跳地址在一个AS内部传递时,默认不修改;故通过本地的IBGP邻居学习到的路由,大多下一跳不可达
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local
//R2将路由传输给3.3.3.3时,修改下一跳地址为R2;
第二天内容
一、BGP的宣告问题:
若通过BGP协议传递的路由条目与本地通过其他协议学习到的条目目标一致,将出现:
1、该路由同时作为与其他BGP邻居建立邻居关系时的底层路由,那么这条BGP路由将不优,不能传递也不能加表
2、该路由不作为建立其他BGP邻居的路由,将在本地不加表,但可以传递,属于优的路由;
例:R2与R3运行了OSPF,之后R2学习到的R3的32位环回主机路由;
再R2与R3建立BGP的邻居关系;之后R3在BGP协议中宣告了32位的环回路由,那么该条目到达R2后,将不优; --BGP的建邻路由与BGP的传递路由相同;
但R2与R3建立邻居关系时,ospf将R3环回以32位传递,但BGP使用24位来传递该环回路由的话,那么等于BGP建邻为32位,bgp传递为24位,不是同一条路由,可以优,可以传递,也可以加表;
注:以上问题在华为设备将出现,但cisco中若bgp传递路由在本地路由表中已经通过其他IGP拥有,将被标记为r-RIB 不装载—本地不加表,但可以传递;
在BGP协议中进行宣告时,是宣告本地路由表中任意路由,不关注这些条目的产生方式;
默认将携带这些路由的cost值到BGP的路由条目中去;若本地将本地宣告的BGP路由传递给本地的EBGP邻居,将携带这些cost,便于本地的EBGP邻居所在AS内部设备选路,当然这路由在进入其他AS时不会修改度量;
若本地通过IBGP邻居学习到了BGP路由,优且存在cost值,在本地将这些路由传递给本地的EBGP邻居时,将cost值归0,因为这些度量不是本地产生的;
例:R2与R1为EBGP邻居,那么R2宣告本地通过OSPF协议学习到的路由4.4.4.4/32度量为2,那么这条路由在进入BGP表时携带度量值2,传递给R1,R1在路由表中显示该度量,同时传递给R1内部AS时度量不变;
该拓扑中R2与R4为IBGP邻居,这条BGP路由也会被R2传递给R4,但R4 再将该路由传递给R4的EBGP邻居关系R5时,将度量归0; 若R4也宣告4.4.4.4/32这条路由,那么传递给R5时将携带R4到达该网段的cost值,因为只有本地最优路由可以传递,本地宣告优于其他邻居传递过来的BGP路由;
总结:存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议宣告内部AS的路由;
二、重发布
BGP协议宣告的路由,基本是本地通过IGP学习到的本as路由;数量较大,若逐条宣告,配置量很大,但可控性强; 也可以在同时运行BGP和igp的设备,将IGP协议重发布到BGP协议中,来实现批量的路由宣告效果;
宣告相当于逐条的重发布,重发布相当于批量的宣告;两者产生的路由条目,起源属性不同,其他属性默认完全一致;
总结:存在EBGP邻居关系(连接其他的AS)的所有BGP设备均建议重发布IGP到BGP;
三、自动汇总
默认cisco和华为设备均关闭了自动汇总
自动汇总对于BGP正常通过network宣告产生的路由没有影响;
仅针对从IGP重发布到BGP的路由条目产生影响;— 路由条目以主类长度发送,不携带cost值;
[r1]bgp 1
[r1-bgp]summary automatic //开启自动汇总,建议维持默认关闭状态
四、手工汇总—聚合
1)利用了BGP的宣告的特点,本地路由表中任意路由,不关注来源均可以宣告的BGP中;
不用逐一宣告明细路由,先本地手工静态一条指向汇总网段的空接口防环路由,然后再将其宣告到BGP协议中来;从IGP表中宣告到BGP协议中的条目,仅携带目标网络号和度量值;
聚合的缺点是将多个网络号合成一个,导致访问整个聚合网段时,仅存在唯一的路径;
若在多路径建邻的前提下,将无法精确的选路;故在大型的多链路的网络中为了更好控制选路,必然在传递聚合条目的同时,再在最佳路径处传递部分的明细路由;
若需要在传递聚合条目的同时,传递部分明细路由,只需要在宣告的空接口路由后,逐一宣告需要的明细路由即可;
以上做法的缺点是不能携带原有明细路由的cost值,因为宣告的是本地路由表中人为添加那条静态空接口路由;
2)标准的BGP路由聚合—先逐一手工宣告明细,或批量重发布路由;
再进行聚合配置;默认在本地生成空接口防环路由;
[r2-bgp]aggregate 3.3.0.0 21 //聚合和所有明细路由均发送
[r2-bgp]aggregate 3.3.0.0 21 detail-suppressed
//抑制所有的明细路由,仅发送聚合条目;
以上操作方法:若需要在发送聚合条目的同时携带部分的明细路由,需要使用策略
1、抑制列表
[r2]ip ip-prefix ss permit 3.3.4.1 32
[r2]route-policy ss permit node 10
[r2-route-policy]if-match ip-prefix ss
[r2]bgp 2
[r2-bgp]aggregate 3.3.0.0 21 suppress-policy ss
//在传递聚合条目的同时,在抑制3.3.4.1/32这一条明细,其他明细正常转发;
2、使用路由策略在邻居间直接进行收发路由的管理
[r2]ip ip-prefix qq permit 3.3.3.3 32
[r2]route-policy qq deny node 10
[r2-route-policy]if-match ip-prefix qq
[r2-route-policy]q
[r2]route-policy qq permit node 20
[r2]bgp 2
[r2-bgp]aggregate 3.3.0.0 21
[r2-bgp]peer 12.1.1.1 route-policy qq export
3、直接使用前缀列表来实现方法的功能
[r2]ip ip-prefix ww deny 3.3.3.3 32
[r2]ip ip-prefix ww permit 0.0.0.0 0 le 32
[r2]bgp 2
[r2-bgp]pe 12.1.1.1 ip-prefix ww export
五、有条件的打破IBGP水平分割;
IBGP水平分割,用于避免在一个AS内部由IBGP邻居间产生的环路;
规则:从一个iBGP邻居处学习到的BGP路由不能传递给下一个IBGP邻居;因为BGP的非直连建邻能力,因此可以在一个AS内部建立多个邻居来实现连接关系备份的作用;故正常一台设备只要运行bgp,那么应该处于AS的边界,存在ebgp邻居;
所有运行bgp协议的设备正常都会从其他AS学习到路由条目,然后共享到本地所在的AS,由于IBGP水平分割,导致本地需要和所有本AS内部的BGP设备建立IBGP邻居关系;
IBGP邻居关系的数量成指数上升;
所谓有条件的打破是指在打破IBGP水平分割的时候,不能产生环路;–AS-BY-AS
1、路由反射器 – RR(反射器)、客户端、非客户端;
客户端、非客户端必须分别为RR的IBGP邻居关系;三种角色构建为一个簇(组);
一个簇内可以存在多台设备,但至少一个簇内存在一个RR和一个客户端;
规则:
1)RR从一台EBGP邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;
2)RR从一台客户端邻居处学习到的路由可以共享给本地的其他客户端、非客户端、EBGP邻居;
3)RR从一台非客户端邻居处学习到的路由可以共享给本地的其他客户端、EBGP;不能共享给其他的非客户端;
注:被反射路由,在反射过程中,其属性不发生任何变化;若RR接收的条目不优,不具备传递性,将不被反射;
[r3-bgp]peer 2.2.2.2 reflect-client //ibgp邻居2.2.2.2成为本地的客户端,同时本地成为RR;
2、联邦
将一个大as逻辑为多个小as;小AS使用私有AS号,小AS间为联邦内的bepg邻居关系,可以像EBGP一样传递路由,但不能修改属性; 对于联邦外的AS,只能看到大AS号;
1)所有的启动,建邻、管理均基于小AS号进行
2)联邦内所有设备需要声明自己所在的大AS号
3)小AS间的ebgp邻居需要互指对端的小as号
[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 2 //声明本地的大AS号
[r3-bgp]confederation peer-as 64513 //对端小AS号
[r3-bgp]pe 2.2.2.2 as-number 64512
[r3-bgp]pe 2.2.2.2 connect-interface LoopBack 0
[r3-bgp]pe 4.4.4.4 as-number 64513
[r3-bgp]pe 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]pe 4.4.4.4 ebgp-max-hop 2
注:在实际工程中,路由器反射器与联邦技术是结合,在一个拓扑中共同使用的;
第三天内容
一、BGP的选路:
比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)
优选Preference_Value值最高的路由(私有属性,仅本地有效)。
不传递 权限最高属性 可以干涉EBGP/IBGP选路
优选本地优先级(Local_Preference)最高的路由。
IBGP邻居关系间传递 只能,最常干涉IBGP关系的选路
优选手动聚合>自动聚合>network>import>从对等体学到的。
优选AS_Path短的路由。
EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;
起源类型IGP>EGP>Incomplete。
起源属性 i优于e优于?; 可在控制层面任意接口修改;
对于来自同一AS的路由,优选MED值小的。
默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost
最常用于干涉EBGP选路的属性
优选从EBGP学来的路由(EBGP>IBGP)。
优选AS内部IGP的Metric度量(cost)最小的路由。本地到的BGP下一跳地址的IGP的cost值最小;
优选Cluster_List最短的路由。
优选Orginator_ID最小的路由。
优选Router_ID最小的路由器发布的路由。
优选具有较小IP地址的邻居学来的路由。
二、属性:华为和cisco均存在6种基本属性 第一种均为私有属性
1、华为设备的私有属性 Preference_Value
传播范围 默认值 大优或小优
不传播 0 大
全局操作:
[r3-bgp]pe 2.2.2.2 preferred-value 1 本地从邻居2.2.2.2处学习到的所有路由优先值修改为1;
负载分担:访问不同的目标网段时,让流量进入不同链路来进行通讯;将所有链路利用起来,而不是仅只用唯一链路通讯;
使用前缀抓取需要修改属性的网段
[r3]ip ip-prefix w permit 1.1.1.0 24 //定制策略来进行修改,一定关注是否需要空表来允许其他路由通过
[r3]route-policy w permit node 10
[r3-route-policy]if-match ip-prefix w
[r3-route-policy]apply preferred-value 1
[r3-route-policy]q
[r3]route-policy w permit node 20
[r3-route-policy]q //再在协议中针对某个邻居调用
[r3]bgp 2
[r3-bgp]peer 2.2.2.2 route-policy w import
//因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成;
2、本地优先级
传播范围 默认值 大或小优
IBGP邻居关系间 100 大
第一个公有属性
也是最常用于干涉IBGP选路,
最常使用的属性
全局修改;
[r4-bgp]default local-preference 101
本地所有传输到IBGP的路由条目,其中本地优先级修改为101;
使用本地优先级实现负载分担
[r2]ip ip-prefix p permit 1.1.1.0 24
[r2]route-policy p permit node 10
[r2-route-policy]if-match ip-prefix p
[r2-route-policy]apply local-preference 101
[r2-route-policy]q
[r2]route-policy p permit node 20
[r2-route-policy]q
[r2]bgp 2
[r2-bgp]pe 3.3.3.3 route-policy p export
//调用时在控制层面的出或入向均可,但必须为IBGP邻居关系;
3、as-path
·优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行;
[r4]ip ip-prefix as permit 1.1.1.0 24
[r4]route-policy as permit node 10
[r4-route-policy]if-match ip-prefix as
[r4-route-policy]apply as-path 3 4 5 additive
[r4-route-policy]q
[r4]route-policy as permit node 20
[r4-route-policy]q
[r4]bgp 2
[r4-bgp]pe 14.1.1.1 route-policy as import 注:可以在控制层面的入或出方向调用,但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路;
出向调用 x 3 4 5 x为实际经过的AS号;最前端号码为最新经过的AS号;
入向调用 3 4 5 x
切记:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;
4、起源属性
条目的产生方式
network 宣告本地路由表中的任意路由 i
import 将本地通过其他协议学习的路由重发布到BGP协议中 ?
egp 早期的ebg协议学习的路由重发布到BGP协议中 e
该属性的修改可以在整个控制层面流量经过的任意接口修改;
[r4]ip ip-prefix o permit 1.1.1.0 24
[r4]route-policy o permit node 10
[r4-route-policy]if-match ip-prefix o
[r4-route-policy]apply origin egp 2 //此处配置的AS为对端邻居的AS号
[r4]route-policy o permit node 20
[r4-route-policy]q
[r4]bgp 2
[r4-bgp]pe 3.3.3.3 route-policy o export
5、MED 多出口的鉴别属性
BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)
BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;
管理员可以在控制层面传递路由的过程中,手工修改MDE;
最常用于干涉ebgp选路;
常常用于AS1干涉AS2对AS1的选路;
[r1]ip ip-prefix med permit 1.1.1.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 10
[r1-route-policy]q
r1]route-policy med permit node 20
[r1-route-policy]q
[r1]bgp 1
[r1-bgp]pe 14.1.1.2 route-policy med export
/*由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判 断选路结果,可以通过扩展ping来解决*/
[r1]ping -r -a 1.1.1.1 3.3.3.3
三、BGP的社团属性 –BGP的扩展属性
默认大多数厂商的产品在BGP协议中不携带社团属性
例:控制传播范围的社团属性
[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise //针对所有的流量修改属性
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy com export
//默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性
[r1-bgp]peer 12.1.1.2 advertise-community
//逐跳行为,每台设备均需开启传递性
no-advertise 接收到的条目中若存在该社团属性,将不再传递该路由
no-export 接收到的条目若存在该社团属性,将不传递给下一个AS
no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致
边栏推荐
- 经济发展由新技术推动着来
- 传统意义上的互联网式的平台或将不复存在,一个融合的产业特质和互联网特质的全新产业
- 超越芯片和AI,硬科技资本为什么越来越“硬核”?
- teqc进行GNSS数据质量分析时生成的s文件介绍
- How to solve multi-channel customer communication problems in independent stations? This cross-border e-commerce plug-in must be known!
- rtklib2.4.3 b34 单点定位的一个bug
- 云原生数据库如荼如火,未来可期
- UI自动化定位利器-xpath实战
- Arduino火焰传感器(含代码)
- Getting started with the shutter AppBar
猜你喜欢

centos7部署docker,安装mysql

《微信小程序-基础篇》带你了解小程序的路由系统(二)

强推,软件测试快速入门,一看就会

② Cocoapods principle and podspec file uploading operation

Apache atlas quick start

dolphinscheduler 2.0.5 spark 任务测试总结(源码优化)

【OFDM通信】基于matlab OFDM多用户资源分配仿真【含Matlab源码 1902期】

Do280openshift command and troubleshooting -- common troubleshooting and chapter experiments

云原生数据库如荼如火,未来可期

How to make social media the driving force of cross-border e-commerce? This independent station tool cannot be missed!
随机推荐
Thinkphp6 solving jump problems
直接插入排序——【常见排序法(1/8)】
Arduino温湿度传感器DHT11(含代码)
【图像融合】基于非凸罚分的稀疏正则化实现图像融合附matlab代码
如何更好地组织最小 WEB API 代码结构
Talk about the composite pattern in C #
Install and run mongodb under win10
dolphinscheduler 2.0.5 任务测试(spark task)报错:Container exited with a non-zero exit code 1
insert into... where not exists插入避免重复的使用
Small problems in the spoole framework for TCP communication in PHP
Getting started with the shutter AppBar
395. redundant path
Learn to draw Er graph in an article
Experience of Tencent cloud installed by Kali
Usage of API interface test ------ post
物体结构图,快速图解物体内部结构
Actual combat | multiple intranet penetration through Viper
Cookie-Session讲解
Laravel 8.4 routing problem. At the end is the cross reference table on the left side of the editor, which can be understood by Xiaobai
MVVM has become history, and Google has fully turned to MVI