网件XCM8800系列ACL基础知识
网件netgear公司一直致力于网络技术创新,专注于产品的可靠性以及易用性提升,他生产的路由器设备功能强大,那么你了解网件XCM8800系列ACL基础知识吗?下面是小编整理的一些关于网件XCM8800系列ACL基础知识的相关资料,供你参考。
网件XCM8800系列ACL基础知识:
一、基于Policy的ACL:
建立一个ACL的策略并将ACL的策略应用到一个端口集中列表,一个VLAN或者所有的端口。
步骤1:
ACL 策略建立
#edit policy <policyname>
创建一个策略并给策略起一个名字,系统将创建一个
policyname.pol的文件,“<>”指整体可更改字段。
~
进入到类似于LINUX 的VI编辑器,进行编写程序模式。输入“I”可以开始编写
Entry <ACLNAME> {
给ACL起一个名字,“{”对应最后一行条目的“}”。“{}”
为一种书写格式,“{”和“}”必须为一对使用,在“{}”
中表明设备需要的各种属性项。
if###{<match-conditions>;
<match-conditions>;
---
__###}
match-conditions里面填写你需要匹配的属性项。以下会
有部分说明,切记“;”需要跟在属性项后。
match-conditions可以有多个,相互间是与关系。
then {<action>;
<action-modifiers>;
---
----}
action 里面填写匹配后的动作属性项,action-modifiers
里面填写将动作修改后的属性项。
action-modifiers可以有多个,相互间是顺序执行关系。
}
对应ACL名字后面的“{”。
ESC
退出编辑模式。
:wq/:q!
保存文档并退出/不保存文档直接退出,退回到“#”模式。
Match-conditionsnt属性项(部分):
Ethernet-type <number>
Number指 IP:0x0800 8021Q:0x8100 IPv6:0x86DD
ethernet-source-address <mac-address> <mask>
以太网源地址,其中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:FF
Ethernet-destination-address <mac-address><mask>
以太网目的地址,其中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:FF
Protocol <number>
Number指tcp :6,udp:17,igmp:2,icmp:1 ip:4等等
Source-address<prefix>
IP源地址与掩码 格式:X.X.X.X/X
Destination-address <prefix>
IP目的地址与掩码 格式:X.X.X.X/X
Source-port <number>or <number range>
源端口 number格式:X 范围:1~65535
number range格式:X-X范围:1~65535
destination-port <number>or <number range>
目的端口 number格式:X范围:1~65535
number range格式:X-X范围:1~65535
Actions
Permit
Action中的允许动作,是默认行为。
Deny
Action 中的丢弃动作。
Action Modifiers
Count <countname>
递增次数(匹配ACL的次数)countname 给一个名字以方便显示匹配数使用。查看次数的命令为:
Show access-list couter [<countername>][any|ports<portlist>|vlan <vlanname>][ingress|egress]
Log/log-raw
记录包头部/以十六进制格式记录包头部
Meter <metername>
依据流量的速率产生动作。
Mirror
发送一份包的副本(拷贝)到监控(镜像)端口(只在入站方向)
Mirror-cpu
发送一份包的副本(拷贝)到CPU,用于产生LOG。
Qosprofile<qosprofilename>
转发包到具体指定的QoS 文档
Traffic-queue<traffic-queue>
放置流量到具体指定的流量队列
Redirect <ipv4 address>
转发包到具体的IPv4地址(用于策略路由)。
Replace-dscp
从已关联的QoS文档中替换掉DSCP的值。
Replace-dot1p
从已关联的QoS文档中替换掉QoS的值
Replace-ethernet-destinaton
-address<mac-address>
替换包的目的MAC地址,此应用只用于2层转发流量
Redirect-port<port>
重写转发决定且改变已使用的出站端口。
步骤2:
查看策略是否已写成功命令:# check policy <policyname>
当编写完policy时,需要检查policy语法是否已写正确,当屏幕回显: “Policy file check successful.” 说明策略的语法已通过测试.
要注意的是:上面回显只代表书写语法正确,不代表在策略含义上已写对并能匹配到正确的流量。
步骤3:
将ACL的Policy应用到端口、VLAN、所有接口:
#configure access-list <policyname> {any | ports <portlist> | vlan <vlanname>}
{ingress|egress}
从端口上移除 ACL的Policy:
#unconfigure access-list <policyname> {any | ports <portlist> | vlan <vlanname>}{ingress | egress}
注意:应用到VLAN的ACL情况等同于应用到所有的接口,而不是只应用到VLAN所包括的端口。
具体例子:
要求:
在XCM8800系列的交换机上建立一个ACL拒绝流量从源为10.203.134.0/24,端口是:190, 到目的主机:140.158.18.16/32,端口为:1200到1250的UDP流量。
放行其它流量。
在1:10端口入站方向(ingress)应用。
编辑policy时常用的命令
i
在初始光标位置前插入内容
a
在初始光标位置后插入内容
dd
删除当前行
yy
复制当前的行
p
粘贴行的复制
:w
保存文档
:q
没有改变Policy时退出
:q!
强制退出不管Policy有没有变化
:wq
保存Policy并退出
注:以上命令通过按ESC进行切换
#edit policy udpacl
entry 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 comeonB{
if {}
then{permit;}
编写要点:
policy 和entry名字可以不一样,entry间的名字要求不一样。
上面的示例中使用到的“{}”只要成对出现即可,不需要考虑前后是否存在空格。
由于默认是禁止所有流量通行,需要在comeonB中放行其它流量。
将ACL应用在入站方向(ingress)上,要match所有流量只需要使用“if {}”即可,
如果应用在出站方向(egress)上,match 所有流量需要使用“if {source-address 0.0.0.0/0}”
上面的例子comeonB只应用到ingress 方向,所以采用“if {}”
在最后的“}”的下一行开始,每一行必须要带有“~”符号开始,将不需要的空行、空格或文字删除,这时才能在check policy udpacl中检查policy成功。
在全局模式下(“#”)对policy需要使用到的检查、查看、更名、删除policy的命令
#check policy <policyname> //policyname后面不需要加后缀名
例如: #check policy udpacl
查看所有或单个文件,包括policy:
#ls 或#ls <policyname. suffix> //后面需要加入后缀名(suffix)
例如:#ls udpacl.pol
更名一个文件或一个policy:
#mv <policyname. suffix> <policyname. suffix> //将前一个文件名改为后一个文件名 ,且要加后缀名。
例 如:#mv udpacl.pol www.pol
删除一个文件或一个policy:
#rm <policyname. suffix> //删除www的policy,且要加后缀名。此处只作命令说明,对上面所举例子不作实际删除
例如:#rm www.pol
应用ACL到接口
#configure access-list udpacl ports 1:10 ingress
最后不要忘记保存所有配置,包括ACL列表的应用
#save
二、动态ACL:
动态ACL的建立直接使用CLI界面,它的使用相似于policy的ACL的表达方式,能完成相同的动作,简单且直观。多条的动态ACL可以被应用到一个接口上,条目应用的优先级别也可以被配置。动态ACL比policy 的ACL应用到接口有更高的优先级别,在理解XCM8800系列的交换机的ACL配置语法的情况下,一般更多会使用动态ACL。
表达方式:
#create access-list <dynamic-rule> <conditions> <actions> [non-permanent]
<dynamic-rule> //表示ACL的名字,在动态ACL中必须是唯一的,但它可以和policy的ACL重名。
<conditions> //表示的条件,等同于policy中的if{……},使用“;”分隔条件。
<action> //表示的动作,等同于policy中的then{……},使用“;”分隔条件。
[non-permanent] //可选项,默认为永久保留。使用此命令后,save 保存配置后,动态ACL不被保留
应用动态ACL到接口:
configure access-list add [ [[first | last] {priority } {zone } ] | [[before | after] ] | [ priority {zone } ]] [ any | vlan | ports ] {ingress | egress}
first //在写入多条 ACL 时,作为第一条需要匹配的 ACL 列表在最前
last //在写入多条ACL时,作为最后一条需要匹配的ACL列表在最后
before //指定该ACL放置在某一条ACL之前,后面参数需要写入一条ACL的名字
after //指定该ACL放置在另一条ACL之后,后面的参数需要写入一条ACL的名字
从接口中移除动态ACL
configure access-list delete [ any | vlan | ports | all] {ingress | egress}
具体例子:
要求:对于ICMP协议的流量进行匹配,并统计数包数量并在管理端口上禁止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” //另一个双引号代表动作选项为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