因此交换机区分二三层报文的标准就是看报文的目的MAC地址是否等于交换机虚接口上的MAC 地址。
以华为S3526 交换机为例,三层交换机整个处理流程中分成了三个大的部分:
1)平台软件协议栈部分
这部分中关键功能有:运行路由协议,维护路由信息表;
IP 协议栈功能,在整个系统的处理流程中,这部分担负着重要的功能,当硬件不能完成报文转发的时候,这部分可以代替硬件来完成报文的三层转发。另外对交换机进行telnet, ping, ftp,snmp 的数据流都是在这部分来处理。
举例:
show ip route:
Routing Tables:
Destination/Mask Proto Pre Metric Nexthop Interface
0.0.0.0/0 Static 60 0 10.110.255.9 VLAN-Interface2
10.110.48.0/21 Direct 0 0 10.110.48.1 VLAN-Interface1
10.110.48.1/32 Direct 0 0 127.0.0.1 InLoopBack0
10.110.255.8/30 Direct 0 0 10.110.255.10 VLAN-Interface2
10.110.255.10/32 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoopBack0
华为认证技术文章
7
维护ARP 表
show arp:
IpAddress Mac_Address VLAN ID Port Name Type
10.110.255.9 00e0.fc00.5518 2 GigabitEthernet2/1 Dynamic
10.110.51.75 0010.b555.f039 1 Ethernet0/9 Dynamic
10.110.54.30 0800.20aa.f41d 1 Ethernet0/10 Dynamic
10.110.51.137 0010.a4aa.fce6 1 Ethernet0/12 Dynamic
10.110.50.90 0010.b555.e04f 1 Ethernet0/8 Dynamic
2)硬件处理流程
主要的表项是:二层MAC 地址表,和三层的ip fdb 表,这两个表中用于保存转发信息,在转发信息比较全的情况下,报文的转发和处理全部由硬件来完成处理,不需要软件的干预。 这两个表的功能是独立的,没有相互的关系,因为一个报文只要一进入交换机,硬件就会区分出这个包是二层还是三层。非此即彼。
例如:show mac all:
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
0000.21cf.73f4 1 Learned Ethernet0/19 266
0002.557c.5a79 1 Learned Ethernet0/12 225
0004.7673.0b38 1 Learned Ethernet0/9 262
0005.5d04.9648 1 Learned Ethernet0/16 232
0005.5df5.9f64 1 Learned Ethernet0/16 300
MAC 地址表是精确匹配的IVL 方式, 其中关键的参数是:Vlan ID, Port
index.
例如:show ipfdb all:
0: System 1: Learned 2: UsrCfg Age 3: UsrCfg noAge Other: Error
Ip Address RtIf Vtag VTValid Port Mac Status
10.11.83.77 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.11.198.28 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.63.32.2 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 1
10.72.255.100 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
华为认证技术文章
8
10.75.35.103 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
10.75.35.106 2 2 Invalid GigabitEthernet2/1 00-e0-fc-00-55-18 2
路由接口索引(RtIf):该索引用来确定该转发表项位于哪个路由接口下面,对3526 产品来讲,支持的路由接口数目是32;
Vlan tag: 该值用来表明所处的VLAN,该VLAN 和路由接口是对应的;
Vlan tag 有效位(VTValid):用来标识转发出去的报文中是否需要插入
Vlan tag 标记。
端口索引(Port):用来说明该转发表项的出端口;
下一跳MAC:三层设备每完成一跳的转发,会重新封装报文中的MAC头,硬件ASIC 芯片一般依据这个域里面的数值来封装报文头。
两个重要的概念:
解析,未解析,每次收到报文,ASIC 都会从其中提取出源和目的地址在MAC Table 或者 IP Fdb Table 中进行查找,如果地址在转发表中可以找到,则认为该地址是解析的,如果找不到,则认为该地址是未解析的。根据这个地址是源,还是目的,还可以有源解析,目的未解析等等的组合。对于二层未解析,硬件本身可以将该报文在VLAN 内广播,但是对于三层报文地址的未解析报文硬件本身则不对该报文进行任何的处理,而产生CPU 中断,靠软件来处理。
硬件部分的处理可以用这句话来描述:
收到报文后,判断该报文是二或是三层报文,然后判断其中的源,目的地址是否已经解析,如果已经解析,则硬件完成该报文的转发,如果是未解析的情况,则产生CPU 中断,靠软件来学习该未解析的地址。
3)驱动代码部分
其中关键的核心有:
地址解析任务:在该任务中对已经报上来的未解析的地址进行学习,以便硬件完成后续的报文的转发而不需软件干预。
地址管理任务:为了便于软件管理和维护,软件部分保存了一份同硬件中转发表相同的地址表copy.
华为认证技术文章
9
fib(forwarding information base)表: 这个表的信息来源于ip route table 中的路由信息,之所以把它放在了driver 部分, 是为了地址解析任务在学IP 地址时查找的方便。
举例:
show fib:
Destination/Mask Nexthop Flag Interface
0.0.0.0/0 10.110.255.9 I VLAN-Interface2
10.110.48.0/21 10.110.48.1 D VLAN-Interface1
10.110.48.1/32 127.0.0.1 D InLoopBack0
10.110.255.8/30 10.110.255.10 D VLAN-Interface2
10.110.255.10/32 127.0.0.1 D InLoopBack0
127.0.0.0/8 127.0.0.1 D InLoopBack0
三层转发主要涉及到两个关键的线程:
地址学习线程和报文转发线程,这个和二层的线程是类似的;
1)报文转发线程主要根据地址学习线程生成的转发表(ipfdb table)信息来对报文进行转发,如果里面的信息足够多,这个转发的过程全部由硬件来完成,如果信息不够,则会要求地址学习线程来进行学习,同时该报文硬件不能转发,会交给软件协议栈来进行转发。
2)地址学习线程主要用来生成硬件转发表(ipfdb table)其实ipfdb table 和二层的MAC 地址表也是类似的,只不过里面的具体表项所代表的含义和所起的作用不同罢了。
有一个问题:在路由器等软件转发引擎中,每收一个报文都会去查路由表查下一跳,然后再查ARP 表找下一跳的MAC,可是在三层交换机(如S3526)中,报文转发的时候不需要去查路由表和ARP 表,这样的话,这两个表是不是就没有什么作用了?
回答当然是否定的,在S3526 的三层转发流程中,过程一般都是这样的,第一个报文硬件无法转发,要进行IP 地址的学习,同时为了保证不丢包,该报文也由软件来进行转发,在学习完成以后,第二,第三个报文以华为认证技术文章
10
后就一直是由硬件来完成转发了,这个过程也可以套用"一次路由,多次交换"来形象的进行总结,在一次路由中,要利用路由表和ARP 表来学习IP 地址,和转发第一个报文,在以后的多次交换过程中,则只要有ipfdb table 就可以了。
路由器网络接口解析大全
[Quidway-acl-adv-100]rule deny udp source any destination any destination-port eq 1434
[Quidway]packet-filter ip-group 100
3526产品的配置:
旧命令行配置如下:
rule-map l3 r1 0.0.0.0 0.0.0.0 1.1.0.0 255.255.0.0 eq 1434
flow-action f1 deny
acl acl1 r1 f1
access-group acl1
国际化新命令配置如下:
acl number 100
rule 0 deny udp source 0.0.0.0 0 source-port eq 1434 destination 1.1.0.0 0
packet-filter ip-group 101 rule 0
注:3526产品只能配置外网对内网的过滤规则,其中1.1.0.0 255.255.0.0是内网的地址段。
8016产品的配置:
旧命令行配置如下:
8016(config)#rule-map intervlan aaa udpanyany eq 1434
8016(config)#acl bbb aaa deny
8016(config)#access-group acl bbb vlan 10 port all
国际化新命令行配置如下:
8016(config)#rule-map intervlan aaa udpanyany eq 1434
8016(config)#eacl bbb aaa deny
8016(config)#access-group eacl bbb vlan 10 port all
华为交换机相关文章:
1.H3C华为交换机端口绑定基本配置
2.华为交换机路由器配置实例2016
3.2016年华为交换机基本配置命令
4.华为交换机的启动及基本配置实验
5.华为交换机Catalyst8500配置实例
6.2016年华为交换机设置经典案例
7.华为交换机常用命令2016最新
8.华为交换机之间静态路由配置实例2016最新
9.华为交换机Tracert命令的使用方法
10.华为交换机配置命令