单臂路由中ACL绑定位置的相关猜想
在解决了问题后,出现了一个新的问题:"为什么只能将ACL绑定在子接口上呢?那样不是更麻烦,因为所有的子接口都要绑定上ACL。"
于是我又开始浮想连篇了~
对于一个ACL我们要对它进行触发,都是有一定条件,比如说是源IP 目的IP 或者协议号,大家可以发现,这些信息都是被七层中的第三层—网络层,封装到数据包的网络层数据报头中。如果要了解到这些信息,不是应该也要通过三层的解封装才能了解到?
所以来推断一下为什么ACL只有配在子接口下才生效
首先数据到达了主接口,主接口发现是巨型帧,无法进行三层解封装。而子接口因为已经做过了封装,可以识别含有tag的数据帧,对其再次解封装,发现它的IP报头。从而才能实现ACL的触发。
众所周知的 三层交换的ACL是配置在SVI上的。为什么呢?同样的道理也试着解释下。
经过了trunk口或者是access口,最多只能了解到源,目的MAC以及帧类型,只有通过三层接口也就是SVI才能进行三层的解封装。实现ACL的触发。
其实简单来说也就是ACL应该配在有IP的地方。和路由下一跳使用的出接口类似。
猜想陈诉完毕。望各位高手指点~~
该贴已经同步到 lin0131的微博 |