当前位置: 移动技术网 > 科技>软件教程>网络通讯 > 调试路由器做中继代理的问题

调试路由器做中继代理的问题

2010年09月07日  | 移动技术网科技  | 我要评论
调试路由器做中继代理的问题
  一、网络环境

  我们的交换机用的是cisco catalyst 2948g,路由器用的是cisco3640。交换机按端口分为两个虚拟子网vlan1和vlan2。vlan1的ip地址范围为168.68.35.xxx,子网掩码为255.255.255.0;vlan2的ip地址范围为168.68.36.xxx,子网掩码为255.255.255.0。交换机1口设为虚拟子网间的主干路(trunk),与cisco3640的以太网口相连,2~40口被划分在vlan1中,41~48被划分在vlan2中。客户端使用的是windows 95操作系统,安装tcp/ip协议接入vlan1,服务器端使用的是windows nt+sp4+微软的dhcp服务器,同时在vlan2中安装tcp/ip协议接入vlan2。逻辑示意图如下。客户端的ip地址用自动获得ip地址的方式,通过路由器做中继代理,由dhcp服务器分配一个ip地址。服务器的ip地址是168.68.36.8,子网掩码是255.255.255.0。交换机的ip地址是168.68.36.9,子网掩码是255.255.255.0。路由器ip地址是168.68.36.10,子网掩码是255.255.255.0。

  二、最初的路由器配置

  cisco3640支持子口的设置。子口就是在单个物理接口上建立并保持多条逻辑连接,最初的路由器配置如下:

  interface fastethernet1/0

  ip address 168.68.35.1 255.255.255.0

  no ip directed-broadcast

  fair-queue 64 256 0

  !

  interface fastethernet1/0.1

  encapsulation dot1q 1

  ip helper-address 168.68.36.8

  no ip directed-broadcast

  !

  interface fastethernet1/0.2

  encapsulation dot1q 2

  ip address 168.68.36.1 255.255.255.0

  no ip directed-broadcast

  router eigrp 100

  passive-interface serial0/0

  network 168.0.0.0

  no auto-summary

  三、发现问题:客户端无法获得ip地址

  硬件连接好后,在客户端用win95自带的winipcfg命令获取ip地址时,问题出现了:客户端无法获取ip地址。从硬件连接看,问题可能出在网卡、网线、交换机、路由器四个方面。将客户端手工设置ip地址,能够ping通服务器、交换机、路由器,说明网卡、网线、交换机、路由器都工作正常,那问题会出在什么地方呢?会不会是路由器的配置语句不对呢?经查阅随机文档配置语句本身没有问题。为缩小问题的范围,我把客户端接入vlan2中,这时客户端就能获取ip地址了,再将客户端接入vlan1中,又不能获取ip地址了,看来是vlan在捣乱。

  我们知道客户端第一次获取ip地址,要经过四步。每一步的信息传输 都是用广播发出的,其中任何一步在vlan的传输中受阻都会使客户端无法获取ip地址,那么如何查看广播包在交换机中传输呢?在tcp/ip协议中,传输协议分为tcp和udp,tcp是面向连接的协议,udp是非面向连接的协议。从广播的性质来分析,广播包应该是udp包,广播要通过路由器,而路由器又能监测udp包,这样就可通过路由器查看广播包在vlan间的传输了。输入路由器监测udp包的命令debug ip udp 后发现,ip租用请求信息(dhcpdiscover)仅发送到了vlan1中,没有传送到vlan2中,这应该是客户端无法获得ip地址的关键。

  四、找到问题:原来出在ip上

  在路由器的配置中,ip helper-address 168.68.36.8这条命令的作用是负责指明udp包传输的目的地址,ip租用请求信息没有被传送到vlan2中,就是由于这条命令没起作用。再次查看随机文档,这条命令确实没写错。我正在百思不得其解时,猛然发现路由器以太网口的第二子口设置了ip地址,第一子口未设置ip地址,而母口却设置了ip地址,也就是说第一子口的ip地址已由母口决定了,那ip helper-address 168.68.36.8这条命令是否也应该设到母口上呢?我立刻动手将路由器的配置改写如下:

  interface fastethernet1/0

  ip address 168.68.35.1 255.255.255.0

  ip helper-address 168.68.36.8

  no ip directed-broadcast

  fair-queue 64 256 0

  !

  interface fastethernet1/0.1

  encapsulation dot1q 1

  no ip directed-broadcast

  !

  interface fastethernet1/0.2

  encapsulation dot1q 2

  ip address 168.68.36.1 255.255.255.0

  no ip directed-broadcast

  router eigrp 100

  passive-interface serial0/0

  network 168.0.0.0

  no auto-summary

  如此设置后,客户端就能够获得ip地址了。从这个问题的解决,可以推测出cisco3640第一子口的配置信息都应设在母口上。事后我又查阅了一些有关书籍,证实这个推测是对的。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网