Linuxword Global
当前位置: 闲言闲语 > CCIE Service Provider

Seamless mpls(无缝的),是mpls 的高级特性。在同一个as内用到多个igp协议或进程做到互通,就把一个as划分为多个igp域,这多个域之间没有重分发,在这种场景中想要实现3层vpn,就需要用到seamless

 2924805-20230116215503097-1463685414-1

bgp主要用在两个as互联上,as no已经由2B(1-65535)升级为4B

 2924805-20230116215518959-196597392

 

 2924805-20230116215539871-365933032

as-path:所以bgp称为路径矢量

cisco里有私有的属性:ebgp路由的老化时间(so到这里cisco是13条路由属性,而华为是12条)//bgp路由还有老化?check?

后续还有aigp属性

 

 2924805-20230116215901302-489919386

 2924805-20230116215948735-1967595362

 2924805-20230116215959879-448510394

bgp的路由在bgp的路由表中不存在老化时间,这点和igp不同

 

 2924805-20230116220015246-1762956487

 

 2924805-20230116220028183-1651542932

Keep alive是tcp的报文,并不是bgp的原生报文。建立bgp peer只需要open和keep alive

update:用于通告+撤销路由

notification主要是针对open和update报文的校验。判断这俩报文有问题,则发送notification报文,接收方会断开邻居并重新建立。后续通过reset的方式重置bgp nei也会发送notification报文

Route-refresh:用来请求要刷新的路由条目。需要双方支持route-refresh功能。orf出方向路由过滤也会用到route-refresh

 

 2924805-20230116220047205-1616245802

 2924805-20230116220059504-2002162474

keepalive每隔60s发送一次,Timeout 180s(如果双方的timeout不一致,则双方协商使用最小值)

 

open报文

 2924805-20230116220130496-561974048

4B as no是在可选参数里进行通告的,而不是在open报文中的 as no字段中-格式已经固定好了。

bgp的router-id先选择逻辑口大的,没有逻辑口则选用物理口大的

2924805-20230116220142937-1502490481

 

 2924805-20230116220208682-1844355070

 

 2924805-20230116220507296-1284132120

 2924805-20230116220513440-927692142

keepalive报文是tcp的-为了保证tcp会话的保活

update

 2924805-20230116220522551-573715556

路由的属性是通过path attribute携带

撤销的路由是不会携带路径属性的

nlri会传递私网标签,rd值。不同的协议会有不同的nlri

bgp路由必须要携带的路由属性:as path,next hop, origin(i,e,?),缺一即非法路由

 2924805-20230116220531022-1662445159

 2924805-20230116220556256-1366544499

 在bgp中如果多跳路由条目的属性相同,则这些路由条目可以合并发送-在一个报文中通告多条路由//那再bgp初始通告路由时,不得通告好多update报文?check

 2924805-20230116220605687-700744055

 2924805-20230116220613226-506356208

reset进程也可以触发发送no报文

 

 2924805-20230116220627408-743774970

 2924805-20230116220642008-1226125778

针对前缀做了策略之后,需要请求对应的前缀信息,让对方重新通告,策略才能生效-本质原因是bgp是触发更新的,而不是周期性更新。

afi 有两大类ipv4和ipv6,二层vpn也是afi

 

 2924805-20230116220648833-855184521

 

ldp会话,是ip地址大的发起;msdp会话是看ip地址小的。bgp会话默认情况下bgp peer同时是发起者(connect)和监听者(listener)

 2924805-20230116220656598-1327615172

在connect状态下发起tcp会话的建立/在发送open报文前,需要先建立tcp的会话 。会话建立后进入open-sent状态,发送open报文-携带自己支持的功能,as no,r-id等。对方接收并确认了open报文,状态会进行pen-confirm,并回复keepalive。对端接收到keepalive报文,就说明对方已经接收并确认了你发送的open报文,本地状态也会有open-sent变为open-confirm。在open-sent状态接收到keepalive报文能直接跳到established状态。

open和keepalive报文就能完成bgp peer的建立

 2924805-20230116220712752-126427283

 2924805-20230116220718235-2003092252

 2924805-20230116220722321-988846148

 2924805-20230116220726904-1476850363

该重传计时器会同时维护connect和active两个状态。每次connect-retry超时就会退到connect状态

Connect-retry 默认为32s。

connect状态下发起一次tcp会话的建立,connect将定时器刷新为32s,然后进入active状态。在active状态下不断发起tcp连接。定时器超时后,active状态将定时器重置为32s,重新进入connect状态。

connect和active状态都会进入到idle状态,cisco中存在idle定时器,会成系数增长。第一次等待60s去尝试建立tcp会话,第二次就是60*2

connect和active是用于tcp会话的建立,在会话建立成功后,进入open-sent状态才会发送open报文

 2924805-20230116220741350-1134056681

2924805-20230116220747608-1669224239

 

idle状态-tcp会话没有建立:

 2924805-20230116220756159-885783601

 

 2924805-20230116220803889-1813615417

2.ebgp建立peer发起的ip 的ttl为1。ebgp使用非直连建立peer,可以如上2种配置。关闭直连检查后(只适用于直连设备间使用loop接口建立ebgp peer 的场景),在建立ebgp peer时就不会检查目标ip地址是否为直连网段地址,Ttl-1后虽然为0,但目标ip正好是本地的ip,可以正常处理。只有需要被继续转发的ip报文才会被丢弃掉。

3.tcp会话的特点:一次建联,双向转发。tcp的会话的发起者。双方均配置为listen模式,没有主动发起端。这条的状态应该是处于active或者connect状态。

 2924805-20230116220815358-1246178005

4.idle状态存在等待定时器,在定时器内时不会重新建立连接的。idle等待间隔的时间,存在idle惩罚期,第一次60s,第二次120s。有时间自动建立peer慢,就clear下手动触发。

5.

 2924805-20230116220821821-302316449

双方通过默认路由到达bgp peer,虽然两端可以ping通,但不能建立tcp的会话,因到达peer不存在明细路由而是通过默认路由到达的。cisco中不能建立邻居关系,在华为中能建立bgp邻居关系,但通告的路由不是最有路由。华为的check一下。这样做的目的是防止流量环路-因为默认路由容易出现环路

 

发起了tcp会话的建立,但失败了:

 2924805-20230116220828222-466424084

bgp的认证使用tcp的md5选项进行认证的

As no在open报文里。如果本端通告的as no和邻居通告的as no不一致,会通告notification报文//报错,断开tcp会话重新建联,是可以在瞬时看到open-sent状态的。只不过对方马上回复notification报文,本端需要马上断开tcp会话重新建立,但大部分看到邻居状态是connect和active,这种情况就可能以为tcp会话没有建立,但实际是open报文导致的,此时可以开debug查看

r-id冲突,open报文会通告本端 的r-id,无法建立bgp的 nei,但会导致tcp会话的重新建立。

ip源检查,tcp的syn报文的发送源和我指定的bgp peer地址不一致

 

 2924805-20230116220836551-543886710

 

bgp的数据库

 2924805-20230116220845921-1438810223

Adj-in/out是临时表项,无法查看的

从这看改入方向路由策略,不能直接生效-需要对端重新给我传一次路由,需要重启bgp peer 。解决方案:route-refresh报文,让peer重新通告路由-重新过一次策略引擎

出方向路由策略,本端会重新通告一次路由条目,可以立即生效。

路由软刷新就是基于route-refresh报文的

 

 2924805-20230116220852708-1222202468

A发送route-refresh报文,而B需要支持route-refresh功能

 

 2924805-20230116220859722-761584984

 

 2924805-20230116220906280-1447528127

 

 2924805-20230116220911024-1182451872

 

 2924805-20230116220916440-1828794573

network是把路由宣告进bgp(要和rib中一样),ospf是把符合network网段的接口宣告进ospf。

华为是聚合优于net、重分发。

 nlri下面的子属性,addtional path属性-类似用三层vpn的rd:让设备可以同时通告来自于不同peer通告的相同的前缀。默认bgp在通告路由时只能将最优的路由通告给peer 。而addtional path属性可以通告多条路由-在通告的路由前缀的前面追加add path属性。则peer在接收到前缀后会将add path+前缀结合进行判断(类似于l3vpn传递的vpn路由 rd+前缀,来自不同设备的私网路由在经过rr时能够全部被反射而不会优选)。该属性用于bgp的frr。一条前缀的主路径down,仍存在备份路径,能够实现流量的快速切换,切换延时小于50ms。

 

 2924805-20230116220931346-884334174

 

IBGP通过水平分割的方式防止路由环路的问题:从一个ibgp peer学到的路由条目,不会在传递给其他的ibgp peer。而ebgp是通过as path防环。

 

如果下一跳不可达,则该路由是无效路由(在cisco里是非优路由,check bgp非优路由场景)。开启igp同步,可能导致无效路由;下一跳不存在lsp也是无效路由

 2924805-20230116220938442-1448090071

 2924805-20230116220943348-1188789885

 

RTB在通告ebgp路由给ebgp peer会自动更改nh为rtb,而通告给ibgp peer则默认不更改nh

以上行为是为了避免次优路径的问题,见下图:C可以通过igp直接到达B,那由A更改下一跳为自己后,就出现次优路径了。(但是本质来说,igp的优先级要大于bgp,不会出问题,check ebgp为20,ibgp为200)

 2924805-20230116220951371-931094659

 

以下情况可以配置:不更改下一跳;ebgp的机制:第三方下一跳:我收到的路由条目的下一跳地址,和我peer的地址是否在同一个网段,如果在则默认不更改nh,否则更改。

 2924805-20230116220957946-1366181346

 

ibgp的水平分割

 2924805-20230116221002755-242527474

 

解决水平分割无法接收ibgp路由的问题:1全互联;2.rr;3.联盟

rr为了防环,增加了cluster-list和originator id属性

 2924805-20230116221007897-1232536098

as内可以划分多个联盟,联盟间建立ebgp peer,通告路由时不会更改nh(因为联盟是在通一个igp内,路由可达,更改下一跳可能出现次优路径的场景),会追加联盟的as no-但选路时当长度为0处理

 2924805-20230116221014376-543211187

正常情况下,2不会把从1学到的ibgp(起源ebgp)路由传递给3

 

解决方案:在AS100内创建两个联盟。当前网络中联盟用的少,基本用到的都是rr来破ibgp的水平分割。

 

 2924805-20230116221020499-652192196

有路由只代表控制层面没问题,转发层面要另看。

igp的同步: 通过igp的同步,影响控制层面的路由通告,来间接影响转发层面的问题(因为只是通过间接的方式避免该问题,没啥实际意义,现在已经取消该配置了)。如在E开启igp和bgp的同步,会查看我接收的bgp路由在igp路由中是否也存在,存在才能在本地标识为有效进行优选;如果不存在,就是无效路由,就不能参与选路,也就不能通告给peer。

解决方案:1.将bgp引入到igp,但isis不开扩展的话最多就只能通告3万条路由

2.ibgp全互联

真正解决上图问题的方案:mpls。流量在E上封装到达B的标签,流量到 e就ok了

 

-----------------------------------------------------

 

2023-01-17 22:02

视频2

 2924805-20230118143110599-851820999

 路由阻尼是为了防止路由震荡的机制

 2924805-20230118143116890-2134699485

 路由被惩罚后可以重新启用的条件:

1.计算后的惩罚值小于重用门限,路由就可以被使用

2.经过4次半衰期,惩罚值都没有小于750,而该路由条目最大的抑制时间就是60m,超过60m后就可以被正常使用

 

 2924805-20230118143126219-1853017875

路由首次震荡,赋予1000的惩罚值,第二次震荡+1000,达到抑制门限(不能再加了),该路由不可使用。经历第一个半衰期,惩罚值减半降低为1000,但仍超过重用门限,不能使用…

路由前有d,代表damping。这个仅是bgp针对不可靠路由的处理方式(eigrp也有)

 2924805-20230118143133193-1483780196

路由条目之前被惩罚过,前缀前会有h。d是指该路由条目处在惩罚阶段

 

3种方式通告默认路由

 2924805-20230118143141879-1064187297

 2924805-20230118143146169-1875976167

方案3,重分发默认路由,需要加参数

 

 2924805-20230118143153544-2053924112

 2924805-20230118143159881-1489799855

1.network :起源于igp(要精确宣告前缀和掩码长度,保持和路由表中完全一致。相比igp中也可以通过network的方式宣告if,可以把在这个范围内的所有接口都宣告进igp;而bgp中network的是宣告的路由);import :路由引入。

可以将引入的外部路由进行自动聚合为主类路由,而network的路由不能自动聚合

前三条为公认毕遵

as-path在ibgp之间传递也携带,只不过as no为空

ebgp之间传递路由默认不携带local-preference值,但接收方会默认为100

6.就是打一个标记,标识这条路由是聚合路由,提示路由属性会有丢失

7.标识该路由是由哪台设备聚合的 r-id,聚合路由来自哪个as no

8.community类似于igp的tag。存在公认的团体属性,其作用就类似于公认的路由属性

9/10可以避免反射路由环路的问题

13 l3vpn rt值;igp的参数;bgp的soo属性。evpn也会用到扩展团体属性

14    在同一个igp的区域里,配置了多个bgp的as,在as间建立bgp的peer,在传递路由时为避免次优路径可以使用aigp属性

 2924805-20230118143210695-1800505015

4在选择1.1.1.1/32的路由时,会优选3的

cisco里bgp选路原则,

1比较weight值,默认都是32768,且weight只是本地有意义,比如4针对peer 2或3设置的。//华为里是prefer value

2比较loacl pre 默认为100。在ebgp之间不传递local pre属性,ebgp路由里看不到这个值,但是ebgp peer会默认该值为100

3.比较本地起源路由

4.as path

5。起源属性,1上network通告的。network和聚合的路由路由起源属性都是i

6.1在network 该路由时指定的med值

7 ebgp优于ibgp

8 到达bgp下一跳igp cost值小的

14 aigp:在上图2和3上开启aigp属性后,2和3在通告bgp路由给4时会通告到达目标前缀的igp cost值,4接收到会进行累计计算-可以计算到达1完整的cost值,从而避免次优路径。本质就是在通告路由时,增加peer到达目标前缀的igp cost值。aigp优先级排序在as path之前。

注aigp:

2924805-20230118145151897-1615392407

 

15 pmsi 提供组播服务接口(用于转发组播流量)。数据帧的概念:bum帧(广播帧、未知单播帧、组播帧),uc帧(单播帧)。

组播vpn,二层vpn、evpn。

在二层vpn和evpn中是把帧打标签转发。针对bum帧如何转发?在sw的转发原理中针对bum帧的转发方式是泛洪。而在二层vpn或evpn里,pe设备间建立2层vpn和evpn的 peer,如何在peer间通告使用何种方式转发bum帧-通过pmsi属性传递。

 现在在二层vpn或evpn里是通过ir(本地复制)的方式转发bum帧,在下一代组播vpn里中通过mldp(Multipoint extensions for LDP 多点ldp)的方式转发组播帧,还有mte。而基于什么样的方式转发组播帧需要在pmsi的属性中通告给对方。本质就是告诉peer用什么样的方式转发bum帧。

2924805-20230118143225521-1445633415

 

 2924805-20230118143229397-808687696

 2924805-20230118143233694-1501665045

 

 2924805-20230118143237164-312560419

 

as path属性。当bgp路由被传出本as,会追加as no 。bgp中的as path,起到了类似rip的跳数作用

 2924805-20230118143246130-797597104

As no 在ebgp中起到防环作用

Cisco和华为从ibgp peer学到包含本端as no的路由条目,可正常接收;但juniper不行

 2924805-20230118143253318-768612507

  通告追加as no影响选路

 2924805-20230118143300562-319120474

As seq:有序as,就是路由经过是有顺序的。但是当路由汇总时不会携带明细路由的as path属性,就可能出现环路,解决方案:在汇总路由后面设置as set参数,就可以在汇总路由里追加明细路由的as no ,会使用()代表是无序的,()中的as no在进行as path计算是累计为1

 

 2924805-20230118143308724-1837465228

nh属性中特殊的场景:ebgp第三方下一跳。设备A、C、D在同一个广播域,a-c ebgp ,c-d ebgp peer,a把路由通告给c,c会修改nh 为self再通告给d。此时d访问a就出现了次优路径。

解决次优的方式会由ebgp自动去实现:第三方下一跳。通告路由的设备C在将路由通告给D时,会判断路由的nh是否和D在同一个网段,在同一个网段,则C在向d通告路由时不更改nh。

 

xr新增团体属性

 2924805-20230118143314801-219005459

 

 2924805-20230118143324039-853653277

 2924805-20230118143328959-1281325338

 

 2924805-20230118143332402-2087892006

bgp进程重启,rp板主备倒换,保证转发层面没有问题

 

---------------------------------------------------

 

2023-01-18 15:03

Bgp 视频3

 2924805-20230118171404742-259399032

在xr之间配置ebgp peer时,需要配置如上策略:pass。如果不配置则邻居关系正常建立但不能通告和接收路由。asr设备(用的ios)需要确认

 

 2924805-20230118171456517-2039498632

 2924805-20230118171516922-2065232667

 2924805-20230118171524402-171566709

在cisco中通过network方式在bgp中宣告一条igp的路由,生成bgp路由的nh会引用igp的nh-这样可以避免次优路径,本身就是igp可达//3通过ospf和bgp学到1.1.1.1/32,通过改ad值,让其优选bgp,则就出现次优路径了。

本地宣告直连和重分发的以及聚合路由,nh会设置为0.0.0.0,告知peer把包交给我才能到达目的地。但华为不是上述原则

r是指该bgp路由被抑制了,rib优选了其他路由协议的路由

 

 2924805-20230118171535349-1091071019

 

 

------------------------------

 

2023-01-18 21:11

第18个video

 2924805-20230120101112880-1273566263

橙线为建立的bgp peer关系。在PE2通告路由1.1.1.1/32,rr会收到abr1和abr2通告的这条路由。Abr1/2也是rr-因为在同一个大as内。因为metro侧rr只会将最优路由通告给peer,所以经过两级反射后pe1只能接收到1条到达1.1.1.1/32的路由。由于rr是旁挂的方式进行部署,只反射了abr1通告的路由(更优)。当abr1-pe1之间链路中断,流量会从abr2绕行abr1再去1.1.1.1-因为pe1只能收到rr反射的abr1通告的路由

frr在isp网络中很重要,isp需要保证我到达目标前缀,如果主链路down,需要实现50ms快速收敛。需要提前对目标前缀计算出备份路径,并将其写入到fib中,一旦主路径down可以马上把流量切换到备份路径。

Bgp frr的前提,针对同一个前缀存在多个nh。为了让pe1能同时收到abr1和2通告的bgp路由,从而实现frr,引出additional path属性。该属性类似于l3vpn中的rd属性,通告rd+prefix实现前缀的复用。但rd只能用于私网路由,而additional path可以用于任何路由。so可以在abr1和2上通告bgp路由时携带add path,则rr会认为这是两条不同的前缀,分开选路,然后全部反射给pe1。Pe1收到两条可以到达1.1.1.1/32的bgp路由,so可在pe1上配置bgp的 frr

 2924805-20230120101123419-1619934029

在nlri中新增一个add path id 的值

 

 2924805-20230120101130064-2032650595

 

 2924805-20230120101136524-1792969824

首先peer间会在open报文里会进行能力协商,add path会区分发送或接收者

 

 2924805-20230120101142342-1266942019

 

 2924805-20230120101155840-657863906

 

 2924805-20230120101202445-1168196121

Path id不需要配置,启用功能后会自动生成

 

 2924805-20230120101208768-1420888809

让xr1开启add path(可以配置为send),为每个前缀打上不同的path id,并将3条路由都通告给xr2(可以配置为receive)

 2924805-20230120101216459-694642111

Set 注意一下

 2924805-20230120101222904-1719412973

如果不配置additional path xx就不能识别打path id 的前缀,会忽略path id,识别为普通前缀。

Xr2上也需要开启add path功能(receive即可)

Add path功能会在open报文中协商,如果对方不支持add path功能(即,在建立邻居之前,需要进行能力协商),则xr1在通告路由时不会通告path id的值。 check:如果对方不支持add path功能,那为何通告的路由还会携带add path属性?

 

Xr1上show,能看到从三台R转发的bgp路由

 2924805-20230120101230228-1447154803

 

 2924805-20230120101237714-1361219541

这样配置之后在本地形成ecmp,结果如下图

 2924805-20230120101244958-637977643

 

 2924805-20230120101327483-1151667866

默认只会将最优的路由加入到路由表里,该命令可以将次优路由也加入到路由表里

 2924805-20230120101332531-1506079995

 

 2924805-20230120101340100-938401832

 

 lab拓扑:

在metro侧,使用lo0来建立peer关系,在core侧使用loo1来建立peer关系。Metro-rr,core-rr,abr-rr,因为在同一个as,需要部署rr来传递ibgp 路由

 

 2924805-20230120101348188-848111051

rr使用group简化配置

 

 2924805-20230120101354100-1667595828

cisco不支持将一个接口同时宣告进多个igp进程(不贴合实际)

 2924805-20230120101403254-1531774470

Show bgp ipv4 un summ

 2924805-20230120101412393-542532814

 

 -a/是华为的带源ping

 2924805-20230120101417281-1629512214

cisco上看这两条路由还是有效的,能参与选路;但在华为上测试,就是无效的,因为nh不可达。需在abr上更改路由nh为self

xr更改nh为self未生效的问题。

 

----------------------------------------------------

 

2023-01-19 9:32

视频 19

bgp路由属性

As set

 2924805-20230120104825819-1456167005

AS3上进行手动聚合后,明细路由的路由属性会丢失(本质就是聚合路由会丢失明细路由的属性值)。As3会将汇总路由通告给as1/2/4,因为明细路由属性丢失,as1和2会接收汇总路由-问题:汇总路由被通告回始发路由器。

问题:当AS1上1.1.1.0/24的明细没了,AS1会认为到达该前缀可以走汇总,流量发到AS3.在bgp收敛完成前,在AS1和AS3之间形成环路。

为了避免汇总路由被始发路由器接收到,可以在汇总路由时加as set参数,即汇总路由会携带明细路由的as path属性,是无序的。

As path属性包含两种类型的as no:有序as seq和无序as set,用()表示。选路时,针对汇总后无序的as no,总计为1 。

但是自动聚合就不能配置额外的参数

 2924805-20230120104834200-38337440

上述是私有顺序,每个厂商不同

cisco中针对引入的外部路由进行了优化,非0下一跳也可能是源于本地的。需要检查非0 nh是不是也是igp的nh,如果也是的话,这条路由也是源于本地路由。

将静态路由引入bgp ,nh为0.0.0.0

将igp通过network或import的方式引入到bgp,bgp的nh为igp的nh,避免次优

 2924805-20230120104841142-1896567685

修改ibgp ad值从200变为109,小于ospf 的110。则3会通过ospf和ibgp同时学到到达1.1.1.1/32的路由,并根据ad优选ibgp路由,造成次优

 

 2924805-20230120104848554-947448948

1-2,2-3之间都建立ebgp peer,就可以使用ebgp的第三方nh避免次优。ebgp默认会更改路由的nh,router在通告路由时,会判断bgp路由的nh和要通告给peer的地址是否在同一个网段,在同一个网段则不更改bgp路由的nh。

但华为针对此场景还是使用0.0.0.0 or 127.0.0.1(就是华为的ebgp没有第三方下一跳优化)

 

 network和import都会携带med值,但汇总不会携带med(丢失明细路由的属性,汇总了本来也没法在携带med)。默认只会比较来自同一个as 路由条目的med值。med属性举例:

 2924805-20230120104859229-1177071568

 

默认只比较源自同一个as的bgp路由的med属性

 2924805-20230120104904996-1809375324

针对源自不同as的bgp路由,需要在as1上开启针对源自不同as的bgp路由的med

med是可选非过渡属性,使用场景

 2924805-20230120104910752-1090721914

场景1:2收到1.1.1.1/32会携带med=10的属性。如果这条路由条目并不是始发自己的,则在ebgp peer间传递路由条目时,并不会携带med属性,即2在传递路由给3时会将 med属性剥离。

场景2:1.1.1.1/32通告者变为2,则2向1和3通告路由时都会携带med属性(因为2是路由的始发者)

场景3:路由通告者变为3,则3向2通告路由时会携带med属性。同时由于2和1是ibgp peer关系,则2在向1通告的bgp路由能携带med属性(ibgp peer间可以通告非本as的 med)

 

Ebgp 的ad值为20,ibgp的ad值为200

 

 2924805-20230120104941590-682437599

 

 11条在ecmp之后,cisco私有。Ebgp 路由的uptime时间

 

2924805-20230120104928873-426647953

路由黑洞解决方案1,2,3是联盟

rr反射路由时的非非不传,不改变路由属性,只增加cluster list和origin id用于防环:来自非客户端的路由,不会传递给非客户端。

rr本质上就是破坏了ibgp的水平分割,通过反射的方式把ibgp路由反射给其他ibgp peer。由于打破了ibgp防环的水平分割机制,引入cluster-list和origial id来防止环路

 

 2924805-20230120104947287-894786395

在反射的bgp路由里增加cluster-list(追加cluster id)和original id属性。通过cluster-list可以防止rr之间反射bgp路由的环路问题

 

 2924805-20230120104953866-42629466

由客户端始发的路由经过多次反射后又回到了客户端,需要使用original id来进行防环

 

aigp属性

 2924805-20230120105001668-2066816881

属性的由来:同一个igp区域内有100台router,但这样部署的问题:1.igp能否支持这样的网络。如果使用ospf的话,当网络出现震荡时,ospf 的spf算法计算范围大,会造成设备压力大,收敛慢-设备间计算不同步,产生转发微环。

so当前在运营商的网络中不会把大量设备放进同一个igp区域内,会把igp做一个分割,使用不同的igp进程或者不同的igp协议

 2924805-20230120105009213-862986938

将大的igp区域划分为3段小的igp区域

把大的网络划分到小的igp的区域,在区域内缩小router的数量,这样便于维护同时减小igp的计算压力实现快速收敛。但存在以下问题

 

isp网络中提到新的场景Seamless

 2924805-20230120105017320-414036370

上图,3台router都在as 100内,但在不同igp区域(isis or ospf)/进程中。两端pe间想建立bgp的peer,如果是在同一个igp区域内直接建立bgp peer没有任何问题-pe1-2之间igp路由可达 。但此时由于pe1/2在不同的igp区域里,他俩是不通的-中间abr设备上没有做路由引入。上述组网称为seamless。

为了最终在pe1-2之间建立bgp peer/将不同的igp区域连到一起,需要pe1-abr以及pe2-rr都建立ibgp peer,然后abr作为rr使用。pe就能通过bgp学到对端pe的路由。后续想实现端到端的l3vpn,可以在pe上通告一条用于建立l3vpn/mpbgp的路由,两端可以通过bgp路由建立mpbgp peer关系。一般会在pe和abr之间部署多台设备,so pe-abr之间要启用lsp,先把流量交给abr转发。所以seamless网络又称为seamless mpls。

由于pe1-2之间使用bgp路由建立端到端的bgp邻居。ce间如何通信?流量到达pe1,会给流量封装2层标签,内层为vpn label,外层为lsp label。但此场景两层标签不通,因外层lsp标签是到abr的,内层私网标签是pe2分配的,abr不认。现象为控制层面peer关系能建立但是流量不通。

解决思路,将两个分段的igp区域连接到一起-使用bgp的lu路由进行关联/bgp label unicast。本质就是bgp也可以分配标签,这里就是利用bgp的标签将两个igp的区域关联到一起,此时流量转发时有三层标签,内层标签为vpn标签,中间为bgp lu标签用于关联过渡,外层为lsp标签

Seamless mpls是现网中使用很多的客户首选方案,可以减少igp区域的设备数量,设备数量太多在isp网络中也不现实。将大的igp区域划分为小的igp区域,在小igp区域间的abr设备上配置bgp,通过bgp lu标签来关联不同的igp区域 ,实现端到端的流量互通。但是存在问题如下:

 2924805-20230120105027040-111103249

rr在传递路由时不更改任何的路由属性(只追加两个防环属性,cluster list和original id),so pe1接收到两条bgp路由的nh都是pe2,这样这两条路由就不是有效路由的-因为pe1和2不在同一个igp区域,nh不可达。so在seamless的场景中,需要在rr上更改nh为自我。此时优选路由时比到第九条原则,比较bgp nh的igpcost值小的,但这也只是比较到abr这一段的,不是到达pe2整个端到端的cost,这样选出来可能就不是最优路径。引出aigp(累计的内部网关协议),让bgp在选路时看到端到端累计的cost值。

aigp指设备在通告路由条目时,同时会追加aigp属性,添加我到达目标前缀的本igp区域的cost值(可以理解为bgp or igp到达目标前缀的cost,因为这俩种路由的cost相同,只不过ad值不同)。即abr在向pe1通告1.1.1.1/32路由时,会同时通过aigp属性通告我到达1.1.1.1/32的cost,则pe1就能计算出完整的端到端累计cost,然后就优选累计值小的为最优路由。

目前客户网络中会部署seamless,在seamless中就需要考虑bgp的优选问题,需要开启aigp。在mpls中还需要考虑lsp的关联性

 2924805-20230120105034997-1624590871

 2924805-20230120105040739-1404652826

在多个as,也可以通过通告aigp实现端到端cost的累计计算。因为abr和两端都是igp可达的,就能计算每段端到端的cost,累加就能计算出完整的端到端的cost值

 

 2924805-20230120105046408-644830122

红色:通过bgp lu的路由条目关联不同的igp区域实现端到端的lsp

 2924805-20230120105053134-1699752216

  med有很多的限制,端到端只能使用aigp

 2924805-20230120105057752-2065410523

 

 2924805-20230120105105916-840180480

 

aigp是真正的属性,而不是在其他属性中添加的标识

 

 2924805-20230120105112206-116144825

 

 2924805-20230120105116245-237798138

 

aigp属性不仅要把开关打开,还需要配置route-map/只支持通过策略的方式设置aigp的值

 2924805-20230120105120274-867583119

3支持aigp,但2不支持。解决方案1,可以将aigp属性转换为扩展团体属性在传递给peer

 2924805-20230120105124122-127389970

方案2,将aigp属性转换为med值

 2924805-20230120105128230-754287269

 ----------------------------------------------------------------------------

 

2023-01-20 11:18

Video 20

 2924805-20230120223718109-478461028

最基础理念:同一个as内应该运行同一个igp的区域。ospf虽然可以通过划分多区域,但会生成多种不同类型的lsa,造成设备计算压力。

为了减少同一个igp区域中的设备数量,引出新技术-seamless:在同一个as内使用多个igp的进程进行分割。如果在abr上做路由引入,1增加设备的负担,2不安全。so在现网中不会这样做。

rr是旁挂方式部署,在现网中应该部署两台rr,避免一台出现故障。旁挂部署rr,需要让metro侧rr不要优选,简单的把所有路由都通告给metro pe,1.首先避免流量走单边。2.避免这条路由对rr来说是最优的,但对metro pe是次优的。假如metro-rr只通告最优的通过abr1的路由,当metro-pe到abr1中断,metro-pe就不知道可以通过abr2到达ce2,因为metro-pe到达rr已经断了。

现网中有fallover测试,会模拟各种故障。 目的是测试流量的切换,集采和厂商测试都会测试 。语音和视频这种实时应用的延时和丢包有很大的依赖性,如果丢包和延时大于50ms,语音和视频就不能用了。So isp要求切换小于50ms,技术方案为frr。

故障的恢复时间=故障的感知时间(可通过bfd实现ms级故障检测,bfd会话down,通知上层协议down)+协议收敛时间+把最优路由重新下发到fib中-写表时间。

开启frr后,bfd会话down,会马上通知协议层和fib表(bfd可以同时联动协议和fib表,联动fib表是通过port(pst)来实现的。计算后的主备路径都会绑定port),会把fib表中主路径的出接口设置为down,由于提前以及计算出了备份路径,就可以直接把流量切换过来 。可以在拓扑上的metro-pe开启bgp frr功能,以abr1为主,abr2为备。cisco中称bgp frr为bgp pic(前缀独立收敛,就是用于bgp frr计算的)。在网络中bgp路由可能达到100w级别,就造成fallover切换时设备资源占用率很高。check 现网isis和bgp路由情况

 2924805-20230120224119447-1811750102

aigp属性和ospf 的3类lsa(区域间路由)很相似,3类lsa会通告abr到达目标前缀的cost值。终端设备在接收到3类lsa后,会将到达abr的距离+abr到达目标前缀的距离,计算出完整的距离,从而实现不同区域端到端的选路。

 

------------------------------------------------------------------

 

2023-01-21 20:04

视频23

Bgp 安全特性

bgp是基于tcp连接的,易于收到攻击。常见的攻击如:tcp的半连接攻击-只攻击一台设备,也会导致这台设备瘫痪 。

2924805-20230124213644087-1670582135

 

全连接攻击:

客户端仅仅“连接”到服务器,然后再也不发送任何数据,直到服务器超时处理或者耗尽服务器的处理进程。

为何不发送任何数据呢? 因为一旦发送了数据,服务器检测到数据不合法后就可能断开此次连接;如果不发送数据的话,很多服务器只能阻塞在recv或者read调用上。

半连接攻击是耗尽全局的内存;全连接攻击耗尽的是主机的处理进程和连接数量。

 

提高bgp的可靠性:

 2924805-20230124212017318-1483849824

 

 2924805-20230124212023904-810885337

1.认证:通过tcp的认证,实现针对bgp邻居的认证。

tcp是支持option的,即说明tcp是可扩展协议,长度在20-60B。常用的option就是md5和mss(最大段大小,用于实现tcp分段的)

2.防范bgp报文传递过程中被篡改,需要保证报文的完整性。flowspec可以避免设备受到dos和ddos攻击

3.邻居接收到路由前缀,如何验证前缀的有效性。使用到rpki技术-是否从正确的as收到了该前缀

 

bgp可能受到的攻击:

 2924805-20230124212032872-661136693

bgp会话劫持:设备上开启179端口号,很可能被劫持。攻击者只发送syn的报文,但不会发送ack报文-tcp的半连接攻击。

2924805-20230124215225669-1502692818

ddos攻击(分布式拒绝服务),通过达到设备发包的上限,把这台设备deny掉,后续流量全部deny。但如果是不同的设备或ip向你发发起连接,很可能每个ip只向你发1个包 ,数量很大的情况下(比如100w节点同时发1个包 )也难避免。ddos攻击是目前难防御的一种攻击。

12306过节时访问server很卡,这种不是黑客的恶意攻击,而是瞬时访问服务器的量激增,这样就需要建立不同的集群,把会话分到不同的服务器进行响应,从而保证网站是正常的。ddos攻击可怕的地方在于无法区分是正常的访问还是攻击。

dos攻击是1个ip在不断的发起请求,这种可以通过报文上限的方式进行防御。超过一定数量的报文就认为是攻击,deny掉

禁用as,是一种攻击的手段

dns攻击,就是dns欺骗

 

 2924805-20230124212044649-893707148

1.可以使用认证和loop接口建立邻居关系(和tcp报文中的源ip地址不一样)。本质就是tcp在建立会话时要进行ip源的检查。

使用直连接口建立peer关系,由于黑客发送的tcp的ip报文的源ip地址就是2设置的peer,就可以建立会话关系。此时在1上telnet 12.1.1.2:179,能成功。bgp没建立-因为没有发送open报文,但tcp会话已经建立起来。

 2924805-20230124212053670-196416989

 

gtsm机制(bgp和ospf都有-只存在于通过单播建立邻居关系的shamlink场景),通过ttl的跳数来防止中间人攻击

 2924805-20230124212104525-1193819924

ibgp场景:比如3针对peer1开启gtms功能,指定gtsm为254,则接收到报文会检查ip ttl是否大于等于254,如果小于254(经过的跳数过多),则认为可能存在攻击,丢弃。

ebgp场景:ebgp多跳和gtms功能是冲突的,这俩参数都会修改ttl值。如果针对ebgp peer开启gtms功能后,则ebgp的ip ttl值会变为255,然后可以设置有效的范围值。相比配置多跳,无法针对ttl值进行验证。

可以通过ipsec来保证报文的完整性的。在两台设备上配置ipsec的tunnel,针对tunnel的端口配置bgp 的peer,对两边应用bgp的报文进行加密,都走ipsec的tunnel

 2924805-20230124212117681-585508425

 

前缀被劫持的场景

 2924805-20230124212126363-217448402

 

 2924805-20230124212134841-472883641

 2924805-20230124212142153-793393850

通过as path影响bgp的选路,实现黑客劫持访问服务器的流量

 2924805-20230124212150318-670512834

 

  例2

 2924805-20230124212156798-1391152756

 

 

 2924805-20230124212203013-181924325

比如黑客通告 /25位的,更精确。

劫持举例:巴基斯坦电信通告了一条更精确的路由-该路由之前被youtube使用,导致访问youtube的流量被转到了巴基斯坦。isp配置时很容易出现这种故障

解决方案:对通告的前缀进行源检查,这个as通告的前缀是否有效的,验证通过后才接收。引出rpki

 

2924805-20230124212211824-668990901

cisco还有自己的解决方案,rpki(s-bgp和sobgp看一下就得了,都是通过证书的机制来验证邻居关系,并通过第三方来验证通告的前缀和as关系是否正常)。因为cisco不支持上述这俩,华为也是,因为前两种方案需要对现有bgp进行扩展,用的少。公网上可以看rpki的服务器

如何验证邻居给我通告的路由是否有效?是1通告的1.1.1.0/24还是2通告的有效?

应该存在第三方被认可的机构(类似银行的记账功能)。iana存在as和ip地址的对应关系(iana同时也负责ipv4地址和ipv6地址的分配)。我在接收到前缀后就和iana提供的as和前缀的对应关系进行对比就可以验证是否有效了(访问iana提供的具有as和前缀关系的服务器来实现 )

 2924805-20230124212221123-844519116

三种方案主要是实现方式不一样,但都会采用第三方的信任机构,才能知道前缀和as的对应关系是否正确

 2924805-20230124212229731-362256853

 

 2924805-20230124212237586-430034407

Rpki

 2924805-20230124212244489-1290239084

Rir=iana。iana只对接运营商和商业客户。再下面的客户有isp去对接

 2924805-20230124212253086-278436552

roa就是前缀和as的对应关系列表

 2924805-20230124212259776-180316884

秘钥管理平台。Pki 公钥管理平台 Public Key Infrastructure

rpki路由信息管理平台,会保留所有的roa信息。平台有iana提供

router可以使用rpki协议和平台建立邻居关系,然后通过rpki协议获取roa信息。后续在接收到ebgp路由会去在roa中进行查找,是否有效。

默认情况下,只会ebgp邻居通告的路由进行源检查,ibgp peer通告的路由不会这样做,因为在同一个as内,就是在同一个isp内,不会存在路由劫持问题。来自as外部的路由,因为不信任其可靠性,需要进行源检查

 2924805-20230124212308155-236327193

将前缀和as no绑定生成签名

 2924805-20230124212314190-73182225

 

 2924805-20230124212321460-323204081

三种状态valid invalid unknown

前缀一样,但来源的as和roa不一致,才会将该路由标识为invalid;A 10.1.2/24应该也是invalid状态

B 30.1.1/24应该也是invalid

 2924805-20230124212329141-367591973

上面是ebgp peer

 

 2924805-20230124212336696-700813012

 2924805-20230124212343204-1950209703

Invalid 路由是无效的,不能参与选路。

rpki最优路由计算,只是使用valid和unknown路由进行选路计算(xr上的计算结果不会影响选路,可以配置命令不考虑状态来始终影响选路)

unknown路由只能说明这条路由不在rpki database中,并不能说明是无效路由。so可以参加选路。

为减少验证的次数,一般只在边界设备上开启源检查(对接收到的ebgp路由进行源检查)

 

 2924805-20230124212355155-1524727832

1已经对ebgp路由进行了源检查,然后会继续通过ebgp通告给2,浪费2的性能。这样在1通告给2 路由时,告知其我已经进行源检查,通过扩展团体属性传递(通告的是这三种状态valid invalid unknown),2就没必要再进行源检查.而针对unknown的路由,会在本地重新进行rpki检查。

从而避免每台设备都进行rpki检查

 需要部署rpki的server,而router作为客户端,和server建立rpki连接,从server上下载所有roa的信息本地保存。后续接收到ebgp路由,就使用roa信息进行比对,验证是否合法。

 

-------------------------------------

 

2023-01-26 20:16

Video 24

aigp和addition path lab实验

现在运营商的网络会将一个大的as划分为多个小的igp的区域

isp通常会使用多链路或多节点来提升网络的可靠性。isis的lfa属于ip frr机制-针对前缀的。想使用快速切换,就需要用到frr

控制层面可以理解为协议的层面-在设备上就表现为主控板,负责控制层面的计算

rib表是基于RP表的,fib表是基于lc板

网络改为seamless的原因:单igp区域过大,导致区域内的node和link过多,导致后续收敛时间变长。为了减小故障域的范围,缩短spf算法的时间,出现seamless。

cisco和华为在推销的时候,提的是自己是解决方案的提供商,提出解决方案,然后才附带产品。而不会只提自己是产品提供商。重点在于服务,而非产品

 

rs中,接入、汇聚-核心都会采用口字型或日子型的部署(因为在同一机房内,设备可以任意连接),如下:

2924805-20230126225323710-962546063

 

而isp就不会这样做,因为设备间距离较远,直接进行设备间的互联造成成本过高,so节约成本同要时保证一条链路故障后可以切换到另一条链路去,不会形成单点故障点,通常会采用以下口字型或环形的网络部署

 2924805-20230126225331010-461994257

但以上环路在开启frr可能会造成环路

在1 的接口下配置了remote lfa,那对于所有以该接口为出接口的前缀。都需要计算备份下一跳,计算当链路down之后有哪些设备可以成为这些前缀的备份nh,p、q空间由头节点进行计算:本质就是到达哪些邻居不经过故障链路的

 2924805-20230126225343704-979895281

 

Ip frr是针对前缀的

 2924805-20230126225349239-2014309926

 

当前有三种可以实现ip frr的机制,lfa、remote lfa、 ti lfa(拓扑独立lfa,基于sr)。如果当前的网络是使用ldp来进行标签分发的,只能使用lfa或remote-lfa(r能覆盖90%的场景),能够最大限度的实现前缀的备份保护。Remote-lfa会先计算lfa,如果计算不出来才会计算remote-lfa

 

Remote-lfa存在环路的问题

 2924805-20230126225400868-659278827

1-4之间建立remote-ldp用于后续封装流量

step1 主路径1-3故障,将流量切换到备份路径

step2 1完成收敛,计算出新的最优路由,然后将流量切换到新的下一跳,产生临时环路。比如1/2上的isis(igp的收敛)收敛不一致,可能1已经计算了新的最优路径从2到达3,而2还认为走1,就会形成回切到新的主路径时的1-2间的转发微环。

 

 2924805-20230126225408081-1385804613

在isp的环网中,设备越多,igp收敛不一致的现象会更加明显

 

回切转发微环的解决方案:

1.igp的前缀优先级,仅在本地有意义,报文中不会携带-在众多路由条目中需要先收敛哪条路由。比如让下游设备配置针对某些前缀提前收敛的方案(不太靠谱):2根据前缀优先级先去计算到达3.3.3.3/32的路由(针对指定的目标前缀),先完成收敛先写入fib,这就解决了1和2之间igp收敛不同步的问题。即便是几万条路由,当前igp的收敛时间也能达到ms,但瓶颈依然是要写到fib中。

2.在1上配置延迟回切到nm的时间,比如10s,在10s内流量都是交给pq节点的,这样就给下游设备更多的时间完成收敛-对应命令行micro-loop delay

Isp和idc和企业网不同,在isp中存在环的话,一定要保证流量切换的延迟。而idc和企业网出现环路对业务不会有太大影响。

isp集采设备的时候,需要同时看设备的性能和fallover的时间,可靠性-长期满负荷工作

 

 --------------------------------------------------

 

2023-01-27 22:17

Vodeo 25

bgp的安全机制

bgp路由源认证:as和prefix的关系 ,RPKI

rpki是cisco和华为解决源认证的方案,在isp的网络中,一定会存在一台rpki服务器,且数据会实时的更新,而router也会定期去和服务器去同步数据(增量同步)。roueter的内存限制,不可能把所有的bgp明细路由(百万条级别)都down下来,所以rpki上roa保存的是汇总路由。

 

2924805-20230128142020218-454355784

dos攻击:攻击者针对被攻击者发起大量的连接,导致服务器or网络设备性能达到上限,挂掉。dos攻击的特点是攻击源固定。攻击者的发包速率和建立的连接已经超过了上限,so防范的时候将这个ip地址deny就可以-可以利用ip黑名单。

ddos攻击:分布式。考验的是服务器并发处理能力,参照春节时12306的之前的问题。解决方案:1.限制服务器的处理能力,比如只让其每秒处理100个并发,超过上限的全部丢弃,先保证服务器能整个工作。2.增加服务器来提升集群处理的性能。ddos攻击的防御难点在于如何判断是正常的访问还是攻击。

bgp是基于tcp的,那针对一台设备的bgp发起攻击,可以使用多台肉鸡或多个ip同时对这台设备的tcp 179端口号(ip 6是tcp)发起连接。如何防范这种分布式攻击?引出bgp flowspect-该流说明是通过bgp来传递的(那意思也可以通过其他来传递,check,非网络的呢?可以通过其他信息传递flowspec么),该功能防止ddos攻击同时简化网络配置。

2924805-20230128144114617-277745155

bgp流说明,只是通过bgp来传递流的动作和明细的,因为bgp的扩展性更强,同时可以跨域设备取传递。isis的扩展性也强,但只是针对直连设备的,必须一跳一跳的传递(直连建立isis peer)。而bgp是非直连的(非直连建立peer关系),可以只在需要部署的设备上应用就ok,很多扩展功能都是通过bgp来实现的。bgp的扩展性太强了,不光可以传递路由信息,还可以传递igp的参数信息,流的参数信息等,实现时只需要针对这些信息增加新的nlri。流的策略信息通过bgp传递给每一个peer。

2924805-20230128150100937-1587401812 2924805-20230128150228780-624565601

 

在qos上中针对一个流限速,首先要抓取流,然后针对流做动作,是针对流来实现的,可理解为流的策略,在qos中需要在每一台设备上都配置相同的策略。反应出qos的配置量大,需要端到端的配置。

现在有了bgp flowspec可以把流的信息通过bgp来进行传递,peer收到流信息后可以实现本地应用,应用方式是在本地的每一个接口上都进行部署。后续在收到流量,并且流量匹配了策略,就会执行相应的动作。Bgp flowspec是针对流的,只不过流的策略信息通过bgp进行传递。

流匹配时可以match all-所有rule全部匹配才算匹配上;match any-只要匹配一条规则就算匹配上。

 

2924805-20230128142036497-281488639

Step1:将流量交给清洗设备,过滤一下

 

 2924805-20230128142043061-724493132

bgp flowspec工作原理:Pe1(网络边界设备)上开启flowspec机制,router本身不具备分析非法流量功能,但网络中会存在ddos分析设备,pe先将流量交给ddos分析设备,让其发现攻击流量,然后ddos分析设备会通知security server-ss和pe1之间建立了flowspec 的bgp的peer。ss会将这部分攻击流量变为策略,策略就是针对攻击流量做deny,该策略信息通过flowspec(bgp的nlri)传递给pe。通过bgp的nlri将策略的明细信息传递给每一个flowspec peer。peer在收到后会在每一个接口上应用该策略。后续从接口上接收到流量,就会先去匹配策略,如果能匹配上在pe端就会丢弃该流量(流量在入设备就被丢弃,不会到达服务器)。

在这里用到了netflow:流分析协议。

pe设备不会将所有流量都重定向到ddos分析设备的,因为流量会很大,ddos设备是旁挂设备,如果把骨干网或业务网的所有流量都重定向到ddos设备,肯定hold不住,那可以在本地开启netflow功能(那在初始阶段pe设备如何判断需要将什么样的流量发给ddos分析设备,check)。netflow只负责流的采集而不负责分析,本地开启netflow后,会定期去采集经过我的流,采集流后会将流信息做成模板,模板中会定义很多流的字段,如:流的源目的ip地址,流来自哪个应用、协议,流量有多大等-模板由netflow提供,不同的版本模板时不一样的,当前是v9版本,v9的模板是基于tlv的,可以 扩展。把流量汇总之后 ,将流量信息通过netflow报文发送给分析设备,分析设备会根据这些信息去匹配本地的攻击数据库,匹配上的话就判定为攻击流量,会将这部分攻击流量的信息发送给serurity server,security server会根据攻击的流量信息生成policy,policy里去匹配流量,rule,匹配之后是针对流量进行的动作:限速、丢弃还是重定向-根据流量攻击配置方案不同采取不同的动作。如drop,security server会生成流信息,流信息中就包含匹配流的信息,和动作。将流信息通过bgp传递给每一个pe设备,pe设备收到后,如果本地开启flowspec,就会将策略信息应用到每一个if上,后续从接口上上收到流量,就会去匹配策略,执行动作。这种就是防御ddos的一种方法。

Bgp flowspec也可以用在限速,就不需要在每台设备上都进行配置,只需要在边界设备(接收流量的设备)上进行配置(多个pe不是都需要配置么?如何去选择controller端,check),只需要在controller端配置,client端会自动应用。

 

2924805-20230128142053865-1048908425

 2924805-20230128142100728-324623353

NLRI会包含两个参数:AFI和SAFI。会为策略信息生成新的safi,后续比如要传递云计算的信息,同样只需要新增safi就可以实现了。So bgp传递的不止是路由信息,flowspec传递的就是策略信息。

flowspec可以针对多个地址族实现,通过不同的type信息来标识不同信息,这些信息组成不同的rule

2924805-20230128142110502-1332308114

 

动作

 2924805-20230128154325575-756645985

本质就是将qos中学到的class map和policy map通过bgp来传递

 2924805-20230128154352040-1412912194

 

现网配置举例

 2924805-20230128142132724-766064499

 

 

采集失败,请手动处理

https://img2023.cnblogs.com/blog/2924805/202301/2924805-20230128142138211-200202997.png

 

在controller配置策略,然后目标是将策略下发到每一台bgp nei/client,ios xr可同时充当controller和client,而ios是不能作为controller ,只能接收并应用策略,但不能创建策略

2924805-20230128142145580-483738308

 2924805-20230128142150544-1474451507

 2924805-20230128142155410-1043582329

Prx/rcd为0,是因为当前没有在controller端配置具体的策略,so不会通告具体的策略信息。如果配置完策略信息后,这块就应该有计数。

 

在controller端配置策略:一共4 step

 2924805-20230128142204466-1974399736

 2924805-20230128142210205-224294950

1.通告class-map来匹配流量(在xr的qos中是通过class-map来抓取流量的,可以匹配acl),class-map在配置时可以指定针对后面的rule是match(比如创建了10条rule,10条rule全匹配那才算匹配上)还是match any(匹配一条即可),

2.在policy-map中针对class-map做动作(关联class-map,并选择动作)

3.在flowspec进程下去调用这个policy

4.客户端需要敲loca-install interface-all(用在ios上,将策略写到所有if上)

图片3和4的顺序弄反了

 2924805-20230128142216405-1338174758

 2924805-20230128142220548-1168874053

 2924805-20230128165313266-1663750973

 

 

 ----------------------------------------------------------------------------------

 

2023-01-28 16:01

Video 26

pbr和路由策略

策略路由是针对流量的(配置转发nh和出if,及打标签),路由策略是针对收到和发出路由的策略。

2924805-20230129154121350-1943193069

上图的policy-map type为pbr,说明该policy用于pbr。client收到策略,会将策略下发到if-相当于为每个接口都配置了pbr。(本质就是利用bgp flowspec实现自动化的qos部署)

在policy-map中通过class来匹配class-map,drop为动作。

第二个class-default为默认的permit

以上policy-map没有去match协议,而是直接match的流量。

在controller端的flowspec进程下绑定该policy-map,在对应的地址族下配置service-policy。配置完,会触发bgp去通告具体的策略。

客户端的配置只需要配置在ios设备上,xr设备不需要配置

 

 2924805-20230129153115652-1248109829

统计的是1,但这里显示的不一定是路由,这里就是策略信息。想看动作的话,需要追加关键字detail

 

2924805-20230129153122695-2033899989

 

 2924805-20230129153128466-1855950652

限速到0,就相当于drop了

 2924805-20230129153136836-137852783

如果flowspec有问题,可以使用show flowspec client进行debug

bgp只要开发相应的nlri,就可以通告任何信息,不止传递路由信息。evpn通告的是mac和ip的信息

 

Sp lab举例

 2924805-20230129153143514-285862228

因为不知道是tcp还是udp,需要同时匹配udp和tcp

动作:针对不同地址族,匹配流量时的不同动作

前提是需要先建立bgp flowspec 的nei关系

 

controller端配置

 2924805-20230129153150323-13871270

匹配所有rule,就采用的match-all

 2924805-20230129153201049-928709563

 2924805-20230129153206380-135644154

在flowspec下进入到vrf,在针对地址族调用policy-应用到ipv4 vpn。通过flowspec的nlri传递给client端

 

 2924805-20230129153212960-1004744032

 2924805-20230129153217259-579802182

针对不同地址族的bgp nei,配flowspec

 

客户端配置

 2924805-20230129153220973-140939152

 2924805-20230129153227385-1072725157

xr做客户端只需要配置bgp peer就可以了,不需要配置local-install interface-all。因xr是硬件独立的,不需要将策略下发到硬件上(check,xr是会自动应用?比如写表?)

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(0) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2348 篇
  • 草稿数目: 13 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 6136 个
  • 注册用户: 139 人
  • 访问总量: 8,728,736 次
  • 最近更新: 2024年5月1日