本帖最后由 蓝光 于 2020-9-24 09:04 编辑
我们的安全产品在做路由配置的时候,都可以选择出接口或者是下一跳地址。
这两种方式有什么区别呢?
先说第一种出接口方式把。我们这里画个图,以下图为列:
在以太网中,两个相邻接口之间的通信是依靠MAC地址。相邻接口通信时,需要知道对方的MAC地址,根据MAC地址,将通信数据转换成数据帧后交付给网络,进而到对方。而对方MAC地址的获得,是通过第二层数据帧广播,由ARP协议完成的。
当静态路由中使用出站接口做为下一跳时,AF会认为目标网络和接口处在“直连网络”中。 当左侧AF连接网络需要访问192.168.2.0网络时,此时下一跳为出接口方式,那么此时当数据到达左侧AF时,AF会发起ARP查询来查找192.168.2.0网络某主机的MAC地址,此时右侧AF就会代替2.0网络的主机回包,MAC地址为ETH1的mac地址,那么此时左侧AF中就会有两条mac地址对应表, 第一条:1.1.1.2 ----EHT1mac 第二条:192.168.2.0---ETH1mac 那么此时如果1.0网络有大量的请求2.0网络 ,那么左侧AFARP表中将会存在大量的ARP缓存,消耗资源。
那么使用IP作为下一条,无论1.0网络存在多少请求2.0网络的数据都只存在一种结果,左侧AF会将数据直接交给右侧AF,那么也就只有一条ARP。
总结:如果在点到点网络环境下,无论是指定下一跳地址还是出接口,其效果都是一样的。但是在广播网络环境下,指定下跳地址和指定出接口将会达到不同的效果。如果指定为出接口的话,那么不管数据包的目标地址是否有效,每次当数据包到达时都会触发一个ARP请求和相应,又因为ARP代理功能默认打开,那么AF需要配备大量的ARP高速缓存。而如果是指定为下一跳地址的话,仅当第一个去往目标网络的数据包到达时,才会触发ARP请求。所以为了便于路由的查找和减少ARP缓存条目过多的办法就是同时指定出接口和下一跳地址。这样做的话,路由条目在路由表中表现为非直连网络,其管理距离值为1。 |