S系列框式交换机(S75/S75E/S85)

S系列框式核心交换机是面向下一代IP城域网、大型园区网推出的新一代T比特运营级模块化核心交换机。
通用
{{sendMatomoQuery("S系列框式交换机(S75/S75E/S85)","IPv6访问控制列表配置命令")}}

IPv6访问控制列表配置命令

更新时间:2023-12-08

1IPv6访问控制列表配置命令

本章描述了用来配置IPv6访问控制列表的命令及其方法,用于对用户访问网络的权限控制。命令主要包括DenyPermitSequence三个部分。

IPv6访问列表配置命令包括:

配置命令

主要功能

ipv6 access-list

建立标准的和扩展的IPv6访问列表

ipv6 access-group

将访问列表应用到端口

deny/permit

过滤报文

sequnence

配置访问列表序号

show ipv6 access-list

展示配置的访问列表

1.1IPv6 ACL命令配置

1.1.1ipv6 access-list

配置访问列表的名字,并进入IPv6 ACL命令配置模式。在用exit命令退出访问列表配置模式后,使用该命令的no形式可以删除该访问控制列表。

ipv6 access-list access-list-name

no ipv6 access-list access-list-name

参数

参数

参数说明

access-list-name

访问列表名。

缺省

不存在缺省的访问列表,必须配置访问列表名。

命令模式

全局配置态。执行此命令后进入IPv6访问控制列表配置态。

使用说明

1.IPv6不再使用数字访问列表,数字也将作为名字访问列表处理;而且IPv4IPv6的访问列表不能使用相同的名字,否则端口无法识别。

2.IPv6 ACL默认配置是允许ICMPv6ND报文(相当于IPv4ARP),但禁止其他IPv6报文。也就是说,在用deny配置规则时,应该在最后添加一条permit any any。规则如下:

permit icmpv6 any any nd-na

permit icmpv6 any any nd-ns

deny ipv6 any any

示例

下面的示例创建了一个IPv6访问控制列表,用deny配置了阻止了源地址前缀为FEC0:0:0:2::/64目的地址为任何值(any)的报文,而允许(permit)其它任何报文的规则。并将其应用在千兆以太网接口G1/1上。

ipv6 access-list list2

deny FEC0:0:0:2::/64 any

permit ipv6 any any

interface G1/1

ipv6 access-group list2 egress

相关命令

deny (IPv6)

permit (IPv6)

ipv6 access-group

show ipv6 access-list

1.1.2ipv6 access-group

该命令将特定名字的访问控制列表应用到特定的vlan端口上。使用本命令的no形式将取消对该端口的访问控制。

ipv6 access-group access-list-name {in | out}

no ipv6 access-group {in | out}

参数

参数

参数说明

access-list-name

ipv6 access-list access-list-name中,配置的访问列表名字。

in

过滤进入端口的报文。

out

过滤离开端口的报文。

缺省

不存在缺省的访问列表,必须配置特定的访问列表名到指定端口才有效。

命令模式

vlan端口配置态

使用说明

第1章ipv6 access-group过滤的是交换机转发的报文,而不是交换机自身产生的报文。

示例

下面的示例在vlan端口下,将访问列表规则”example”应用到离开端口的报文规则中。

Switch_config#interface vlan 4

Switch_config_v4#ipv6 access-group example out

相关命令

ipv6 access-list

show ipv6 access-list

1.1.3deny/permit

对于需要拒绝的报文,应使用deny命令及其相关参数设定规则。使用该命令的no形式可以删除设定的规则。

deny protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [sequence value] [time-range name] [undetermined-transport]

no deny protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing]  [sequence value] [time-range name] [undetermined-transport]

deny icmpv6 {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [icmp-type [icmp-code] | icmp-message] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [sequence value] [time-range name]

deny tcp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [ack] [dest-option-type [doh-number | doh-type]] [dscp value] [established] [fin] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [psh] [range {port | protocol}] [routing] [rst] [sequence value] [syn] [time-range name] [urg]

deny udp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dest-option-type [doh-number | doh-type]] [dscp value] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [range {port | protocol}] [routing] [sequence value] [time-range name]

绿色:deny protocoldeny icmpdeny tcpdeny udp都有的字段。

红色:deny protocol有而deny icmpdeny tcpdeny udp没有的字段,而且permit也没有。

蓝色:deny protocol没有而deny icmpdeny tcpdeny udp有的字段。

对于需要允许的报文,应使用permit命令及其相关参数设定规则。使用该命令的no形式可以删除设定的规则。

permit protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [sequence value] [time-range name] [undetermined-transport]

no permit protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [sequence value] [time-range name] [undetermined-transport]

permit icmpv6 {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [icmpv6-type [icmpv6-code] | icmpv6-message] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [sequence value] [time-range name]

permit tcp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [ack] [dscp value] [established] [fin] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [psh] [range {port | protocol}] [routing] [rst] [sequence value] [syn] [time-range name] [urg]

permit udp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dscp value] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [range {port | protocol}] [routing] [sequence value] [time-range name]

参数

参数

参数说明

protocol

网络协议名或协议号。目前支持的协议名有ahp(51), esp(50), icmpv6(58), ipv6(41), pcp(108), sctp(132), tcp(6), udp(17)

source-ipv6-prefix/prefixlength

IPv6前缀/前缀长度。

any

IPv6前缀::/0的缩写。

host source-ipv6-address

IPv6主机地址。

operator [port-number]

(可选)比较的运算符和端口号,只对tcpudp协议有效。operatorlt (less than), gt (greater than), eq(equal), neq(not equal)range(inclusive range)range运算符后带有两个端口号,其他运算符只带一个端口号。port-number的范围是0-65535

destination-ipv6-prefix/prefix-length

目的IPv6前缀/前缀长度。

host destination-ipv6-address

目的IPv6主机地址。

dscp value

(可选)区分服务代码点(dscp, differentiated services code point)。用于匹  IPv6分组头Traffic Class域,0-63。其中已经定义的有af11(001010), af12(001100), af13(001110), af21(010010), af22(010100), af23(010110), af31(011010), af32(011100), af33(011110), af41(100010), af42(100100), af43(100110), cs1(001000), cs2(010000), cs3(011000), cs4(100000), cs5(101000), cs6(110000), cs7(111000), ef(101110), default(000000)

flow-label value

(可选)IPv6分组头的流标记域,1-1048575(1024*1024-1)

fragments

(可选)当分片扩展头包含非0offset时,匹配非初始分片分组。只有operator [port-number]不被声明时,fragments才是可选的。

log

(可选)当分组匹配时,将日志信息发送到console口。日志信息应该包含访问列表名、序列号、分组是否被禁止(deny/permit)、协议/协议号(TCP, UDP, ICMPv6, etc.)、源地址/目的地址、源端口号/目的端口号等。

log-input

(可选)log有同样的功能,另外还包括报文进入的接口。

routing

(可选)匹配被源路由的IPv6分组的路由扩展头。

sequence value

(可选)指定访问列表的排列顺序号值,方便用户对访问列表的添加1-4294967295 (65536*65536-1)IPv4访问列表只能将规则依次添加在最后一项,而IPv6访问列表可以利用sequence将规则添加在希望的任何位置,如果新添加的顺序号位置原来已经有规则,则将该条规则覆盖。

time-range name

(可选)对访问列表做出时间范围的规定。在time-range命令里,用absolute/periodic关键字将时间规则name应用在访问列表上。

undetermined-transport

(可选)匹配第4层协议无法判断的分组,只有在protocol未被声明时,undetermined-transport才是可选的。如果protocolipv6,也表示IPv6的第4层协议未被声明。

icmpv6-type

(可选)ICMPv6报文类型,0-255

icmpv6-code

(可选)ICMPv6报文码,0-255

icmpv6-message

(可选)通过ICMPv6报文名(RFC规定的报文名和报文码所构成ICMP报文类型,如目的不可达等)0-255

ack

(可选)只用于TCP报文,acknowledgment(ACK)位匹配设定。

fin

(可选)只用于TCP报文,finish(FIN)位匹配设定。

psh

(可选)只用于TCP报文,push(PSH)位匹配设定。

rst

(可选)只用于TCP报文,reset (RST)位匹配设定。

syn

(可选)只用于TCP报文,synchronize(SYN)位匹配设定。

urg

(可选)只用于TCP报文,urgent(URG)位匹配设定。

established

(可选)只用于TCP报文,当TCP报文的ACKRST位被设定时,表示匹配(已建立)。当该条规则被设定为deny时,用于拒绝由外部网络向内部网络发起的连接,而允许由内部向外部发起的连接。

eq{port | protocol}

(可选)只匹配在指定端口号的分组。protocol为指定的协议名。

gt{port | protocol}

(可选)只匹配大于指定端口号的分组。protocol为指定的协议名。

lt {port | protocol}

(可选)只匹配小于指定端口号的分组。protocol为指定的协议名。

neq {port | protocol}

(可选)只匹配不在指定端口号的分组。protocol为指定的协议名。

range {port | protocol}

(可选)只匹配指定端口号范围内的分组。protocol为指定的协议名。

缺省

1.顺序号:

IPv4ACL不同,IPv6ACL可以用permit, deny, sequence在已有访问列表的任何位置进行添加,而不仅是在ACL的末尾。因此,需要对访问列表加入编号,如果用户没有手动配置访问列表的顺序号,缺省的第一个ACL序列号是10,以后依次+10;如果用户指定了顺序号,将按照此顺序号插入;如果用户指定顺序号与现有的一条ACL的顺序号相同,则覆盖现有顺序号的ACL;在用户指定了顺序号后,最后一条规则的顺序号可能不是10的整数倍,此时,当添加未指定顺序号的ACL规则时,将以最后一条规则的+10作为序列号。

2.默认规则:

IPv4 ACL类似,当只配置了ACL的名字,而没有进行规则配置时,访问列表不会禁止任何规则,即:

permit icmpv6 any any nd-na

permit icmpv6 any any nd-ns

permit ipv6 any any

注意到,由于在IPv6ICMP的作用相当于IPv4中的ARP,因此在默认状态下是允许邻居发现的邻居通告和邻居请求报文通过的。而如果只要在IPv6 ACL规则中配置了一条规则,不满足该条规则的报文的隐含匹配条件是允许ICMPv6报文,而禁止所有IPv6报文,即:

permit icmp any any nd-na

permit icmp any any nd-ns

deny ipv6 any any

所以,如果希望不满足规则的报文不会被禁止,应该在IPv6 ACL的最后添加一条permit ipv6 any any

命令模式

IPv6访问列表配置态

使用说明

1ICMPv6报文名字如下:

beyond-scope

destination-unreachable

echo-reply

echo-request

header

hop-limit

mld-query

mld-reduction

mld-report

nd-na

nd-ns

next-header

no-admin

no-route

packet-too-big

parameter-option

parameter-problem

port-unreachable

reassembly-timeout

renum-command

renum-result

renum-seq-number

router-advertisement

router-renumbering

router-solicitation

time-exceeded

unreachable

2.已定义的TCP端口号上的协议有:

bgp(179)

chargen(19)

cmd(514)

daytime(13)

discard(9)

domain(53)

echo(7)

exec(512)

finger(79)

ftp(21)

ftp-data (20)

gopher (70)

hostname (101)

ident (113)

irc (194)

klogin (543)

kshell (544)

login (513)

lpd (515)

nntp (119)

pim-auto-rp (496)

pop2 (109)

pop3 (110)

smtp (25)

sunrpc (111)

syslog (514)

talk (517)

time (37)

uucp (540)

whois (43)

www (80)

3.已定义的UDP端口号上的协议有:

biff (512)

bootpc (68)

bootps (67)

discard (9)

dnsix (195)

domain(53)

echo(7)

isakmp (500)

netbios-dgm (138)

netbios-ns (137)

netbios-ss (139)

ntp (123)

pim-auto-rp (496)

rip (520)

snmp (512)

snmptrap (162)

sunrpc (111)

syslog (514)

talk (517)

tftp (69)

time (37)

who (513)

xdmcp (177)

示例

下面的示例创建了一个IPv6访问列表“example”,并为其制定了4条规则。第一条规则拒绝了所有目的端口号大于5000tcp连接的报文;第二条规则拒绝了所有源端口号小于5000udp的报文,并在规则匹配时向console口发送日志;第三条规则允许了所有的icmpv6报文;第四条规则允许了其他所有不满足规则的报文。注意,第四条规则在配制访问列表时,如果用户希望不满足规则的报文不会被拒绝,应该添加这条规则。最后,在端口配置态下,将该规则应用在交换机的以太网端口g2/1的外出方向上。。

ipv6 access-list example

deny tcp any any gt 5000

deny udp ::/0 lt 5000 ::/0 log

permit icmpv6 any any

permit any any

exit

int gigaEthernet  2/1

ipv6 access-group example egress

相关命令

ipv6 access-list

ipv6 access-group

show ipv6 access-list

list

1.1.4sequence

sequence命令是IPv6访问列表为方便用户,可以在已经添加好的访问列表的任何位置插入新的访问列表,或覆盖原有相同顺序号的访问列表,不必像IPv4中配置访问列表一样只能将新规则添加在最末尾一条。使用该命令的no形式可以删除这条规则。

sequence value {deny | permit} protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [time-range name] [undetermined-transport]

no sequence value {deny | permit} protocol {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/ prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [time-range name] [undetermined-transport]

sequence {deny | permit} icmpv6 {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [icmpv6-type [icmpv6-code] | icmpv6-message] [dscp value] [flow-label value] [fragments] [log] [log-input] [routing] [time-range name]

sequence {deny | permit} tcp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [ack] [dscp value] [established] [fin] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [psh] [range {port | protocol}] [routing] [rst] [syn] [time-range name] [urg]

sequence {deny | permit} udp {source-ipv6-prefix/prefix-length | any | host source-ipv6-address} [operator [port-number]] {destination-ipv6-prefix/prefix-length | any | host destination-ipv6-address} [operator [port-number]] [dscp value] [flow-label value] [fragments] [log] [log-input] [neq {port | protocol}] [range {port | protocol}] [routing] [time-range name]

参数

参数的解释和1.1.3节的deny/permit完全相同,只是将sequence命令关键字放在了最前面。

缺省

1.1.3节的deny/permit的缺省规则相同。

命令模式

IPv6访问列表配置态

使用说明

可以用permit, deny, remark, evaluate在已有acl列表的任何位置进行添加,而不仅是在acl的末尾。在两个已存的入口号中间,创建一个适当的入口号作为添加。缺省的默认的第一个acl入口号是10,后续的acl入口号应该以10作为递增。

sequence关键字是用来做这个的:

如果没有指定seq,第一个seq=10,以后依次递增;

如果已经指定seq,此后添加没有seqipv6acl将被加在最后,并在最后一个seq上加10

如果已经指定seq,此后添加有seqipv6acl将被插入中间;

如果已经指定seq,此后添加有seqipv6acl,且seq与现有的相同,则更新该seqipv6acl

如果直接指定seq XXX,则表示seq XXX deny 0 any any

其他与1.1.3节的deny/permit使用说明相同。

示例

下面的示例与1.1.3节的规则配置相同,只是在添加每条规则时在最前端加入了sequence顺序号,便于以后的管理。

ipv6 access-list example

sequence 30 deny tcp any any gt 5000

sequence 70 deny udp ::/0 lt 5000 ::/0 log

sequence 75 permit icmpv6 any any

sequence 76 permit any any

如果要在现有规则中添加一条新的规则,如果用下面的命令再添加一条规则:

deny ipv6 FE80::/64 any log-input

该规则将被添加到最后,并被自动编号其sequence76+10=86。如果用户在添加新规则时明确指定了顺序号,如下面这条命令:

sequence 50 deny ahp any any

deny ahp any any sequence 50

该规则将被插入到顺序号为3070的规则中间。如果用户指定的顺序号与原有的顺序号相同,如下面这条命令:

sequence 75 deny esp any any log

deny esp any any log sequence 75

原有访问列表中,顺序号为75的规则将被覆盖。如下所示是添加了3条规则后的访问列表的变化情况:

ipv6 access-list example

sequence 30 deny tcp any any gt 5000

sequence 50 deny ahp any any

sequence 70 deny udp ::/0 lt 5000 ::/0 log

sequence 75 deny esp any any log

sequence 76 permit any any

deny ipv6 FE80::/64 any log-input sequence 86

相关命令

deny(IPv6)

permit(IPv6)

ipv6 access-list

ipv6 access-group

show ipv6 access-list

list

1.1.5show ipv6 access-lists

该命令显示IPv6 ACL的规则信息情况。

show ipv6 access-lists [access-list-name]

参数

参数

参数说明

access-list-name

访问列表名字。

缺省

如果没有输入访问列表名字,则显示所有的访问列表。

命令模式

全局配置态或管理态

使用说明

使用show ipv6 access-lists命令显示IPv6访问列表的格式,与使用show running时显示的IPv6 ACL格式不相同。用show running显示时,输入时指定顺序号的规则将把顺序号显示在最开始的位置,而没有指定顺序号的规则将把顺序号显示在最末的位置,如1.1.4节的示例。而当使用show ipv6 access-lists命令时,无论在输入规则时是否指定了顺序号,顺序号都将显示在规则的最后位置,如本节的示例。

示例

输入命令show ipv6 access-lists后,显示example1example2

ipv6 access-list example1

   permit ipv6 any any sequence 10

   deny icmpv6 any any 255 255 routing sequence 20

exit

ipv6 access-list example2

   permit icmpv6 12::/0 host 34:: header dscp ef fragments sequence 20

   permit icmpv6 any any header flow-label 987 sequence 30

   deny ahp any any routing log time-range example_TIMER sequence 50

   deny icmpv6 any any 255 255 sequence 8918

permit any any sequence 8928

输入命令show ipv6 access-list example1后,只显示example1

ipv6 access-list example1

   permit ipv6 any any sequence 10

   deny icmpv6 any any 255 255 routing sequence 20

相关命令

ipv6 access-lists