Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251958
  • 博文数量: 37
  • 博客积分: 1980
  • 博客等级: 上尉
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-13 11:44
文章分类

全部博文(37)

文章存档

2011年(5)

2010年(8)

2009年(6)

2008年(18)

我的朋友

分类: 系统运维

2008-09-14 13:38:35

在ARP Proxy的实现中,由于一个SubVLAN可以跨越不同的接口板,接收到的ARP请求报文和对应的应答报文可能来自不同的单板,所以将ARP Proxy在主控板上实现。
  

  
图 VLAN聚合
  下面描述一下VLAN聚合情况下,两个聚合的Sub-VLAN之间通信的过程,如上图所示:
  
  Sub-VLAN1和Sub-VLAN2聚合成Super-VLAN3,为Super-VLAN3分配一个IP子网,则Sub-VLAN1和Sub-VLAN2都位于此子网。此处所指的ARP表是指RPS中的所有ARP表项。
  
  若Sub-VLAN1中的一台主机PC1要与子网中的另一台主机PC2通信,PC1发现对方与自己处于同一网段,则直接发出目的IP为10.110.1.33的ARP请求报文。三层交换机收到后,由微码将其在Sub-VLAN1的范围内直接通过二层广播此报文,并抄送一份给接口板的ARP模块。经过接口板ARP的分析,发现它来自SubVLAN,就将此ARP请求报文交给主控板ARP模块处理。
  
  主控板ARP首先在ARP表中查找ARP请求报文中的目的IP地址,假如找到对应项,看看目的IP地址是不是在SubVLAN1中,是就丢弃该报文,不是就将SuperVLAN3的MAC地址应答给PC1,完成代理工作。
  
  假如在ARP表中没有找到对应项,主控板ARP就查VLAN聚合与VLAN的逻辑映射表,知道Sub-VLAN1属于Super-VLAN3,将此报文中的源MAC地址替换成SuperVLAN3的MAC地址,VLAN ID的值由1分别替换成属于SuperVLAN3的其它Sub-VLAN的值,之后逐个向属于此SuperVLAN的其它Sub-VLAN(本例中为Sub-VLAN2)广播,并同时将此请求报文中的信息学习加入动态ARP表中。
  
  此后若收到PC2的ARP应答报文(其目的MAC地址为Super-VLAN3的MAC地址),主控板ARP模块发现此ARP应答报文的VLAN ID是Sub-VLAN2,即PC2位于Sub-VLAN2中,主控板CPU根据应答报文中的信息,搜索ARP表中的各项,找到对应项后把SuperVLAN3对应的MAC地址通过ARP应答报文回给PC1(若PC2位于Sub-VLAN1,PC2响应的ARP应答报文直接通过二层转发回给PC1,交换机就不再应答)。同时在接口板上将SubVLAN2中的响应报文信息记录在ARP表及FIB表中,以后再收到来自主机X的报文就可以通过查询FIB表进行三层转发了。
  
  ARP Proxy放在主控板上,这样可以避免由于不同接口板在同步上造成的差异,如我们从板A发出ARP ,从板B收到响应,但由于数据表格还没有同步到位板B,则引起错误。
阅读(2256) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~