- 博客(81)
- 资源 (24)
- 收藏
- 关注
原创 SR-TE Policy(思科)----dynamic path 实验
实验内容按照这个拓扑,分别基于IGP和TE建立PE1-PE2的SR-TE Policy动态路径。拓扑图I代表IGP,T代表TEIGP链路metric默认值:10,TE链路metric值:10按照上图,修改了部分链路的IGP链路metric和TE链路metric。配置流程:1. 配置SRGB2. 在IGP(is-is)中使能segment routing和Node ID3. 修改IGP和TE的链路metric4. 配置SR-TE Policy,这次只配置了动态路径前两步直接省略,参考我
2022-04-16 21:45:14
814
原创 SR-TE Policy(思科)----explicit path 实验
配置流程:配置SRGB在IGP(is-is)中使能segment routing和Node ID配置SR-TE Policy配置TI-LFASRGB&SRLBSRGBIOS XR中的默认SRGB大小为8000,从标签值16000开始。默认范围是16000到23999。假设每个路由器有一个loopbakc接口前缀,整网可以分配具有8000个路由器的网络前缀SID— prefix SID。例如:考虑一个SRGB范围从16000到23999,前缀1.1.1.65/32(prefix-.
2022-04-14 15:02:45
1783
5
原创 P4 tutorials----ECN
学习内容:在Basic Forwarding实验的基础上扩展ECN功能。关于ECN的概念可以参考:RoCE网络简单来说,Host1的IPv4报文携带ECN置位(01或者10),如果Switch队列长度达到了阈值时,Switch会将ECN位重新置位为11。Host2收到ECN置位11后,会发送CNP报文通知Host1降速。从而达到拥塞避免的效果。和之前的实验一样,我们只关注数据平面的逻辑。控制平面已经提前定义好了。步骤1:运行不完整的开始代码在tutorials/exercises/ecn目录下的
2022-04-11 21:23:12
1161
原创 P4 simple switch安装&测试
P4 tutorials的实验都是通过mininet模拟网络环境进行测试。你可能觉得mininet的环境不够真实,能不能直接用一台Linux虚拟机当作Switch呢?答案当然是可以的!今天这篇文章主要介绍如何搭建一台Linux虚拟机当作Switch使用。准备工作准备一台Ubuntu20.4的虚拟机,作为Switch。另外你也可以在准备两台虚拟机作为Host来做ping测试。在VirtualBox或者VMware环境搭建网络如下:不过这样准备3台虚拟机有点麻烦,我们只需要ping测试一下联通
2022-04-09 21:42:36
2983
11
原创 P4 tutorials MRI(INT)
实验说明实验的目标是使用简化版的带内遥测(INT)扩展基本L3转发,我们称之为多跳路有检查(MRI)。MRI可以追踪数据包转发路径和队列长度。为了支持这个功能,我们需要编写P4程序,将一个ID和队列长度添加到每个数据包的头堆栈。Switch ID的顺序相当于路径,每一个ID后面跟随着端口队列长度。和之前的实验一样,我们已经定义好了控制平面,所以实验只需要关注P4数据平面的逻辑。步骤一:运行(不完整)初始代码mri.p4只是初步实现了L3转发功能,我们的任务是扩展代码,使其能够自定义支持MRI的报文
2022-04-05 18:56:32
2621
4
原创 P4学习----Metadata
元数据是用来携带数据和配置性和西,元数据的申明与包头类似,但在实例化的时候有所不同,而且包头和元数据在字段值的约束上存在一定的差别。元数据分为两种,一种是用来携带P4程序运行过程中产生的数据的用户自定义元数据(User-Defined Metadata),如首部字段的运算结果等。另一种是固有元数据(Intrinsic Metadata),用于携带交换机自身的配置信息,如数据包进入交换机时的端口号等。自定义元数据开发者自定义metadata,定义方式和header一样。然后可以直接应用在Action
2022-04-01 10:19:02
1493
原创 P4学习----Control
在 P4 裡面有两个主要的 control flow,ingress 以及 egress,这两个 control flow 分别代表了一个数据包的进入以及离开。当 Parser 处理完数据包之后,会将相关的信息,例如解析出来的 header 以及 metadata 储存,然后交由 ingress 处理,ingress 会将封包送往不同的 table、更改数据包 header 内容、设定输出的 port 等等,最后再丢到一个 Queue 中。Egress 则是会将 Queue 的信息拿出来,再一次的处理并
2022-03-31 14:04:41
1240
原创 P4学习----Table (Match + Action)
Match-action tables是P4程序员用于规定包处理的主要结构。ActionAction是一个包含按顺序执行命令块的过程。例如,以下声明将数据包的出端口设置为参数提供的值。actions包含code和data。code在P4程序中,而data在table entries中提供,通常在控制平面填充。其他参数受数据平面的约束。actions 是读写正在处理的data的code片段。actions可能包含可由控制平面写入和由数据平面读取的data值。actions是控制平面可以动态影响数据平
2022-03-30 13:48:08
2899
原创 P4学习----Types and Parsers
Header是定义哪些数据报文的header可以使用,Parser是对headers里面的信息解析出来变成P4理解的数据结构。解析过程中存在若干个状态,状态之间可以转换。Header Types数据包通常包括一系列headers,每个header都是一系列字段。例如,以太网数据包具有以下结构:P4提供一种表示header的内置类型可以使用标准的“.”符号访问header的每个组件,例如,如果可变以太网的类型为ethernet_t,则为ethernet.dstAddr表示目标地址。header
2022-03-29 21:01:25
801
原创 SR-MPLS BE实验(华为ensp)
利用华为的eNSP模拟器,学习一下SR-LSP创建,数据转发,流量导入。CE1和CE2模拟客户私网,AS100为运营商公网。通过创建PE1和PE2间的SR-LSP隧道,把CE1和CE2的互通流量导入进SR LSP完成客户私网通信。
2022-03-28 09:20:03
3092
原创 P4 tutorials----p4runtime
学习内容:使用P4Runtime实现控制平面。这次的实验我们将开始用P4Runtime给交换机下发流表,而不是像之前两个Basic实验用swicth CLI方式静态下发了。我们还是继续沿用basic_tunneling实验里的P4程序,名称改为 advanced_tunnel.p4,然后增加两个计数器(ingressTunnelCounter, egressTunnelCounter)和两个新action(myTunnel_ingress, myTunnel_egress)。我们启动mycontro
2022-03-26 17:37:33
3241
3
原创 IP Precedence、DSCP、TOS
刚开始接触QoS时,经常会被DSCP和TOS两个名词搞迷糊,那么接下来就梳理一下。IPv4中有8bit作为TOS字段,一开始RFC791定义了TOS前三位为IP Precedence,划分了8个优先级,可用于流分类,数值越大表示优先级越高。IP Precedence与CoS相同,都有8种服务(0-7).。一般对应的应用类型:7 预留(Reserved)6 预留(Reserved)5 语音(Voice)4 视频会议(Video Conference)3 呼叫信号(Call Signaling)
2022-03-26 12:11:22
9626
原创 P4 tutorials实验后补习理论知识
这是P4所提供的最简单易理解的编程结构,V1Model。从图上可以看出,数据包的处理过程像一条流水线一样,它由5个模块组成,分别是:Parser:解析器,对数据包根据预先定义好的格式进行解析,并提取头部的各个字段,在这里可能会根据不同的头部进行匹配。比如如果三层包头的协议字段是0x0800则是ip报文,如果是0x0806则是arp报文,则会进行不同的处理。Ingress:Ingress流水线部分,数据处理逻辑的入口。TM:Traffic Manager,在这里定义核心的处理逻辑,并且会对一些元数据进.
2022-03-23 16:49:36
1694
原创 P4 tutorials----Basic Tunneling
学习内容:这次实验我们给switch添加支持隧道转发的功能。我们需要定义一个新的header type封装IP包头,修改交换机代码以支持识别这种新的封装从而指导转发。新的header type包括 protocol ID和destination ID,分别用于标识被封装包的类型和路由开始的代码文件basic_tunnel.p4,这里面只是基于IP转发,就像之前的basic_forwarding实验。关于控制平面P4程序定义了一个包处理pipeline,控制平面给每一个table插出rules。当r
2022-03-20 16:53:28
1577
原创 P4 Tutorial 安装
P4作为一门编程语言对于网络工程师来说还是有一定的入门难度的。不过还好万能的互联网上无所不有,P4 Tutorial 就是一个非常好的学习P4的项目。今天主要学习并实践一下P4 Tutorial所需环境的安装,并在此记录。简单的方法还是通过虚机方式安装。准备工作在电脑上安装 VirtualBox和Vagrant 两个软件。VirtualBox是运行虚拟机的软件,Vagrant是一个虚拟机的管理工具。对于Vagrant反正我是我太熟悉!具体怎么使用可以参考这篇文章:https://zhuanla
2022-03-19 16:20:44
1954
原创 P4 tutorials----Basic Forwarding
通过实验实现对P4的初步了解。 p4lang /tutorials 提供了不错的学习帮助。
2022-03-19 16:11:15
2199
2
原创 关于RD和RT的意义
RD和VPN-IPv4地址传统BGP无法正确处理地址空间重叠的VPN的路由。假设VPN1和VPN2都使用了10.110.10.0/24网段的地址,并各自发布了一条去往此网段的路由。PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。简单来说,RD就是在IPv4地址前面加个标记,这样相同的IP地址就有了区分。VPN TargetBGP/MPLS IP VPN使用BGP扩展
2022-03-08 12:54:00
6736
2
原创 BGP 条件注入
通常路由聚合是要把尽可能大的地址空间放到尽可能少的地址前缀表中,但是在在聚合过程往往会失去路由选择的精准性。例如:AS100前缀172.16.1.0/24,AS400前缀172.16.2.0/24。当AS200向AS100通告时,AS200的边界路由器R4和R5把地址汇总,即172.16.0.0/16。因为是聚合路由,R1在去往172.16.1.0/24时可能会从R3流出,那么如果更好地控制流量使其从R2流出呢?答案:条件注入部署在R2和R3上。条件注入是指当聚合路由存在时,创建更详细的路由,这个更
2022-03-01 08:44:12
357
原创 SR 学习记录----JUNOS为例
SR 原则特性(MPLS)SR 是建立一条端到端的路径。一条路径包含多个分段,在入口路由器会在数据包头压上路径所需的所有分段。如图,R1到R6遵循IGP最短路径,Node Segment用于关联R6,Label 302 告诉R2和R4转发数据包到R6,使用IGP最短路径。R6到R11是一段TE LSP,Label 183告诉R6数据包沿TE LSP转发。Adjacency Segment Label 555 用来关联R11到R12的链路。Adjacency Segment Label 555
2022-01-04 13:45:00
726
原创 2021-12-20 计算虚拟化
服务器虚拟化将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理上的界限,而是让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理。同时硬件辅助虚拟化技术提升虚拟化效率,增加虚拟机的安全性。裸金属架构FusionCompute的Hypervisor使用裸金属架构,直接在硬件上安装虚拟化软件,将硬件资源虚拟化。由于使用了裸金属架构,FusionCompute可为用户带来接近服务器性能、高可靠和可扩展的虚拟机。C
2021-12-20 15:53:48
1882
原创 Segment Routing入门
《Segment Routing详解卷一》:“SR项目的目标是简化IP网络的操作,增加其可扩展性和功能,并最终使应用能够控制网络,而不需要在整个网络基础设施上增加流状态。”—Clarence Filsfils嗯。。。应用控制网络不就是SDN吗?由应用提出需求(时延、带宽、丢包率等),控制器收集网络拓扑、带宽利用率、时延等信息,根据业务需求计算显式路径。骨干网上实现SDN的不二之选。SR类型Segment Routing MPLS基于源路由理念而设计的在网络上转发数据包的一种协议。SR可以直接添加到M
2021-12-01 14:42:56
1753
原创 DNS学习记录
首先粗略过一下DNS的解析过程:下图,客户端访问www.163.com,依次会经历:本地host文件—>本地DNS缓存—>本地DNS服务器—>根DNS服务器或上级DNS服务器(根据是否设有转发器)—>…直到获得该域名对应的 IP 地址名词解释:递归查询与迭代查询一、主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(
2021-11-18 15:25:32
891
原创 EVE 设备开机时的更改连线
EVE模拟器的拓扑搭建完成后,设备加电运行正常。但是后续如果想临时修改一下某条连线,还要把设备停机才能重新修改连线,这样操作还需要等待设备重新启动的时间,既浪费时间又影响我们实验思路。尤其像vQFX这样的镜像重启一次经常遇到问题。所以分享一个比较轻量级的操作:比如我这个拓扑图,想把VPC_26从一台交换机挪到另一台下面。一开始VPC_26的MAC 68:1a在vQFX-RE_09的0/0/5口下面。首先,到EVE后台brctl show,可以看到好多vnet0_x命名的linux br
2021-11-15 15:23:15
3370
原创 EVPN 路由之TYPE2 Mac mobility
EVPN 场景中,当主机从一个 Leaf 节点下迁移到另外一个 Leaf 节点下,主机会发送免费 ARP 报文,迁移后的 Leaf 根据免费 ARP 报文,刷新本地主机路由/主机 ARP 信息,并宣告 EVPN type-2 路由到远端Leaf,将流量导向迁移后的 Leaf。此路由跟迁移前通告的 MAC/IP 路由的区别在于在 BGP update 消息中携带了一种新的扩展团体:Mac mobility,每次迁移,其中的 SeqNum 字段值加 1。远端 Leaf 收到一个SeqNum 比本地 AR
2021-11-15 14:19:24
2891
原创 Linux虚拟化2(tun)
首先来看一下物理设备上的数据如何是通过Linux网络协议栈送到用户态程序的,如图:物理网卡收到数据后送到网络协议栈,进程通过socket创建特殊套接字,从网络协议栈读取数据。在网络协议栈看来,tun/tap这类虚拟网络设备和物理网卡并无区别。tun/tap设备就是利用Linux的设备文件实现内核态和用户态的数据交互,如图:物理网卡通过网线收发数据,而tun/tap通过设备文件(/dev/tunX)收发数据。所有对/dev/tunX的写操作会通过tun设备转成数据包发送给内核网络协议栈;当内核发包给tu
2021-10-21 22:24:55
1006
原创 RoCE网络
什么是RDMARDMA(远程直接数据存取)就是为了解决网络传输中服务器端数据处理的延迟而产生的,无需使用CPU,就可以从一个主机或服务器的内存直接访问另一主机或服务器的内存。它释放了CPU去执行其应做的工作,比如运行应用程序和处理大量数据。这既提高了带宽又降低了延迟、抖动和 CPU 消耗。RDMA与TCP/IP模式示意图。对比传统的网络传输机制,RDMA无需操作系统和TCP/IP协议栈的介入。RDMA的内核旁路机制,允许应用与网卡之间的直接数据读写,将服务器内的数据传输时延降低到1us以下。同时,RD
2021-10-19 17:54:34
14629
3
原创 Linux虚拟化1(namespace,veth,bridge)
namespacenamespace有好几种,这里主要关注的是network namespace。每个network namespace都有自己的IP地址,路由表,端口范围,/proc/net目录等。例如在每个容器都可以任意绑定监听的端口不用担心冲突,也就是因为不同它们有不同的network namespace隔离。veth pairveth 是虚拟以太网卡(Virtual Ethernet)的缩写,veth总是成对出现,所以称为veth pair。veth pair的原理很简单,就是一端输入数据
2021-10-18 23:22:21
441
原创 ROCEv2拥塞管理
RDMARDMA(远程直接数据存取)就是为了解决网络传输中服务器端数据处理的延迟而产生的,无需使用CPU,就可以从一个主机或服务器的内存直接访问另一主机或服务器的内存。它释放了CPU去执行其应做的工作,比如运行应用程序和处理大量数据。这既提高了带宽又降低了延迟、抖动和 CPU 消耗。RDMA网络目前,大致有三类RDMA网络,分别是Infiniband、RoCE、iWARP。其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 ,而RoCE 和 iWARP都是基于以太网的RDM
2021-10-13 15:51:11
4751
原创 EVPN 路由之TYPE4
Type4 路由是在multi-homing场景中选举DF(Designated Forwarder)使用。DF的主要功能是负责BUM报文的转发。选举方式如下图:以VLAN-aware场景为例,一个AC可能包含多个vlan,那么以最小vlan id为代表,VTEP根据接收到的以太网段路由,对携带相同ESI的路由中的源IP地址按升序排列,编号从0开始。在本例中,源IP 1.1.1.1、2.2.2.2对应的编号依次为0、1。根据VLAN ID除以N的余数M来选举DF,N代表冗余备份组中成员的数量,
2021-09-30 11:30:38
2267
原创 DCI互联 Layer 3 VRF-MPLS (EVE vqfx实验)
DCI互联 Layer 3 VPN-MPLS (EVE vqfx实验)Layer 3 VPN-MPLS互联方案简介:实验拓扑实验目标DC内配置WAN侧配置Border间配置检查测试wireshark抓包Layer 3 VPN-MPLS互联方案简介:QFX10000作为VxLAN隧道的发前端端和终止端。相比其它方案,Layer 3 VPN-MPLS互联最大好处是对现有的WAN 网络没有改动。实验拓扑中间三台MX属于WAN,模拟PE和P,AS100;两个PE上配置VRF实例,PE间MPLS 隧道;
2021-09-22 13:31:48
902
原创 RFC7814基于BGP/MPLS IP VRF的子网扩展解决方案
基于BGP/MPLS IP VPN的子网扩展解决方案引言功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入引言##随着业务不断发现,虚拟机(VM)跨数据中心的迁移已经是越来越普遍的需求,而迁移中IP的变更则变得复杂且代价高昂。如果
2021-09-17 13:22:00
933
原创 evp*路由之TYPE2
Type2 路由又叫MAC/IP 路由,顾名思义作用就是通告MAC和IP地址首先接入侧交换机(PE或Leaf)通过传统的数据平面学习方式学习到直连本地的终端(CE)MAC地址;然后本地PE通过Type2路由将MAC送到远端PE,IP地址作为可选项也可以被通告。Type2 格式如下,逐行学习一下。RD: 区分PE上的不同MAC-VRF。RD有推荐的格式:PE的loopback地址:序号组成。在RFC4364有定义。ESI:0表示PE一条链路到CE,非0表示CE双上联到两个PE及Multi-hom
2021-09-07 09:32:00
2840
2
原创 EVPN Type1 per EVI
Type1 per EVI继续说EVPN Type 1,上次聊了per ESI,这次说说per EVI。假设在active/active模式下,B只发流到PE1,那么PE1会在本地学到B的MAC并通过Type2 通告所有PEs(PE2,PE3)。从A到B的转发路径将是PE3-PE1,没有了负载的效果!解决方法:原来使MAC B直接被PE1学到,现在再加一层Ethernet Segment,MAC B被ES学到,ES是属于PE1和PE2.具体流程变成:PE1通过Type 2把MAC B发到PE
2021-08-13 15:54:25
1374
原创 EVPN 路由之Type1 per ESI
学习很长时间EVPNVxLAN,这里主要记录一下EVPN 路由的学习心得,RFC7432从Type-1路由开始,以下Type-1路由的格式:看起来不是很复杂,但是有一点要搞清楚(这也是本人刚开始犯迷糊的地方),及Type-1路由分两类:RT1-per ESI 和 RT1-per EVI。每一类有不同的用途,本次重点讨论一下RT1-per ESI。RT-1 per ESI有三个用途:水平分割A/A 或者A/S 状态通知快速收敛...
2021-08-13 13:58:22
5148
SR TI-LFA讲解资料
2022-05-20
P4 arp转发-实验配置
2022-05-15
P4 arp转发-实验配置
2022-05-15
cisco sr-te srgb l3vp* steer
2022-05-10
cisco sr-te srgb diff
2022-04-23
source.routing_ipv4 forward.p4
2022-04-19
cisco sr-te policy pcep
2022-04-17
cisco sr-te policy dynamic path
2022-04-16
cisco sr-te policy explicit
2022-04-14
cisco xrv-k9-6.6.3
2022-04-14
Basic Forwarding for p4
2022-04-09
P4 Tutorial 英文pdf
2022-04-09
A Segment Routing (SR) Tutorial
2022-04-08
P4 tutorials实验 vagrant镜像5
2022-04-05
P4 tutorials实验 vagrant镜像2
2022-04-05
P4 tutorials实验 vagrant镜像3
2022-04-05
P4 tutorials实验 vagrant镜像6
2022-04-05
P4 tutorials实验 vagrant镜像4
2022-04-05
P4 tutorials实验 vagrant镜像1
2022-04-05
华为ensp sr-mpls be配置
2022-03-29
MPLS L3 VRF DCI配置.rar
2021-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅