免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13613 | 回复: 15
打印 上一主题 下一主题

关于dhcp中继问题,请教!非常感谢!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-03 22:18 |只看该作者 |倒序浏览


基本架构如下:

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
               
找不到原因了,请问有什么建议想法分享一下吗?谢谢!  

论坛徽章:
1
技术图书徽章
日期:2014-04-28 13:16:45
2 [报告]
发表于 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 不是一个网段就可以了.

论坛徽章:
0
3 [报告]
发表于 2014-04-17 19:02 |只看该作者
非常谢谢您的回复!
您的意思是eth0不应该跟server同一网段?似乎不是这样子吧,eth0就是通过dhcp server分配的IP地址,不然作为agent,eth0也不会把discover转发给dhcp server,会不会有其他原因呢?而且我试了其他DHCP server并不会对eht0转发的discover进行回复
回复 2# rainfinity


   

论坛徽章:
0
4 [报告]
发表于 2014-04-18 16:01 |只看该作者
所谓代理的意思是:server是为client所在网段分发地址,而不是为自己所在网段分发地址。
再从技术层面考虑:router的不同接口不能同属一个网段。如果eth0属于192.168.1.0/24网段的话,eth1就必须是其他网段。
所以2楼说的是对的,你需要把左边网段设的跟DHCP地址池不同才可以。

论坛徽章:
0
5 [报告]
发表于 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中继吗?欢迎继续提供您的建议。非常感谢!
回复 4# kastin


   

论坛徽章:
1
技术图书徽章
日期:2014-04-28 13:16:45
6 [报告]
发表于 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吗?

论坛徽章:
0
7 [报告]
发表于 2014-04-21 15:29 |只看该作者
谢谢您的指出!我的确是有些地方说得不够清晰严谨,我在这楼尽量从新描述清楚

模型结构图如下:

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


   

论坛徽章:
1
技术图书徽章
日期:2014-04-28 13:16:45
8 [报告]
发表于 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






论坛徽章:
0
9 [报告]
发表于 2014-04-22 14:34 |只看该作者
不会工作?我不太理解噢。我这个不用桥接是因为我还要利用DHCP中继给添加option 82的,桥接也可以做到添加option 82吗?
还有能不能请您举个例子DHCP中继正确的应用模型呢?
谢谢了啊,希望可以得到您更多的想法与建议!O(∩_∩)O非常谢谢!!
回复 8# rainfinity


   

论坛徽章:
1
技术图书徽章
日期:2014-04-28 13:16:45
10 [报告]
发表于 2014-04-22 16:41 |只看该作者



画了一张图,希望对你有帮助.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP