1、XCM8800 系列交换机 ACL 基础介绍文档目的:1. XCM8800 系列交换机的 ACL 编写方式与其它的 NETGEAR 交换机存在很大差异。本文档对 ACL 的功能与编写作出应用上的说明。 2. ACL 除了能实现基本的包的过滤和转发决定(如策略路由等)外,它也是实现多种其它功能与特性的基础要素。多种基于 ACL 的功能与特性包括: o 记录次数(匹配 ACL 的次数), o 记录与查看包头部, o 镜像流量到一个监控端口,为具体的监控流量作匹配 o 将包送到一个 QoS 文件,为需要 QoS 的前期流量作匹配 o 计量匹配 ACL 的包去控制带宽, 文档适用性:本文主要针对 XC
2、M8800 系列的三层的 ACL 设置,其它 IPv6,二层 ACL 此文档或会有所涉及,但不作具体说明。ACL 的建立具有两种方法一、基于 Policy 的 ACL:建立一个 ACL 的策略并将 ACL 的策略应用到一个端口集中列表,一个 VLAN 或者所有的端口。步骤 1:ACL 策略建立 #edit policy 创建一个策略并给策略起一个名字,系统将创建一个policyname.pol 的文件,“” 指整体可更改字段。 进入到类似于 LINUX 的 VI 编辑器,进行编写程序模式。输入“I”可以开始编写Entry 给 ACL 起一个名字, “”对应最后一行条目的“” 。“”为一种书写格
3、式,“”和“ ”必须为一对使用,在“”中表明设备需要的各种属性项。if ;-_match-conditions 里面填写你需要匹配的属性项。以下会有部分说明,切记“;”需要跟在属性项后。match-conditions 可以有多个,相互间是与关系。then ; action 里面填写匹配后的动作属性项,action-modifiers;-里面填写将动作修改后的属性项。action-modifiers 可以有多个,相互间是顺序执行关系。 对应 ACL 名字后面的 “”。ESC 退出编辑模式。:wq/:q! 保存文档并退出/不保存文档直接退出,退回到“#”模式。Match-conditionsnt
4、 属性项(部分): Ethernet-type Number 指 IP:0x0800 8021Q:0x8100 IPv6:0x86DDethernet-source-address 以太网源地址,其中 mac-address 和 mask 格式为XX:XX:XX:XX:XX:XX/YY:YY:YY:YY:YY:YY 或XX:XX:XX:XX:XX:XX mask YY:YY:YY:YY:YY:YY,mask 为可选项,默认 mask 为 FF:FF:FF:FF:FF:FFEthernet-destination-address 以太网目的地址,其中 mac-address 和 mask 格式为
5、XX:XX:XX:XX:XX:XX/YY:YY:YY:YY:YY:YY 或XX:XX:XX:XX:XX:XX mask YY:YY:YY:YY:YY:YY,mask 为可选项,默认 mask 为 FF:FF:FF:FF:FF:FFProtocol Number 指 tcp :6,udp:17,igmp:2,icmp:1 ip:4 等等Source-address IP 源地址与掩码 格式:X.X.X.X/XDestination-address IP 目的地址与掩码 格式:X.X.X.X/XSource-port or 源端口 number 格式:X 范围:165535number range
6、 格式:X-X 范围:165535destination-port or 目的端口 number 格式:X 范围:165535number range 格式:X-X 范围:165535其它选项请参考官方文档链接:http:/ XCM8800 系列用户手册中列表 31 (Table 31)。ActionsPermit Action 中的允许动作,是默认行为。Deny Action 中的丢弃动作。Action ModifiersCount 递增次数(匹配 ACL 的次数)countname 给一个名字以方便显示匹配数使用。查看次数的命令为:Show access-list couter any|p
7、orts|vlan ingress|egress Log/log-raw 记录包头部/以十六进制格式记录包头部Meter 依据流量的速率产生动作。Mirror 发送一份包的副本(拷贝)到监控(镜像)端口(只在入站方向)Mirror-cpu 发送一份包的副本(拷贝)到 CPU,用于产生 LOG。Qosprofile 转发包到具体指定的 QoS 文档Traffic-queue 放置流量到具体指定的流量队列Redirect 转发包到具体的 IPv4 地址(用于策略路由)。Replace-dscp 从已关联的 QoS 文档中替换掉 DSCP 的值。Replace-dot1p 从已关联的 QoS 文档中
8、替换掉 QoS 的值Replace-ethernet-destinaton-address替换包的目的 MAC 地址,此应用只用于 2 层转发流量Redirect-port 重写转发决定且改变已使用的出站端口。步骤 2:查看策略是否已写成功命令:# check policy 当编写完 policy 时,需要检查 policy 语法是否已写正确,当屏幕回显: “Policy file check successful.” 说明策略的语法已通过测试.要注意的是:上面回显只代表书写语法正确,不代表在策略含义上已写对并能匹配到正确的流量。步骤 3:将 ACL 的 Policy 应用到端口、VLAN、所
9、有接口:#configure access-list any | ports | vlan ingress|egress 从端口上移除 ACL 的 Policy:#unconfigure access-list any | ports | vlan ingress | egress 注意:应用到 VLAN 的 ACL 情况等同于应用到所有的接口,而不是只应用到 VLAN 所包括的端口。具体例子:要求:1、在 XCM8800 系列的交换机上建立一个 ACL 拒绝流量从源为 10.203.134.0/24,端口是:190, 到目的主机:140.158.18.16/32,端口为:1200 到 125
10、0 的 UDP 流量。2、放行其它流量。3、在 1: 10 端口入站方向( ingress)应用。编辑 policy 时常用的命令 i 在初始光标位置前插入内容a 在初始光标位置后插入内容#edit policy udpaclentry comeonA If source-address 10.203.134.0/24;destination-address 140.158.18.16/32;protocol udp;source-port 190;destination-port 1200 1250; then deny;entry comeonBif thenpermit;编写要点:1.
11、policy 和 entry 名字可以不一样,entry 间的名字要求不一样。 2. 上面的示例中使用到的“”只要成对出现即可,不需要考虑前后是否存在空格。 3. 由于默认是禁止所有流量通行,需要在 comeonB 中放行其它流量。 4. 将 ACL 应用在入站方向(ingress)上,要 match 所有流量只需要使用“if ” 即可, 如果应用在出站方向(egress)上,match 所有流量需要使用“if source-address 0.0.0.0/0”上面的例子 comeonB 只应用到 ingress 方向,所以采用“if ”1. 在最后的“”的下一行开始,每一行必须要带有“”符号
12、开始,将不需要的空行、空格或文字删除,这时才能在 check policy udpacl 中检查 policy 成功。 在全局模式下(“#”)对 policy 需要使用到的检查、查看、更名、删除 policy 的命令#check policy /policyname 后面不需要加后缀名例如: #check policy udpacl查看所有或单个文件,包括 policy:#ls 或#ls /后面需要加入后缀名(suffix)例如:#ls udpacl.pol更名一个文件或一个 policy:#mv /将前一个文件名改为后一个文件名 ,且要加后缀名。例 如:#mv udpacl.pol www.
13、pol 删除一个文件或一个 policy:#rm dd 删除当前行yy 复制当前的行p 粘贴行的复制:w 保存文档:q 没有改变 Policy 时退出:q! 强制退出不管 Policy 有没有变化:wq 保存 Policy 并退出注:以上命令通过按 ESC 进行切换/删除 www 的 policy,且要加后缀名。此处只作命令说明,对上面所举例子不作实际删除例如:#rm www.pol应用 ACL 到接口#configure access-list udpacl ports 1:10 ingress最后不要忘记保存所有配置,包括 ACL 列表的应用#save二、动态 ACL:动态 ACL 的建立
14、直接使用 CLI 界面,它的使用相似于 policy 的 ACL 的表达方式,能完成相同的动作,简单且直观。多条的动态 ACL 可以被应用到一个接口上,条目应用的优先级别也可以被配置。动态 ACL 比policy 的 ACL 应用到接口有更高的优先级别。表达方式:#create access-list non-permanent/表示 ACL 的名字,在动态 ACL 中必须是唯一的,但它可以和 policy 的 ACL 重名。/表示的条件,等同于 policy 中的 if,使用“;”分隔条件。/表示的动作,等同于 policy 中的 then,使用“;” 分隔条件。non-permanent
15、/可选项,默认为永久保留。使用此命令后, save 保存配置后,动态 ACL 不被保留应用动态 ACL 到接口:configure access-list add first | last priority zone | before | after | priority zone any | vlan | ports ingress | egress 从接口中移除动态 ACLconfigure access-list delete any | vlan | ports | all ingress | egress 具体例子:要求:对于 ICMP 协议的流量进行匹配,并统计数包数量并在管理端口
16、上禁止 PING 入:#create access-list icmp-echo “protocol icmp;icmp-type echo-request”deny;count echo”以上条目解释:icmp-echo /给动态 ACL 起名字,表明本 ACL 针对 icmp 的 echo 包“protocol icmp; /条件中的一个选项,表明需要匹配到的协议是 ICMP,条件最前面用双引号,条件间用冒号分隔。icmp-type echo-request; /条件中的另一个选项,ICMP 的类型是 echo-request,条件间用冒号分隔,条件陈述完使用双引号结束状态。“deny”
17、/另一个双引号代表动作选项为 deny,仍然需要使用双引号。默认最后为永久保存型。将动态 ACL 应用到管理接口入站方向:#configure access-list add “icmp-echo” vlan “Mgmt” ingress以上条目解释:add /增加一个条目“icmp-echo” /表示动态 ACL 的名字,需要双引号vlan /应用到的是管理 VLAN“Mgmt” /管理 VLAN 的名字是 Mgmt,需要双引号查看动态 ACL 丢弃 ICMP 包的数目#show access-list dynamic counter移除动态 ACL#configure access-list del “icmp-echo” vlan “Mgmt”#del access-list “icmp-echo”清除 ACL 中 ICMP 包的数目#clear access-list dynamic counter最后不要忘记保存所有配置,包括 ACL 列表的应用#save