Technorati 标签: ,

其实这里IPv6的ACL (access-list)和IPv4大同小异,全当是作为练习来验证一下原理吧.

1, 关于标准的访问列表.

IPv6 ACL详解/与IPv4 ACL异同点_休闲

配置就是这样,和IPv4的没有什么太大区别,不同的是IPv4在接口下面是用的ip access-group.IPv6如果想应用access-list的话,就是用命令ipv6 traffic-filter xxxx in/out.
仅此而已。
从配置上面可以看到,interface f0/0配置的IPv6地址为2012::1/64.如果将就上面的配置,ping 2012::2的话,源是接口地址2012::1/64,那么会得到下面的结果。显示得好像没有IPv4那么直观。
这个时候打开debug ipv6 access-list xxxxx detail

IPv6 ACL详解/与IPv4 ACL异同点_IPv6_02

这个debug信息,源为2012::1,到2012::2,出接口FE0/0.
从FE0/0的物理接口发送出去了。
最后封装失败。但是没有具体说明是因为acl给deny掉了。
呵呵,希望以后的IOS会更加人性化。
否则的话如果像cisco 7200、7600或者是GSR上面想通过配置来进行故障排查,那可就整死人了。动则都是多少M的配置...恐怖啊。:)

2, 关于扩展的访问列表.
首先还是和Ipv4进行一个比较。
IPv6 ACLIPv4 ACL相同点:
两个都是通过IP五元组来做的.
也就是通过,1源IP地址,2目的IP地址,3传输层协议,4源端口号,5目的端口号.

IPv6IPv4 ACL的不同点:
在IPv6的ACL 中,新添加了:
■根据IPv6报头中的流类别和流标记标签进行匹配。新的可选关键字是DSCP/flow-label/fragments/routing/undetermined-transport.在IPv4中是关于DSCP和IP precedence是需要嵌套关系来进行过滤的,而且不是用acl来进行的,是用qos的机制先定义class-map,然后再用policy把class map嵌套进来,最后封装到接口下面。现在是可以直接进行过滤了哈。
■支持ICMPv6的消息类型过滤。ICMPv6在IPv6中是如此的重要,几乎所有的工作机制都全部用不同的ICMPv6不同类型的消息来进行工作,实际上ICMPv6就像是汇编语言,IPv6只是一个操作系统的感觉.如果没有汇编把平台编译出来,再好的操作系统,都没有办法进行工作.新的关键字nd-na,nd-ns,router-advertisement和router-solicitation.
■为NDP添加了新的隐含IPv6的规则.

以前在IPv4中,我们都知道最后一个默认隐藏的命令是:
deny ip any any
在IPv6中也是一样。deny ipv6 any any.但是在这之前还加入了一些隐藏命令。总得顺序是这样的。
permit icmp any any nd-ns
permit icmp any any nd-na
deny ipv6 any any
当然这些在一个IPv6的ACL中是不会被显示出来的。
这里再做一个知识回顾,在前面已经说明了什么是na,什么是NS.

nd-na 邻居公告消息ICMPv6 type=136
nd-ns 邻居请求消息, ICMPv6 type=135.
router-advertisement 路由器公告ICMPv6 type=134.
router-solicitation 路由器请求, ICMPv6 type=133.

PS:
对于扩展IPv6 ACL来说,没有对于PMTU的默认隐含规则.源节点用PMTUD机制来检测沿发送路径直到目的主机的最大MTU,确保在扩展IPv6 ACL中定义这样一个声明:允许ICMPv6类型2数据包过大,从anyany,以免大数据包带来的分片问题。

下面是一些IPv6的书写格式和一些新功能的应用。
IPv6 ACL详解/与IPv4 ACL异同点_休闲_03

最后就是管理ACL了。
■显示IPv6 ACL.
show ipv6 access-list

IPv6 ACL详解/与IPv4 ACL异同点_休闲_04

这里其实和IPv4一样,明显可以看出图中两个ACL的区别,ACL blocksitelocal是真正应用在接口下面了的,所以有多少报文被match的字段在里面,而ACL maipu,只是在全局下面配置了,但是没有真正的实际应用到接口下面进行激活的。

这里其实也是ACL故障排查的一个点,很多终端客户说,配置了ACL但是没有生效,那么可以用该命令看看是否应用到接口下面,报文的匹配情况如何呢?
■当然如果要清除上面的匹配计数器,还是用命令: clear ipv6 access-list即可。
■debug ipv6 packet来进行故障排查。
或者是跟一些子参数:
R1#debug ipv6 packet access-list maipu detail