running910 发表于 2014-04-03 22:18

关于dhcp中继问题,请教!非常感谢!!



基本架构如下:

dhcp server <--------------> eth0(router)eth1 <---------------> dhcp client

router是openwrt平台,使用isc-dhcp-relay做dhcp中继功能
dhcp client是一台带dhcp客户端的pc

配置如下
dhcp server开启dhcp服务,ip地址:192.168.1.1
router eth0接在与server已给子网,通过dhcp方式获取ip地址:192.168.1.10
router eth1配置为静态ip地址为192.168.3.1,桥接类型,会生成一个br-lan的接口,与client在同一子网

期望达成的是:
dhcp client可以获取到dhcp server分配的ip地址:192.168.1.x

输入命令 dhcrelay -i br-lan 192.168.2.1后,dhcp client开始尝试获取ip地址

在server与router之间抓包显示:
    1) router通过eth0转发discover给server,src地址为192.168.1.10,dst地址为192.168.1.1,并且是单播
           2) server接收到之后会广播offer包,可以看到该广播包已经分配了正确的ip地址(此处正常情况是否应为单播,目的地址为eth0接口地址或者eth1接口地址?)        
          
在router与client直接抓包显示:
                1)client不断发discover报文,没有收到router转发的offer
               
找不到原因了,请问有什么建议想法分享一下吗?谢谢!

rainfinity 发表于 2014-04-10 16:46

这个问题的root cause 是relay agent 的地址(192.168.1.10)和 DHCP pool (192.168.1.0) 是一个网段的, server 认为这个 DHCP offer不需要unicast, 而直接用broadcast了, 问题是PC 看不到这个offer.

这个问题其实很好解决, 只要relay agent 和DHCP POOL 不是一个网段就可以了.

running910 发表于 2014-04-17 19:02

非常谢谢您的回复!
您的意思是eth0不应该跟server同一网段?似乎不是这样子吧,eth0就是通过dhcp server分配的IP地址,不然作为agent,eth0也不会把discover转发给dhcp server,会不会有其他原因呢?而且我试了其他DHCP server并不会对eht0转发的discover进行回复
回复 2# rainfinity


   

kastin 发表于 2014-04-18 16:01

所谓代理的意思是:server是为client所在网段分发地址,而不是为自己所在网段分发地址。
再从技术层面考虑:router的不同接口不能同属一个网段。如果eth0属于192.168.1.0/24网段的话,eth1就必须是其他网段。
所以2楼说的是对的,你需要把左边网段设的跟DHCP地址池不同才可以。

running910 发表于 2014-04-18 21:17

谢谢您的回复!
我把eth0设为静态IP地址改成与DHCP地址池不同的网段,现在却不会转发eth1上的DHCP discover了,请看log
send_packet: Network is unreachable
send_packet: please consult README file regarding broadcast address.
send_packet: Network is unreachable
send_packet: please consult README file regarding broadcast address.

而如果eth0是通过DHCP方式从SERVER上获取到IP地址的话,还会转DHCP discover,但服务器不会回应
Forwarded BOOTREQUEST for 00:15:58:c2:f6:c1 to 192.168.2.1
Forwarded BOOTREQUEST for 00:15:58:c2:f6:c1 to 192.168.2.1
Forwarded BOOTREQUEST for 00:15:58:c2:f6:c1 to 192.168.2.1

以我自己看网上的资料的理解,eth0应该是跟DHCP地址池同一个网段的,只是router本身把自己的dhcp服务关闭,
只作为中继代理,但现在不知道在什么原因,请问您做过DHCP中继吗?欢迎继续提供您的建议。非常感谢!:D
回复 4# kastin


   

rainfinity 发表于 2014-04-19 09:46

192.168.1.1 是DHCP Server地址,那192.168.2.1是什么地址?

如果192.168.2.1是DHCP Server 地址, DHCP pool 是192.168.1.0/24, DHCP RELAY agent 的地址是192.168.1.10, 和eth0直连的DHCP server 地址是192.168.1.1吗? 那192.168.2.1配置在哪个接口?

1) router通过eth0转发discover给server,src地址为192.168.1.10,dst地址为192.168.1.1,并且是单播

所以DST地址应该为192.168.2.1而不是192.168.1.1, 另外你在192.168.1.10这个机器上可以ping 通 192.168.1.1 192.168.2.1吗?

running910 发表于 2014-04-21 15:29

:D 谢谢您的指出!我的确是有些地方说得不够清晰严谨,我在这楼尽量从新描述清楚

模型结构图如下:

dhcp server <------------> eth0 (router) eth1 <------------>dhcp client

dhcp server ip:192.168.1.1                            //一个普通的DHCP服务器,我用的就是另一个路由器的lan口
router eth0 ip:192.168.1.10                  // eth0是路由器的WAN接口,已经通过DHCP方式从dhcp server获取到了IP地址
router eth1 ip:192.168.3.1                     // eth1与无线网卡桥接,生成一个br-lan的接口,配置了静态IP地址,直接连接四个LAN口,但关闭了DHCP服务

期望效果:
      接在四个LAN口上的客户端,或者无线客户端,可以直接获取到dhcp server分配的IP地址,也就是说路由器只做一个DHCP中继代理

      我通过网络上查找的资料,这个应该是DHCP中继比较简单基本的应用,我用的是isc-dhcp-relay这个软件
   输入 dhcrelay -i br-lan 192.168.1.1 这个命令后,eth0确实是会转发br-lan上接收到的DHCP discover,但DHCP服务器没有任何回应(之前试的另外一个dhcp server是有回应offer,但中继代理没有转发offer给客户端,不过现在没有那个server了),不知道有没有可能是isc-dhcp-relay的bug,希望可以给些建议,找不到办法了,非常感谢!^_^
                     

   最后关于您的疑问:1) router通过eth0转发discover给server,src地址为192.168.1.10,dst地址为192.168.1.1,并且是单播

所以DST地址应该为192.168.2.1而不是192.168.1.1, 另外你在192.168.1.10这个机器上可以ping 通 192.168.1.1 192.168.2.1吗?

         我的回答:由于第一个帖子里有笔误,所以是不存192.168.2.1这个IP地址的,我相信您这个疑问也消除了!哈,谢谢,希望可以分析些想法或建议!





回复 6# rainfinity


   

rainfinity 发表于 2014-04-21 18:22

如果是这样的话, 肯定不会工作, 可以完全桥接, 这个其实不是dhcp relay, 是完全透传dhcp discovery + offer

                                                             br-lan ip: 192.168.1.10
dhcp server(192.168.1.1)---------------(br-lan2)router(br-lan1)-------------------dhcp client






running910 发表于 2014-04-22 14:34

不会工作?我不太理解噢。我这个不用桥接是因为我还要利用DHCP中继给添加option 82的,桥接也可以做到添加option 82吗?
还有能不能请您举个例子DHCP中继正确的应用模型呢?
谢谢了啊,希望可以得到您更多的想法与建议!O(∩_∩)O非常谢谢!!
回复 8# rainfinity


   

rainfinity 发表于 2014-04-22 16:41




画了一张图,希望对你有帮助.
页: [1] 2
查看完整版本: 关于dhcp中继问题,请教!非常感谢!!