opencontrail-vrouter命令
vif命令
vrouter需要vrouter接口(vif)来转发流量。使用vif命令查看vrouter已知的接口。
注意: 仅在OS(Linux)中使用接口不足以进行转发。相关接口必须添加到vrouter。通常,接口的设置由nova-compute或vrouter代理等组件处理。
例如:vif --list
#vif --list
vif0 / 0操作系统:pkt0
类型:代理HWaddr:00:00:5e:00:01:00 IPaddr:0
Vrf:65535标记:L3 MTU:1514 Ref:2
RX数据包:6591字节:648577错误:0
TX数据包:12150字节:1974451错误:0
vif0 / 1操作系统:vhost0
类型:主机HWaddr:00:25:90:c3:08:68 IPaddr:0
Vrf:0标记:L3 MTU:1514 Ref:3
RX数据包:3446598字节:4478599344错误:0
TX数据包:851770字节:1337017154错误:0
vif0 / 2操作系统:p1p0p0(速度1000,双工1)
类型:物理HWaddr:00:25:90:c3:08:68 IPaddr:0
Vrf:0标记:L3 MTU:1514 Ref:22
RX数据包:1643238字节:1391655366错误:2812
TX数据包:3523278字节:6806058059错误:0
vif0 / 18操作系统:tap3214fc7e-88
类型:虚拟HWaddr:00:00:5e:00:01:00 IPaddr:0
Vrf:13标记:PL3L2 MTU:9160编号:6
RX数据包:60字节:4873错误:0
TX数据包:21字节:2158错误:0
表1:vif字段
vif输出字段 描述
vif0 / X vrouter分配的名称,其中0是路由器ID,X是分配给vrouter内接口的索引。
操作系统:pkt0 该pkt0(在这种情况下)是实际的OS(Linux)的可视化界面名的名称。对于物理接口,还会显示速度和双工设置。
类型:XXXXX 类型:虚拟HWaddr:00:00:5e:00:01:00 IPaddr:0
vrouter定义的接口类型和IP地址。这些值可能与操作系统中的值不同。vrouter定义的类型包括:
• 虚拟机(VM)的虚拟接口。
• 物理 - 物理接口(NIC)在系统中。
• 主机 - 面向主机的接口。
• Agent(代理) - 用于在需要为转发路径做出决策时将数据包捕获到vrouter代理的接口。
VRF:XXXXX Vrf:65535标记:L3 MTU:1514 Ref:2
分配接口的vrf的标识符,接口上设置的标志,vrouter可以理解的MTU以及有多少个别实体实际上拥有对接口的引用(主要是调试值)的引用计数。
标志选项标识为接口启用了以下功能:
• P - 政策
• L3 - 第3层转发
• L2 - 第2层桥接
• X - 交叉连接模式,仅在物理接口和主机接口上设置,表明数据包直接在物理设备和主机之间移动,而vrouter干预最少。当代理没有活着或状态不佳时通常设置。
• Mt - 镜像传输方向
• Mr - Mirroring接收方向
• Tc - 发送端的校验和卸载。仅在物理接口上有效。
RX RX数据包:60字节:4873错误:0
vrouter从这个界面收到的数据包。
TX TX数据包:21字节:2158错误:0
vrouter在这个接口上发送的数据包。
vif选项
使用vif --help显示可用于vif命令的所有选项。以下是对每个选项的简要说明。
注意: 除非您对系统实用程序非常熟悉,否则不建议使用以下选项。
#vif - 帮助
用法:vif [--create <intf_name> --mac
[--add <intf_name> --mac
--type [vhost | agent | physical | virtual] [ - policy,--mode <mode:x>]]
[--delete <intf_id>]
[--get <intf_id>] [ - 内核]
[--set <intf_id> --vlan <vlan_id> --vrf <vrf_id>]
[--list]
[ - 帮帮我]
选项 描述
- 创建 在主机内核上创建名为<intf_name>和mac
的“主机”接口。您在Linux上看到的'vhost0'接口是调用此命令的典型示例。 - 加 使用类型和标志选项将主机操作系统中的现有接口添加到vrouter。
- 删除 从vrouter删除接口。所述<intf_id>我 S作为由下式给出的虚拟路由器接口ID vif0 / X,其中X是独立同分布的
- 得到 显示特定的界面。所述<intf_id>是虚拟路由器接口ID,除非在命令由“-kernel”选项,在这种情况下,ID可以是内核ID追加。
- 组 设置接口的工作参数。唯一支持的是vlan id和vrf。vrouter所理解的vlan id与人们通常所期望的不同,并且与现在仅适用于服务实例的接口相关。
--list 显示vrouter知道的所有接口。 - 帮帮我 显示当前命令可用的所有选项。
流量命令
使用flow命令显示系统中的所有活动流。
例如:流量-l
使用-l列出流表中的所有内容。-l是唯一相关的调试选项。
#flow -l
流量表
索引源:端口目标:端口原点(V)
263484 1.1.1.252:1203 1.1.1.253:0 1(3)
(行动:F,S(nh):91,统计:22/1848)
379480 1.1.1.253:1203 1.1.1.252:0 1(3)
(行动:F,S(nh):75,统计:22/1848)
流表列表中的每条记录都显示记录的索引,源ip:source端口,目标ip:目标端口,inet协议以及流所属的源vrf。
每个新流程都必须经过vrouter代理商的批准。代理通过为每个流设置操作来完成此操作。有三个与流表项相关的主要操作:Forward('F'),Drop('D')和Nat('N')。
对于NAT,还有其他标志,指示流受到的NAT类型,包括:SNAT(S),DNAT(D),源端口转换(Ps)和目标端口转换(Pd)。
S(nh)表示用于RPF检查以验证流量来自已知源的源下游指数。如果数据包必须转到ECMP目标,则还会显示E:X,其中'X'表示通过ECMP下一跳内的索引使用的目标。
统计字段指示命中此流条目的分组/字节。
如果镜像流量是镜像索引字段,将索引列入镜像表(可使用镜像转储进行转储)。
如果前向流和反向流之间存在显式关联(与NAT相同),则每个记录中都会显示一个双箭头,其中箭头的任一侧显示该方向的流量索引。
例如:流量-r
使用-r查看所有流量设置速率。
#flow -r
新= 2,流量设定速率= 3次/秒,流速= 3次/秒,最后548毫秒
新= 2,流量设置速率= 3次/秒,流量= 3次/秒,最后543毫秒
新= 2,流量设定速率= -3流量/秒,流量= -3流量/秒,最后541毫秒
新的= 2,流量设定速率= 3流量/秒,流量= 3流量/秒,最后544毫秒
New = -2,流量设置速率= -3流量/秒,流量= -3流量/秒,最后542毫秒
例如:flow --help
使用--help显示流命令可用的所有选项。
#flow --help
用法:flow [-f flow_index] [ - d flow_index] [ - i flow_index]
[--mirror =镜像表索引]
[-l]
-f <flow_index>在flow_index <flow_index>处设置流的前向操作
-d <flow_index>在flow_index <flow_index>处为流设置放置操作
-i <flow_index>使flow_index <flow_index>的流无效
- 镜像索引镜像到
-l列出所有流程
-r开始卸料流量设置速度 - 帮助打印此帮助
vrfstats命令
使用vrfstats显示vrf的每个下一跳的统计信息。它通常用于确定数据包是否正在达到预期的下一跳。
例如:vrfstats --dump
该-dump选项可显示该所看到的所有流量的的VRF统计。在以下示例中,仅在Vrf 0(公共vrf)中存在流量。 Receives显示发往该位置的结构中的数据包数量。Encaps显示发往Fabric的数据包数量。
如果虚拟机流量在结构上流出,则相应的隧道计数器将增加。
#vrfstats --dump
Vrf:0
丢弃414,解决3,接收165334
Ecmp复合材料0,L3 Mcast复合材料0,L2 Mcast复合材料0,复合材料0,多元复合材料0
Udp隧道0,Udp Mpls隧道0,Gre Mpls隧道0
L2封装0,封装130955
例如:vrfstats --get 0
使用--get 0来检索特定vrf的统计信息。
#vrfstats --get 0
Vrf:0
丢弃418,解散3,接收166929
Ecmp复合材料0,L3 Mcast复合材料0,L2 Mcast复合材料0,复合材料0,多元复合材料0
Udp隧道0,Udp Mpls隧道0,Gre Mpls隧道0
L2封装0,封装132179
例如:vrfstats --help
用法:vrfstats --get
- 倾倒
- 帮帮我
--get
--dump显示所有vrfs的数据包统计信息
--help显示此帮助消息
rt命令
使用rt命令显示vrf中的所有路由。
例如:rt --dump
以下示例显示vrf 0的inet族路由。
#rt - 转储0
内核IP路由表0/0 /单播
目标PPL标志标签Nexthop
0.0.0.0/8 0 - 5
1.0.0.0/8 0 - 5
2.0.0.0/8 0 - 5
3.0.0.0/8 0 - 5
4.0.0.0/8 0 - 5
5.0.0.0/8 0 - 5
在此示例输出中,第一行显示正在转储的路由表。在0/0 /单播中,前0表示路由器ID,后0表示vrf id,单播表示单播表。vrouter为单播和多播路由维护单独的表。默认情况下,如果未指定-table选项,则只转储单播表。
表输出中的每条记录都指定目标前缀长度,此路由已扩展的父路由前缀长度,路由的标志,目标为另一位置中的VM的MPLS标签以及下一跳ID。要理解第二个字段“PPL”,最好记住单播路由表在内部实现为“mtrie”。
该标志字段有两个值。L表示标签字段有效,H表示vroute应该为该IP代理arp。
该下一跳字段表示下一跳ID到路线点。
例如:rt --dump --table mcst
转储组播表,使用-table与选项MCST作为参数。
#rt - 转储0 - 表mcst
内核IP路由表0/0 /多播
(Src,Group)Nexthop
0.0.0.0,255.255.255.255
dropstats命令
使用dropstats命令查看vrouter中的数据包丢弃计数器。
例如:dropstats
#dropstats
GARP 0
ARP注释12904
无效的ARP 0
IF 0无效
陷阱编号IF 0
如果TX丢弃0
IF掉49
IF RX舍弃0
流量不可用0
流量无记忆0
流量表已满0
流NAT没有rflow 0
流动作用下降0
流动作无效0
流程无效协议0
流队列限制超出0
丢弃34
TTL超过了0
Mcast Clone失败0
克隆原始0
无效的NH 2
无效的标签0
无效的协议0
重写失败0
无效的播送源0
推送失败0
拉不合格0
重复0
Head Alloc失败0
头部空间预留失败0
PCOW失败0
无效数据包0
杂项0
无处可去0
校验和错误0
没有Fmd 0
Ivalid VNID 0
片段错误0
无效的来源0
dropstats ARP Block
来自VM的GARP数据包被vrouter丢弃,这是一种预期的行为。在示例输出中,第一个计数器GARP指示丢弃了多少包。
例如,对不是vrouter处理的ARP请求将被丢弃,例如对不是主机的系统的请求。这些下降由ARP计数器计数。
该无效的ARP当以太网协议是ARP计数器被递增,但ARP操作既不是请求也不响应。
dropstats接口块
无效的IF计数器在瞬态条件下正常递增,并且不应该担心。
Trap没有IF计数器在vrouter无法找到将数据包捕获到路由器代理的接口时递增,并且不应该在工作系统中发生。
IF发送丢弃和IF接收丢弃计数器在vrouter不处于发送和接收数据包的状态时递增,并且通常在vrouter进入重置状态或模块卸载时发生。
IF Drop计数器指示在接口层中丢弃的数据包。当接口设置错误时,增加通常会发生。
Dropstats Flow Block
当数据包通过流处理时,流中的第一个数据包将被缓存,vrouter代理将被通知,以便可以根据配置的策略对数据包执行操作。如果有更多的数据包在第一个数据包之后到达,但代理在第一个数据包做出决定之前到达,那么这些新的数据包将被丢弃。丢弃的数据包由Flow不可用计数器跟踪。
如果流程块没有足够的内存来执行内部操作,Flow No Memory计数器会递增。
该流量表全部计数器递增,当虚拟路由器无法安装新的流程,由于缺乏可用的插槽。一个特定的流只能在某些时隙中进行,如果所有这些时隙都被占用,则数据包将被丢弃。流表可能未满,但计数器可能增加。
该流程NAT没有rflow计数器跟踪时,有一个正向流动是有动作设定NAT关联的反向流动被丢弃的数据包。对于NAT,vrouter需要正确设置正向和反向流量。如果它们没有设置,数据包将被丢弃。
该流程操作丢弃计数器跟踪那些由于禁止流动政策丢弃的数据包。
该流动作无效计数器通常不会在正常的时间进程递增,可以忽略不计。
该流程无效协议通常不会在正常的时间进程递增,可以忽略不计。
该流队列超限通常是在正常的时间进程不增加,可以忽略不计。
dropstats其他操作块
该丢弃计数器跟踪袭击丢弃下一跳的数据包。由于代理解释的各种原因以及在某些瞬态条件下,路由可以指向丢弃下一跳。当数据包击中该路线时,它们被丢弃。
该TTL超时时,MPLS时间到现场去零计数器递增。
该MCAST克隆失败时,虚拟路由器无法复制数据包的洪水发生。
该克隆原来是一个内部跟踪计数器。这是无害的,可以忽略。
该无效的NH计数器跟踪击中的下一跳,这不是在一个状态下使用(通常在瞬态条件下)或下一这是不期望跳,或没有下一跳时,有预期的下一跳的分组的数目。这种增量很少发生,并且不应该连续增加。
该标签无效,因为该值不在预期范围计数器跟踪数据包与MPLS标签通过虚拟路由器无法使用。
的无效协议典型地递增当IP头已损坏。
该重写失败计数器跟踪的时候虚拟路由器无法下一跳重写数据写入到数据包的数量。
该无效MCAST来源跟踪,从一个未知的或意外的来源,并且因此被丢弃的组播数据包。
该源无效计数器跟踪,从一个无效的或意外的来源,并且因此被丢弃的数据包的数量。
剩下的柜台只对开发商有价值。
mpls命令
的MPLS实用程序命令显示已在虚拟路由器被编程输入标签地图。
例如:mpls --dump
该-dump命令可以将完整的标签映射。输出分为两列。第一个字段是标签,第二个字段是与标签相对应的下一个跃点。当具有指定标签的MPLS分组到达vrouter时,它使用该标签对应的下一跳转发该分组。
#mpls -dump
MPLS输入标签映射
标签NextHop
16 9
17 11
您可以按照以下步骤检查第9小时的操作:
#nh --get 9
Id:009类型:Encap Fmly:AF_INET标记:有效,政策,摆脱:0 Ref_cnt:4
EncapFmly:0806 Oif:3 Len:14数据:02 d0 60 aa 50 57 00 25 90 c3 08 69 08 00
nh输出表明下一跳指示数据包在具有给定重写数据的索引3(Oif:3)的接口上出去。
要检查索引3,请使用以下命令:
#vif -get 3
vif0 / 3操作系统:tapd060aa50-57
类型:虚拟HWaddr:00:00:5e:00:01:00 IPaddr:0
Vrf:1标记:PL3L2 MTU:9160编号:6
RX数据包:1056字节:103471错误:0
TX数据包:1041字节:102372错误:0
所述-get 3输出显示的3索引对应于一个抽头接口进到VM。
您还可以使用-get选项转储映射中的单个条目,如下所示:
#mpls -get 16
MPLS输入标签映射
标签NextHop
16 9
例如:mpls -help
#mpls -help
用法:mpls --dump
mpls --get <label>
mpls --help
--dump转储mpls传入的标签映射
--get转储对应于标签
--help打印此帮助信息
镜像命令
使用mirror命令转储镜像表项。
示例:检查镜像
以下示例检查将流量从网络vn1(1.1.1.0/24)镜像到网络vn2(2.2.2.0/24)的镜像配置。ping从1.1.1.253运行到2.2.2.253,其中两个IP都是有效的VM IP,然后列出流表:
#flow -l
流量表
索引源:端口目标:端口原点(V)
135024 2.2.2.253:1208 1.1.1.253:0 1(1)
(行动:F,S(nh):17,统计:208/17472镜像索引:0)
387324 1.1.1.253:1208 2.2.2.253:0 1(1)
(行动:F,S(nh):8,统计:208/17472镜像索引:0)
在示例输出中,列出了镜像索引:0,它是镜像表的索引。镜像表可以使用-dump选项转储,如下所示:
#镜像 - 转储
镜子表
索引NextHop标志参考
0 18 3
镜像表条目指向下一跳。在该示例中,索引0指向下一个跃点18.“ 引用”表示指向此条目的流条目的数量。
如下执行ID 18上的下一跳获取操作:
#nh - get 18
Id:018类型:隧道Fmly:AF_INET标记:有效,Udp,摆脱:0 Ref_cnt:2
Oif:0 Len:14 Flags Valid,Udp,Data:00 00 00 00 00 00 00 25 90 c3 08 69 08 00
Vrf:-1 Sip:192.168.1.10 Dip:250.250.2.253
运动:58818 Dport:8099
该NH --get输出显示镜像包去与IP 250.250.2.253的系统。数据包通过UDP数据报隧道发送到目的地。Vrf:-1表示必须在目标的源Vrf中执行查找。
您还可以使用-get选项获取单个镜像表项,如下所示:
#镜像 - 获取10
镜子表
索引NextHop标志参考
10 1 1
例如:镜像 - 帮助
#镜像 - 帮助
用法:镜像 - 转储
镜像 - 获取<索引>
镜子 - 帮助
- 转储转储镜像表
--get转储对应索引
--help打印此帮助信息
vxlan命令
vxlan命令可用于转储vxlan表。vxlan表将网络ID映射到下一跳,类似于MPLS表。
如果数据包带有vxlan头,并且VNID是表中的其中一个,则vrouter将使用标识为转发数据包的下一个跃点。
例如:vxlan --dump
#vxlan --dump
VXLAN表
VNID NextHop
4 16
5 16
例如:vxlan --get
您可以使用-get选项转储特定条目,如下所示:
#vxlan --get 4
VXLAN表
VNID NextHop
4 16
例如:vxlan --help
#vxlan --help
用法:vxlan --dump
vxlan --get <vnid>
vxlan - 帮助
--dump转储vxlan表
--get转储对应于
--help打印此帮助信息
nh命令
该NH命令允许你检查了由虚拟路由器称为下一跳。下一跳通知vrouter下一个位置在通往其最终目的地的路径上发送数据包。数据包的处理根据下一跳的类型而不同。下表描述了下一跳类型。
下一跳类型 描述
接收 表明数据包是为其自己发送的,vrouter应执行第4层协议处理。例如,发往主机IP的所有数据包都将在默认VRF中接收下一跳。同样,所有发往服务器托管的并且在GRE内隧道传输的流量的流量都将首先到达默认VRF中的接收下一跳,因为承载流量到VM的外部数据包是服务器的流量。
Encap(接口) 仅用于确定传出接口和第2层信息。例如,当同一台服务器上的两台虚拟机相互通信时,每台虚拟机的路由指向一个封装下一跳,因为所需的唯一信息是将数据包发送到目标的分接口的第2层信息VM。在隧道处理之后,去往不同服务器上的VM上托管在一个服务器上的VM的分组也将在下一跳中达到封装。
隧道 将VM流量封装在隧道中,并将其发送到承载目标VM的服务器。根据所使用隧道的类型,有不同类型的隧道下一跳。Vrouter为三层流量支持两种主要隧道类型:MPLSoGRE和MPLSoUDP。对于第2层流量,使用VXLAN隧道。典型的隧道下一跳表示隧道种类,重写信息,出接口以及源和目标服务器IP。
丢弃 全面的下一跳。如果没有目的地的路由,则数据包击中丢弃下一跳,从而丢弃数据包。
解决 代理程序用于懒惰地安装第2层重写信息。
综合 分组下一跳,称为组件下一跳或下一跳。通常在需要多目标分发时使用,例如,用于多播,ECMP等。
VXLAN VXLAN隧道用于第2层流量。典型的隧道下一跳表示隧道种类,重写信息,出接口以及源和目标服务器IP。
例如:nh --list
Id:000类型:掉落Fmly:AF_INET标记:有效,去掉:0 Ref_cnt:1781
Id:001类型:解析Fmly:AF_INET标志:有效,解除:0 Ref_cnt:244
Id:004类型:接收Fmly:AF_INET标志:有效,政策,摆脱:0
Ref_cnt:2 Oif:1
Id:007类型:Encap Fmly:AF_INET标志:有效,多播,摆脱:0 Ref_cnt:3
EncapFmly 0806 Oif 3 Len 14数据:
Id:010类型:Encap Fmly:AF_BRIDGE标记:有效,L2,摆脱:0 Ref_cnt:3
EncapFmly:0000 Oif:3 Len:0数据:
Id:012类型:Vxlan Vrf Fmly:AF_INET标记:有效,去掉:0 Ref_cnt:2
VRF:1
Id:013类型:复合材料:AF_INET标记:有效,布料,摆脱:0 Ref_cnt:3
Sub NH(标签):19(1027)
Id:014类型:Composite Fmly:AF_INET标志:有效,多播,L3,摆脱:0 Ref_cnt:3
Sub NH(标签):13(0)7(0)
Id:015类型:Composite Fmly:AF_BRIDGE标记:有效,多播,L2,摆脱:0 Ref_cnt:3
Sub NH(标签):13(0)10(0)
Id:016类型:Tunnel Fmly:AF_INET标志:有效,MPLSoGRE,Rid:0 Ref_cnt:1
Oif:2 Len:14 Flags Valid,MPLSoGRE,Data:00 25 90 aa 09 a6 00 25 90 c4 82 2c 08 00
Vrf:0 Sip:10.204.216.72 Dip:10.204.216.21
Id:019类型:Tunnel Fmly:AF_INET标志:Valid,MPLSoUDP,Rid:0 Ref_cnt:7
Oif:2 Len:14标志有效,MPLSoUDP,数据:00 25 90 aa 09 a6 00 25 90 c4 82 2c 08 00
Vrf:0 Sip:10.204.216.72 Dip:10.204.216.21
Id:020类型:复合Fmly:AF_UNSPEC标记:有效,多项,反转:0 Ref_cnt:2
Sub NH(标签):14(0)15(0)
例如:nh --get
使用--get选项显示单个下一跳的信息。
#nh -get 9
Id:009类型:Encap Fmly:AF_BRIDGE标志:有效,L2,摆脱:0 Ref_cnt:4
EncapFmly:0000 Oif:3 Len:0数据:
例如:nh - 帮助
#nh -help
用法:nh --list
nh --get <nh_id>
恩 - 帮助
--list列出所有Nexthops
--get <nh_id>显示对应于<nh_id>的下一跳
--help显示此帮助消息