网件XCM8800系列ACL基础知识

发布时间:2016-12-02 07:53

网件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

网件XCM8800系列ACL基础知识的评论条评论