一、题目
如下图所示的网络。通过以下哪个配置可以实现所有主机都能和主机C通信。但是主机A和主机B不能高信?
A. acl number 4000
rule 5 deny destination-mac 5489-98ea-4c7c source-mac 5489-98d3-104d
#
interface GigabitEthernet0/0/1
traffic-filter inbound acl 4000
#
B. acl number 4000
rule 5 deny destination-mac 5489-98ea-4c7c source-mac 5489-98d3-104d
#
interface GigabitEthernet0/0/1
traffic-filter outbound acl 4000
#
C. acl number 4000
rule 5 deny destination-mac 5489-98ca-4c7c source-mac 5489-98c0-550e
#
interface GigabitEthernet0/0/1
traffic-filter inbound acl 4000
#
D. acl number 4000
rule 5 deny destination-mac 5489-98ea-4c7c source-mac 5489-98c0-550e
#
interface GigabitEthernet0/0/1
traffic-filter outbound acl 4000
#
二、答案
C
三、解析
A选项错误:根据题意可以得知,该ACL会拒绝B和C主机之间的通信
B选项错误:根据题意可以得知,该ACL会拒绝B和C主机之间的通信
C选项正确:ACL源目都是正确的,且应用的接口也是G0/0/1接口的进接口
D选项错误:该ACL条目没有写错,但是不能应用在G0/0/1的出接口,而应该是进接口
四、扩展 — ACL
ACL的分类
ACL主要可分为基本ACL和高级ACL。基本ACL只能根据源IP地址来进行匹配流量,而高级ACL则可以根据报文的五元组信息,即源IP地址、目的IP地址、源端口、目的端口和应用协议来匹配流量。因此高级ACL的精度比基本ACL来的更高。在编号ACL中,可通过不同的编号来区分基本ACL和高级ACL。基本ACL的编号范围是2000~2999。高级ACL的编号是3000~3999。而命名ACL则可以通过basic、advace关键字来区分是否是高级ACL。
配置ACL规则
ACL分为基本ACL与高级ACL,两者的规则配置语法不同。基本ACL只能基于IP报文的源IP地址、报文分片标记和时间段信息来定义规则。而高级ACL则可以根据报文的五元组信息来定义规则。
基本ACL的配置
基本配置ACL规则的命令的结构如下。
rule [ rule-id ] { deny | permit } [source { source-address source-wildcard | any } | logging | time-range time-name ] |
命令中各个组成项的解释如下:
rule:标识这是一条规则。
rule-id:标识这个规则的编号。
deny | permit:这是一个二选一选项,表示与这条规则相关联的处理动作。deny表示“拒绝”;permit表示“允许”。
source:表示源IP地址信息。
source-address:表示具体的源IP地址。
source-wildcard:表示与source-address相对应的通配符。source-wildcard和source-address结合使用,可以确定出一个IP地址的集合。
any:表示源IP地址可以是任意地址。
logging:表示需要将匹配上该规则的IP报文进行日志记录。
time-range time-name:表示该规则的生效时间段为time-name。
基本ACL典型配置如下:
基本编号ACL:
acl 2000 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 rule 20 deny source 192.168.20.0 0.0.0.255 //拒绝192.168.20.0/24整个网段的流量 |
基本命名ACL:
acl name test1 basic //启用基本acl,名称为test1 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 rule 20 deny source 192.168.20.0 0.0.0.255 //拒绝192.168.20.0/24整个网段的流量 |
值得注意的是在典型配置中“0.0.0.255”,它的名称是通配符,代表掩码取反。即如果一个网段的掩码是255.255.255.0,换算成二进制为11111111. 11111111. 11111111.00000000,取反后为00000000. 00000000. 00000000.11111111,计算成十进制为0.0.0.255。
高级ACL的配置
高级ACL规则的命令结构如下:
rule [ rule-id ] { deny | permit }ip [source { source-address source-wildcard | any ] [source { source-address source-wildcard | any ] |
即 rule 编号 允许或拒绝 协议 源地址段 端口 目的地址段 端口。高级ACL的典型配置如下:
高级编号ACL:
acl 3000 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 //允许所有192.168.10.0/24到192.168.20.0/24的流量 rule 20 permit tcp source 192.168.20.0 0.0.0.255 destination 192.168.30.0 0.0.0.255 destination-port 80 //允许192.168.20.0/24网段到192.168.30.0/24网段前往端口80的流量 rule 30 deny host 192.168.1.1 any //拒绝主机192.168.1.1到达任意地址的流量 |
高级命名ACL:
acl name test02 advance ////启用高级acl,名称为test2 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 //允许所有192.168.10.0/24到192.168.20.0/24的流量 |
上面的配置中用到了两个关键字,host和any。Host代表一台主机,即掩码为255.255.255.255。any代表任意地址,即掩码为255.255.255.255。使用这两个关键字,可以简化配置。
基本ACL与高级ACL相比,基本ACL只能关注源地址,而高级ACL可以关注源地址和目的地址以及端口,因此高级ACL对流量的控制与管理精度比基本ACL更高。
值得注意的是,华为ACL默认动作为拒绝所有流量。即配置了ACL以后,假如没有任何一条规则匹配,那么将匹配拒绝动作。从某种意义上来说,一个ACL条目中如果都是deny动作,而没有permit动作,将拒绝掉所有的流量。
应用ACL
ACL通常用于过滤流量、匹配流量等用途。当用于过滤流量时,除了必要的定义规则以外,还需应用在接口之上。应用时是区分方向的,以配置该命令的设备为视角,进入到该设备的方向为inbound,离开该设备的方向为outbound。
例如将某个ACL应用在接口的inbound方向命令示例为:
interface GigabitEthernet 0/0/3 traffic-filter inbound acl 2000 //在G0/0/3接口的inbound方向上应用acl 2000 |
ACL还可以应用在vty线路上。当应用于VTY线路时,可以起到允许或拒绝哪些网段远程登录的作用,具体配置如下:
acl 2000 rule 10 permit source 192.168.10.0 0.0.0.255 //允许192.168.10.0/24整个网段流量 user-interface vty 0 4 acl 2000 inbound //在vty接口上应用acl2000,结合rule10规则,即代表允许192.168.10.0/24网段远程登录 |