3526转发流程原理文档格式.docx
- 文档编号:21049494
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:24
- 大小:108.71KB
3526转发流程原理文档格式.docx
《3526转发流程原理文档格式.docx》由会员分享,可在线阅读,更多相关《3526转发流程原理文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
对于IP报文来说,转发过程中需要被路由的报文的源、目的MAC地址要作某些修改。
被路由报文中目的MAC地址将被替换为目的下一跳入口中的MAC地址。
而同一路由域接口中被交换的报文则无需这样的替换。
图1-2三层转发流程示意图
图中蓝色线表示3526收到的几种三层报文,其中FIB表可以用displayfib查看,ARP表可以用displayarp查看,硬件IP转发表可以用displayipfdball查看。
1.2.2IP转发表项学习
通过获取IP地址表所需的相关参数,用该IP地址表查找FIB表,获得最长匹配的下一跳IP和出接口,并用该下一跳IP地址去查找ARP表获得其对应的MAC地址、出接口,从而将该IP地址及相关信息学习到硬件地址表中,同时更新地址表中和ARP地址相关的表项。
对于学习到的IP地址,以一定数据结构存储在硬件IP地址表中。
地址表项中维护着报文三层转发的IP地址、端口号、下一跳对应的MAC地址。
当3526学习到转发过程所需的地址表项后,三层报文都将由硬件自动完成转发,无需软件处理。
具体地址表学习过程可以参考图1-2。
需要注意FIB表、ARP表、硬件IP转发表的关系,FIB表支持最长匹配查找,而硬件IP转发表只支持精确匹配查找,可以认为
硬件IP表项内容=从fib表查到的下一跳IP+下一跳IP在arp表中对应的mac和端口;
可以看出fib表中一个网段路由下如果有100台主机,就需要在硬件转发表中生成100条转发表项,这也是为什么在3526受到大量目的IP变化的报文攻击的时候会出现硬件IP转发表满的原因。
2
常用的调试命令
displaydiagnostic-information可以保存研发人员定位问题的关键信息,这个命令比较常用就不介绍了。
2.1查看CPU收发报文
下面几个调试命令可以在交换机受到攻击,CPU占用率很高时,查看攻击交换机的报文内容。
2.1.1debugnipacket_tocpuque[portnum]
查看CPU普通报文队列收到的报文,比如ARP报文
<
3526>
*0.34186783526DRV_NI/8/CpuQue:
CPUHeader:
00042ed20001804000001911
decodetoCPUpackets:
Len:
64
QueueNum:
0
RoutingDomain:
Bits:
Mod:
IpType2
IsRouted:
No
Prtcl:
Ip
IsTagged:
CrcError:
RxPort:
1<
-
(1)
CpuCode:
(25)25.ARPorRARPpacketwhoseethernetaddressisrouter'
saddress.
PrtclCarried:
(17)ARP
DecodedEvId:
(54)L2Arp
*0.34191673526DRV_NI/8/CpuQue:
Dst00e0fc800000
Src0050ba5954f6
*0.34192683526DRV_NI/8/CpuQue:
Addr+0+1+2+3+4+5+6+7+8+9+A+B+C+D+E+F
*0.34193693526DRV_NI/8/CpuQue:
0000:
00e0fc8000000050ba5954f608060001
*0.34194703526DRV_NI/8/CpuQue:
0010:
0800060400020050ba5954f601010102
*0.34195713526DRV_NI/8/CpuQue:
0020:
00e0fc80000001010101202020202020
*0.34196723526DRV_NI/8/CpuQue:
0030:
20202020202020202020202076c63c66
*0.34197733526DRV_NI/8/CpuQue:
aToCPUpacketof64bytesend!
2.1.2debugnipacket_tosockque[portnum]
显示所有协议处理的报文,包括发送和接收的
*0.36808143526DRV_NI/8/SockQue:
IPRD_ResolveRoute:
RcvPktfromUnreQue3,Port:
2,Length:
64,prccl:
17
*0.36809463526DRV_NI/8/SockQue:
ffffffffffff0050ba5954f608060001
0800060400010050ba5954f601010102
00000000000001010101202020202020
202020202020202020202020898dd2ac
*0.36812383526DRV_NI/8/SockQue:
NI_PortTx:
XmitPktfromPort:
2,sendMode:
0
*0.36813303526DRV_NI/8/SockQue:
0050ba5954f600e0fc80000081000001
0806000108000604000200e0fc800000
010101010050ba5954f6010101022020
20202020202020202020202020202020
2.1.3debugnipacket_tounrque[portnum]
显示送到未解析队列的报文
*0.39697033526DRV_NI/8/UnrQue:
UNRHeader:
000430c3830180400000f091
decodeunresolvedpackets:
ActualLen:
60
DeliveredLen:
3
Ipx802p2
XferSize:
(2)Complete
1
SrcUnrCode:
(8)ARPsourceaddressunresolved
DstUnrCode:
(15)Resolved
*0.39701583526DRV_NI/8/UnrQue:
Dstffffffffffff
*0.39702593526DRV_NI/8/UnrQue:
*0.39703613526DRV_NI/8/UnrQue:
*0.39704623526DRV_NI/8/UnrQue:
*0.39705633526DRV_NI/8/UnrQue:
*0.39706643526DRV_NI/8/UnrQue:
*0.39707653526DRV_NI/8/UnrQue:
anunresolvedpacketof64bytesend!
2.2查看硬件路由转发表
2.2.1displayipfdball
该命令显示所有硬件转发表中的表项,也可以选择查找某个目的IP对应的转发表项
Ipfdbentryinformationincludingthefollowingfields:
Note:
thevalueofStatusfield
0:
System1:
Learned2:
UsrCfgAge3:
UsrCfgnoAgeOther:
Error
IpAddressRtIfVTagVTValidPortMacStatus
1.1.1.111InvalidCPU00e0-fc80-00003
1.1.1.211InvalidEthernet0/20050-ba59-54f62
2.2.2.122InvalidCPU00e0-fc80-00013
2.2.2.222InvalidEthernet0/2200e0-fc12-35541
2.3查看CPU占用情况
2.3.1displaycpu
该命令可以在用户模式下执行,显示结果如下
CPUbusystatus:
11%inlast5seconds
11%inlast1minute
11%inlast5minutes
2.3.2displaytask
该命令必须在隐藏模式下执行,占用CPU时间CPUTime:
10/135,分子10为当前占用的时间,分母135为启动以来占用CPU最长的时间;
如果在CPU占用率高的情况时当前占用CPU时间最长的任务就是有问题的任务。
[3526-hidecmd]distask
IDNamePriorityStatusCPUTime
1WEIL10Ready5/21
2SYST180Ready0/1
3XMON140EventSem0/0
4UtlT253Sem0/10
5PhyC245Sem3/10
6Unre230Sem2/3
7Call240Delay0/1
8Conf230Sem1/30
9Agin230Sem7/10
10Prin252Delay0/1
11Excp55Ready0/1
12Fire55Suspend0/0
13STND100EventSem0/0
14Au0100Ready0/173
15INFO100EventSem1/4
16ROUT100EventSem0/34
17FIB100EventSem1/1
18SOCK100EventSem0/1961
19VTYD100EventSem0/4
20RDSO100EventSem0/1
21RDS100Delay0/74
22ACM100Delay1/15
23LSSO100EventSem0/1
24LS100QueueSem0/51
25AGNT100EventSem0/8257
26TRAP100QueueSem0/1
27CLST100Delay0/1
28NTDP100Delay0/1
29HABP100QueueSem0/2
30MDMT100QueueSem0/1
31NTPT100Delay0/2
32CFM100QueueSem0/3
33DT1X100Delay0/2
34MCAS100Delay1/3
35rcvT140Sem1/3
36xmiT140Sem1/7
37VRRP100EventSem2/2
38DHCP100EventSem0/1
39DEV100EventSem0/1
40HTTP160Delay0/1
41VLAN100EventSem0/1
42RSTP100EventSem1/1
43RMON100QueueSem0/1
44HgpS100EventSem0/1
45NDP100EventSem0/6
3Qos/ACL应用注意事项
3.1概述
配置模块:
QoS/ACL
该模块特性为LANSWITCH提供了增强的安全性以及QoS保证的多业务支持。
QoS/ACL特性建立在流分类的基础上,提供了以下功能:
(1)过滤(filter),报文的丢弃;
(2)镜像(mirror),拷贝整个包并发送给其他端口;
(3)优先级选择(priority),映射至多个COS队列;
(4)带宽管理,提供基本带宽,峰值带宽等配置;
(5)支持端到端的基于字节和包数目的统计功能
3526在版本3526-0011以后已经不再支持流限速(car)。
3526对于包过滤只支持deny操作,不支持permit,更不要将二者合起来使用。
该特性为LANSWITCH实现了以下应用:
(1)访问控制
对通过LANSWITCH的业务流量按配置规则进行流分类,然后进行过滤检查,对匹配规则的流量进行访问控制操作:
丢弃操作(deny);
访问控制完全支持禁止表,部分支持允许表(参考后续说明);
例1允许表:
实现严格的安全检查,只允许特定主机的特定业务流量通过交换机,其余流量缺省全部丢弃;
例2禁止表,实现过滤的安全检查,匹配过滤规则的业务流,通过Quidway3526时被丢弃,其余流量缺省全部转发;
流分类规则对IXE2412芯片,L2层可以基于PORT,MAC的组合;
L3/L4层可以基于IP、NET(IP/Mask)、L4PORT的组合;
(2)报文镜像
将匹配规则的业务流复制到指定的输出端口,用于报文分析和监视,业务流还可以进一步区分为输入(ingress)或输出(egress)流,镜像时可以选择其一或者两种都选;
例如,可以将GE端口上的RSVP报文镜像一个FE口,通过FE口上连接的协议分析仪进行测试记录。
在接口管理模块提供简化的端口镜像命令,能满足大部分需求,同时操作简便快捷;
QACL模块可以提供更复杂的基于流分类规则的镜像功能。
(3)QoS配置
对匹配不同规则的业务流的输出可以分别指定不同的优先级和带宽;
通过配置输出队列的调度算法和参数配置以及优先级,可以实现对指定业务流的QoS配置。
QuidwayS3526交换机对于QACL部分的实现是通过对各种流分类进行匹配来实现访问控制和带宽管理的。
由于受到交换芯片的硬件限制,该交换机的流分类分为L2和L3/L4两大类。
流分类规则对IXE2412芯片,L2层规则可以基于PORT、MAC的组合。
例如,可以配置源--目的对流规则:
MAC--MAC、MAC--PORT、PORT--PORT、MAC--ANY、ANY--MAC、PORT--ANY、ANY--PORT等;
L3/L4层规则可以基于IP、NET、L4PORT的组合。
例如,IP--IP、IP--NET、NET--NET、IP--ANY、ANY--IP、NET--ANY、ANY--NET等。
同时可以在每个IP地址的基础上,进行L4PORT(socket)的限制。
具体的配置可以见配置手册。
3.2详细描述
在这部分中主要从ACL访问控制、报文镜像、QOS带宽管理、CAR流量限制及统计四个方面来说明。
3.2.1ACL访问控制
这部分主要是配置ACL规则来实现访问禁止和特殊业务的访问允许。
对于在同一个VLAN内的不同MAC或PORT之间的访问禁止,可以配置L2层的7种过滤规则。
对于二层规则来说,不能配置对于特定协议的过滤。
对于不在同一个VLAN内的主机或网段之间的访问禁止,可以配置L3层的7种过滤规则。
但是在配置ACL的RULE时,RULE的命名不能是二层规则和三层规则的名称一样,如果一样,虽然上层命令行不会返回错误,但是在将规则下发时将返回下发规则失败。
比如,定义一个二层规则RULE名为R1,再定义一个三层规则名为R1,则在将规则下发时将返回失败。
对于不同网段之间的ACL访问控制,目前实现的有:
IP--IPIP--NETNET--NET
这三种流分类规则可以直接配置,完成相互之间的访问禁止,这种规则是双向作用的。
同时,也可以指定对某种特殊协议报文(TCPUDPICMP)的过滤。
如果指定IP1--IP2TCP的过滤,则IP1和IP2之间相互通讯时只有TCP的报文会被过滤。
如果需要对某个IP地址的L4端口号进行限制,则可以给该IP地址配上SOCKET端口号。
但是,给一个IP地址配置的SOCKET端口号总共不能超过31个。
这31个端口号可以是连续配置的,如配置IP1的端口号从100到131,也可以一个个地配置。
如果超过31个则该规则不会起作用。
如:
可以配置:
IP1SOCKET23----IP2DENY
IP1SOCKET30----IP2DENY
IP1SOCKET100---IP3DENY
IP1SOCKET200TO220---IP3DENY
该端口号可以自动的实现累加,只要超过31则规则失效。
同时,对于源和目的IP(NET)地址只能有一方可以配置四层端口号,不允许同时配置上四层端口号。
对于IP--ANYANY--IPNET--ANYANY--NET,他们都是单向的规则,不能反向起作用。
同时他们不能配置对某种特定协议的过滤。
也就是说,不能指定某台主机到任何主机之间的TCP协议报文被过滤,只能是某台主机到任何主机之间的任何报文都被过滤。
对于网段也是如此。
对于四层端口号的配置与上面三种规则约束相同。
同时,芯片支持对特定业务的允许访问。
如配置:
IP1--IP2DENY
IP1SOCKET100130--IP2COS0(指定到队列0)
则从IP1的端口号在100到130之间的到IP2的报文可以顺利到达IP2,其他报文都被过滤。
也就是说,如果配置了两条规则,并且小范围(或同样范围)的规则配置了四层端口号,则该小范围规则正常生效。
如果没有配置四层端口号,则过滤规则优先起作用。
NET1---NET2DENY
NET1---NET2MIRROR(或COS动作)
则网段1和网段2之间互不通。
对于ACL访问控制,最多可以配置64个不同的IP或NET。
这些IP(NET)之间可以相互配置规则禁止访问。
同时,不允许配置本交换机上的某一主机到本交换机上的VLAN接口之间的规则。
也就是说本交换机上的VLAN接口不能作为规则的源或目的地址。
3.2.2报文镜像
报文镜像同样可以在L2和L3之间配置。
其能实现的配置和需要限制使用的措施与ACL访问禁止一样。
3.2.3带宽管理
带宽管理分为严格优先级模式和加权队列模式两种,可以在命令行上配置。
1、在严格优先级模式下,若高优先级队列的发送速度没有达到其端口的线速,则其它较低一级的优先级报文依次发送,但是其数据可能会由于带宽不足而丢失。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3526 转发 流程 原理