一、复习网络基础知识:
1、Access接口特点:
①仅允许VLAN ID与接口PVID相同的数据帧通过。
②Access接口接收数据帧:
当Access接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃)。
当Access接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同,则对这个Tagged帧进行转发操作;如果不同,则直接丢弃这个Tagged帧。
③Access接口发送数据帧:
当一个Tagged帧从本交换机的其他接口到达一个Access接口后,交换机会检查这个帧的Tag中的VID是否与PVID相同:
如果相同,则将这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
如果不同,则直接丢弃这个Tagged帧。
2、Trunk接口特点:
①Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过。
Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
②Trunk接口接收数据帧:
当Trunk接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在允许通过的VLAN ID列表中。如果在,则对得到的Tagged帧进行转发操作;如果不在,则直接丢弃得到的Tagged帧。
当Trunk接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在允许通过的VLAN ID列表中。如果在,则对这个Tagged帧进行转发操作;如果不在,则直接丢弃这个Tagged帧。
③Trunk接口发送数据帧:
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID不在允许通过的VLAN ID列表中,则该Tagged帧会被直接丢弃。
当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID在允许通过的VLAN ID列表中,则会比较该Tag中的VID是否与接口的PVID相同:
如果相同,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去;
如果不同,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去。
3、VLAN Tag和PVID:
①VLAN Tag:
定义:VLAN Tag是虚拟局域网标签,用于在数据帧中标识VLAN信息。它通常是在以太网帧的源MAC地址和目的MAC地址之后,加上4个字节的VLAN信息,即VLAN Tag头。
作用:VLAN Tag的主要作用是区分不同的VLAN成员,确保数据包在正确的VLAN内传输。通过VLAN Tag,交换机可以识别出数据包属于哪个VLAN,并根据VLAN配置进行转发或丢弃。
应用:在Trunk端口和Hybrid端口上,VLAN Tag被广泛应用。这些端口允许多个VLAN的数据通过,因此需要VLAN Tag来区分不同的VLAN成员。
②PVID(Port VLAN ID):
定义:PVID是端口缺省VLAN ID,即一个端口默认所属的VLAN ID。它是交换机上每个端口的一个属性,用于决定未标记数据包的VLAN归属。
作用:当交换机接收到未标记的数据包时,会根据接收端口的PVID为数据包打上相应的VLAN标签。这样,数据包就可以在正确的VLAN内传输。
应用:PVID在Access端口、Trunk端口和Hybrid端口上都可以配置。在Access端口上,PVID决定了端口默认的VLAN成员身份;在Trunk端口和Hybrid端口上,PVID则用于处理未标记的数据包。
③区别总结:
存在位置:VLAN Tag是附加在数据帧上的标签,用于标识VLAN信息;而PVID是交换机上每个端口的一个属性,用于决定未标记数据包的VLAN归属。
作用对象:VLAN Tag作用于数据帧,用于区分不同的VLAN成员;而PVID作用于端口,用于配置端口的默认VLAN。
应用场景:VLAN Tag在Trunk端口和Hybrid端口上被广泛应用,用于区分多个VLAN的数据;而PVID在所有类型的端口上都可以配置,用于处理未标记的数据包。
综上所述,VLAN Tag和PVID在网络通信中各自扮演着不同的角色,它们共同协作,实现了VLAN的有效划分和管理。
4、以太网概念明晰:
以太网主要定义了物理层和数据链路层的关键技术,包括:
物理层:定义传输介质的类型(如双绞线、光纤等),负责比特流的发送与接收。使用双绞线时,典型接口为RJ-45;光纤连接中采用标准化的光接口。
数据链路层:分为逻辑链路控制(LLC)子层和介质访问控制(MAC)子层。LLC子层提供多种网络协议的接口,控制帧的发送和接收;MAC子层则控制设备如何访问网络介质,使用CSMA/CD(载波侦听多路访问/冲突检测)技术避免冲突。
5、生成树STP(Spanning Tree Protocol):
①在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP,STP通过构造一棵树来消除交换网络中的环路。
②Bridge ID:
在STP中,每一台交换机都有一个标示符,叫做Bridge ID或者桥ID,桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
③根桥:
树形的网络结构必须有树根,于是STP引入了根桥(Root Bridge)概念。
对于一个STP网络,根桥在全网中只有一个,它是整个网络的逻辑中心,但不一定是物理中心。根桥会根据网络拓扑的变化而动态变化。
网络收敛后,根桥会按照一定的时间间隔产生并向外发送配置BPDU,其他设备仅对该报文进行处理,传达拓扑变化记录,从而保证拓扑的稳定。
④BPDU(Bridge Protocol Data Unit,即桥接协议数据单元。它是一种特定格式的数据包,通过交换网桥(Bridge)之间进行通信,用于实现网桥协议(Bridge Protocol)的目的):
为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU中。
BPDU有两种类型:配置BPDU和TCN BPDU。
配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
对于STP而言,最重要的工作就是在交换网络中计算出一个无环拓扑。在拓扑计算的过程中,一个非常重要的内容就是配置BPDU的比较。在配置BPDU中,有四个字段非常关键,它们是“根桥ID”、“根路径开销”、“网桥ID”以及“接口ID”,这四个字段便是交换机进行配置BPDU比较的关键内容。
STP按照如下顺序选择最优的配置BPDU:
最小的根桥ID
最小的RPC
最小的网桥ID
最小的接口ID
⑤COST:
每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STP Cost计算方法有关。
接口带宽越大,则Cost值越小。
用户也可以根据需要通过命令调整接口的Cost。
从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC,并生成无环树状网络。根桥的根路径开销是0。
⑥什么是根端口?
一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口。
在选举出根桥后,根桥仍然持续发送BPDU,而非根桥将持续不断的收到根桥发送的BPDU。因此,在所有非根桥上选举一个距离根桥“最近”的端口(根端口),在网络收敛后,根端口将不断的收到来自根桥的BPDU。
即:根端口保证了交换机与根桥之间工作路径的唯一性和最优性。
注意:一个非根桥设备上,最多只能有一个根端口。
选举过程:
交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“RootID、RPC、BID、PID”等关键字段,端口会针对这些字段进行PK。
首先比较根路径开销(RPC),STP协议把根路径开销作为确定根端口的重要依据。RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。
当RPC相同时,比较上行交换机的BID,即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。
当上行交换机BID相同时,比较上行交换机的PID,即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端口。
当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。
⑦什么是指定端口?
网络中的每个链路与根桥之间的工作路径必须是唯一的且最优的。当一个链路有两条及以上的路径通往根桥时(该链路连接了不同的交换机,或者该链路连接了同一台交换机的不同端口),与该链路相连的交换机(可能不止一台)就必须确定出一个唯一的指定端口。
因此,每个链路(Link)选举一个指定端口,用于向这个链路发送BPDU。
注意:一般情况下,根桥上不存在任何根端口,只存在指定端口。
选举过程:
指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则比较BID和PID。
首先比较根路径开销(RPC),值越小,越优选,因此交换机会选RPC最小的端口作为指定端口。
若RPC相等,则比较链路两端交换机的BID,值越小,越优选,因此交换机会选BID最小的交换机的端口作为指定端口。
若BID相等,则比较链路两端端口的PID,值越小,越优选,因此交换机会选PID最小的交换机的端口作为指定端口。
⑧运行STP协议的设备上端口状态有5种:
▫Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
▫Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
▫Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
▫Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
▫Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。
⑨在STP协议中,这些端口通过以下方式配合工作:
选举过程:
根桥选举:STP协议首先选举出一个根桥,其桥ID(由桥优先级和MAC地址构成)最小。
根端口选举:在每个非根桥上,STP协议会选举出一个根端口,该端口是到达根桥的最佳路径。
指定端口选举:在每个网络段上,STP协议会选举出一个指定端口,该端口负责转发BPDU和数据包。
端口状态转换:
STP协议定义了五种端口状态:Disabled、Blocking、Listening、Learning和Forwarding。端口在选举完成后,会根据其角色和状态进行状态转换。
根端口和指定端口在选举完成后,会经历一系列状态转换,最终进入Forwarding状态,开始转发数据。
阻塞端口则保持在Blocking状态,不转发数据但接收BPDU信息。
维护生成树状态:
交换机会定期发送BPDU来维护生成树的状态。如果网络拓扑发生变化(如链路故障或恢复),STP会重新计算并调整端口状态。
通过调整端口状态和角色,STP协议能够确保网络的稳定性和可靠性,同时避免环路的产生。
⑩常见的STP基础配置命令,以华为交换机为例:
⑩.1进入系统视图
<Huawei> system-view
⑩.2配置STP模式
[Huawei] stp mode {stp | rstp | mstp}
⑩.3配置根桥和备份根桥
配置根桥:将当前交换机配置为根桥。配置后,该设备的优先级值自动为0,并且不能更改设备优先级。
[Huawei] stp root primary
或者通过直接修改优先级来设置根桥:
[Huawei] stp priority 0
配置备份根桥:将当前交换机配置为备份根桥。配置后,该设备的优先级数值为4096,并且不能更改设备优先级。
[Huawei] stp root secondary
或者通过直接修改优先级来设置备份根桥:
[Huawei] stp priority 4096
⑩.4配置接口参数
配置接口路径开销:路径开销决定了端口在生成树中的优先级。可以使用以下命令配置接口路径开销的计算方法和具体值。
[Huawei] stp pathcost-standard {dot1d-1998 | legacy}
[Huawei-GigabitEthernet0/0/X] stp cost 值
配置接口优先级:接口优先级决定了在选举指定端口时该接口的竞争力。可以使用以下命令配置接口优先级。
[Huawei-GigabitEthernet0/0/X] stp priority 值
⑩.5启用STP功能
通常情况下,设备的STP功能处于启动状态。如果需要手动启用或关闭STP功能,可以使用以下命令:
[Huawei-GigabitEthernet0/0/X] stp enable
[Huawei-GigabitEthernet0/0/X] stp disable
⑩.6查看STP状态
使用该命令可以查看STP的详细运行状态,包括根桥ID、各种时间参数以及BPDU保护等信息。
[Huawei] display stp
[Huawei] display stp brief
⑩.7其他配置
配置边缘端口:将端口设置为边缘端口可以使其快速转换到转发状态。
[Huawei-GigabitEthernet0/0/X] stp edged-port enable
启用根保护和BPDU保护:根保护和BPDU保护是两种常见的STP保护机制,可以通过以下命令启用。
[Huawei-GigabitEthernet0/0/X] stp root-protection
[Huawei] stp bpdu-protection
6、RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现了网络拓扑快速收敛。
①STP的缺点:
STP协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断。
STP没有细致区分接口状态和接口角色,不利于学习及部署。
网络协议的优劣往往取决于协议是否对各种情况加以细致区分。
从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。
从使用和配置角度来讲,接口之间最本质的区别并不在于接口状态,而是在于接口扮演的角色。
根接口和指定接口可以都处于Listening状态,也可能都处于Forwarding状态。
STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
STP算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。这也是导致拓扑收敛慢的主要原因之一。
②RSTP的接口角色共有4种:根接口、指定接口、预备接口和备份接口。
③RSTP的状态规范把原来的5种状态缩减为3种。
如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。
④RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
⑤为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。
7、MSTP(Multiple Spanning Tree Instance):
MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。
每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance)。
所谓生成树实例就是多个VLAN的集合所对应的生成树。
通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。
可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。
8、二三层接口对比:
①二层接口不能配置IP地址;三层接口可以配置IP地址;
②二层接口不具备MAC地址;三层接口具备MAC地址;
③当二层接口收到数据帧时,设备在其MAC地址表中查询该帧的目的MAC地址,找到匹配的MAC地址表项后按照该表项的指示转发帧:如果没有找到匹配的MAC地址表项,则将帧进行泛洪;三层接口收到数据帧后,如果数据帧的目的MAC地址与设备的本地MAC地址相同,则将数据帧解除封装,然后在路由表中查询数据包的目的IP地址,找到匹配的路由表项后按照该表项的指示转发包;如果没有找到匹配的表项,则将包丢弃。
④典型的二层接口如二层交换机的物理接口和大部分三层交换机的物理接口缺省为二层接口;典型的三层接口如路由器的三层接口,某些三层交换机的物理接口可以切换成三层模式,此外除了物理三层接口,还存在逻辑三层接口,例如交换机的VLANIF,或者网络设备上的逻辑子接口,如GE0/0/1.10。
⑤二层接口并不隔离广播域,当二层接口收到广播帧时,会将数据进行泛洪;三层接口隔离广播域,当三层接口收到广播帧时,缺省不会进行泛洪,而是直接终结。
9、链路聚合:
①问题出现:为保证设备间链路可靠性,在设备间部署多条物理线路,为防止环路STP只保留一条链路转发流量,其余链路成为备份链路,但设备之间存在多条链路时,由于STP的存在,实际只会有一条链路转发流量,设备间链路带宽无法得到提升。
②问题解决:以太网链路聚合Eth-Trunk:简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。
③链路聚合基本术语/概念:
•聚合组(Link Aggregation Group,LAG):若干条链路捆绑在一起所形成的的逻辑链路。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。
•成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
•活动接口和活动链路:活动接口又叫选中(Selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)
•非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。
•聚合模式 :根据是否开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式和LACP模式。
④LACP DU:
•LACP模式:采用LACP协议的一种链路聚合模式。设备间通过链路聚合控制协议数据单元(Link Aggregation Control Protocol Data Unit,LACPDU)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。
•LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。
⑤系统优先级:
•LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组就无法建立。此时可以使其中一端成为主动端,另一端(被动端)根据主动端选择活动接口。
•通过系统LACP优先级确定主动端,值越小优先级越高。
⑥接口优先级:
•选出主动端后,两端都会以主动端的接口优先级来选择活动接口,优先级高的接口将优先被选为活动接口。接口LACP优先级值越小,优先级越高。
⑦负载分担:
•在使用Eth-Trunk转发数据时,由于聚合组两端设备之间有多条物理链路,如果每个数据帧在不同的链路上转发,则有可能导致数据帧到达对端时间不一致,从而引起数据乱序。
•Eth-Trunk推荐采用逐流负载分担的方式,即一条相同的流负载到一条链路,这样既保证了同一数据流的数据帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。
⑧LACP模式链路聚合配置举例:
•案例需求描述:
▫SW1、SW2都连接着VLAN10、VLAN20的网络。
▫SW1和SW2之间通过三根以太网链路互联,为了提供链路冗余以及保证传输可靠性,在SW1、SW2之间配置LACP模式的链路聚合,并且手动调整优先级让SW1成为主动端,并配置最大活跃端口为2,另外一条链路作为备份。
SW1的配置如下:
[SW1] interface eth-trunk 1
[SW1-Eth-Trunk1] mode lacp
[SW1-Eth-Trunk1] max active-linknumber 2
[SW1-Eth-Trunk1] trunkport gigabitethernet 0/0/1 to 0/0/3
[SW1-Eth-Trunk1] port link-type trunk
[SW1-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW1-Eth-Trunk1] quit
[SW1] lacp priority 30000
SW2的配置如下:
[SW2] interface eth-trunk 1
[SW2-Eth-Trunk1] mode lacp
[SW2-Eth-Trunk1] max active-linknumber 2
[SW2-Eth-Trunk1] trunkport gigabitethernet 0/0/1 to 0/0/3
[SW2-Eth-Trunk1] port link-type trunk
[SW2-Eth-Trunk1] port trunk allow-pass vlan 10 20
[SW2-Eth-Trunk1] quit
10、交换机堆叠&集群:
①什么是堆叠、集群:
•堆叠(iStack):多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发。
•集群(Cluster Switch System,CSS ):将两台支持集群特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。
•集群只支持两台设备,一般框式交换机支持CSS,盒式设备支持iStack。
②堆叠、集群的优势:
•交换机多虚一:堆叠交换机对外表现为一台逻辑交换机,控制平面合一,统一管理。
•转发平面合一:堆叠内物理设备转发平面合一,转发信息共享并实时同步。
•跨设备链路聚合:跨物理设备的链路被聚合成一个Eth-Trunk端口,和下游设备实现互联。
11、访问控制列表ACL:
①ACL的组成:
ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。
②通配符 (Wildcard)
•通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。
•通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。
③ACL的分类与标识:
•基于ACL规则定义方式的划分,可分为:
▫基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL。
•基于ACL标识方法的划分,则可分为:
▫数字型ACL和命名型ACL。
•注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定编号,系统则会自动为其分配一个数字型ACL的编号。
④基本ACL与高级ACL:
•基本ACL:
▫主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。
•高级ACL:
▫可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCP或UDP的源目端口号等元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本ACL定义出更精确、更复杂、更灵活的规则。
⑤ACL的匹配机制:
•ACL的匹配机制概括来说就是:
▫配置ACL的设备接收报文后,会将该报文与ACL中的规则逐条进行匹配,如果不能匹配上,就会继续尝试去匹配下一条规则。
▫一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
•匹配流程:首先系统会查找设备上是否配置了ACL。
▫如果ACL不存在,则返回ACL匹配结果为:不匹配。
▫如果ACL存在,则查找设备是否配置了ACL规则。
▪如果规则不存在,则返回ACL匹配结果为:不匹配。
▪如果规则存在,则系统会从ACL中编号最小的规则开始查找。
−如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
−如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
−如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
•从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。
▫匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
▫不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
•匹配原则:一旦命中即停止匹配。
⑥ACL的匹配位置:入站 (Inbound)及出站 (Outbound)方向:
在一个防火墙策略放通的过程中,遇到了关于inbound和outbound的讨论,于是在嘉颖哥的讲解下我更进一步理解了这两个概念:
举例以更充分的说明:
⑥.1场景描述
我们有两台网络设备A和B,它们分别连接在交换机的两个不同接口上(比如GigabitEthernet0/1接B,GigabitEthernet0/2接A)。现在,我们想在B的接口上设置一个访问控制列表(ACL),来控制哪些流量可以进入B。
⑥.2ACL设置
在B的接口(GigabitEthernet0/1)上,我们设置了一个ACL规则:
允许从B网段(比如192.168.2.0/24)到A网段(比如192.168.1.0/24)的流量。
拒绝所有其他流量。
这个ACL是绑定在接口的“in”方向上的,也就是说,它只检查进入B网段的流量。
⑥.3问题出现
我们发现,尽管设置了上述ACL,A网段的设备仍然可以访问B网段的设备。这是为什么呢?
⑥.4原因解释
原因是ACL只检查了进入B网段的流量,而没有检查从A网段发出的、准备进入交换机的流量。当A网段的设备尝试访问B网段时,流量是从A网段的接口(GigabitEthernet0/2)进入交换机的,然后交换机再将这些流量转发到B网段的接口(GigabitEthernet0/1)。在这个过程中,流量并没有经过绑定在B网段接口上的“in”方向ACL的检查。
⑥.5解决方法
要阻止A访问B,我们需要在A网段的入口接口(GigabitEthernet0/2)上也设置一个ACL,或者在B网段的出口接口(GigabitEthernet0/1)上设置一个“out”方向的ACL。
在A网段的入口接口设置ACL:这样可以阻止从A网段发出的、准备访问B网段的流量。
在B网段的出口接口设置ACL:这样可以阻止交换机将来自其他网段的、准备进入B网段的流量转发给B。
⑥.6总结
简单来说,绑定在B网段接口上的“in”方向ACL只能控制进入B网段的流量,而不能控制从其他网段发出的、准备访问B网段的流量。要全面控制流量,我们需要在不同的接口和方向上设置合适的ACL。
⑦配置案例:
配置需求:
•某公司通过Router实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。
•现要求Router能够限制两个网段之间互访,防止公司机密泄露。
•1、Router已完成IP地址和路由的相关配置。
•2、创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文:
[Router] acl 3001
[Router-acl-adv-3001] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Router-acl-adv-3001] quit
•3、创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文:
[Router] acl 3002
[Router-acl-adv-3002] rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[Router-acl-adv-3002] quit
•4、由于研发部和市场部互访的流量分别从接口GE0/0/1和GE0/0/2进入Router,所以在接口GE0/0/1和GE0/0/2的入方向配置流量过滤:
[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3001
[Router-GigabitEthernet0/0/1] quit
[Router] interface GigabitEthernet 0/0/2
[Router-GigabitEthernet0/0/2] traffic-filter inbound acl 3002
[Router-GigabitEthernet0/0/2] quit
⑧ACL技术总是与防火墙、路由策略、QoS、流量过滤等其他技术结合使用。