如何利用dnsmasq来为多个vlan进行dhcp服务?dnsmasq.conf怎么配置?

lkcool7 2016-11-22 08:33:59
最近在由于工作原因需要给路由器的多vlan功能配置dhcp功能,实现不同vlan有不同的ip地址池。
比如说,现在我创建了3个vlan,vlan1对应网络接口br1(网桥),vlan2对应接口br2(网桥),vlan3对应接口br3(网桥)。
要实现的目标是利用dnsmasq的dhcp功能使在vlan1、vlan2、vlan3内的主机能够通过dhcp获得对应网段中的IP地址,以及所指定的网关和dns,实现不同vlan中的主机都能通过dhcp来上网。

目标如下
vlan1 地址池:192.168.170.21---192.168.170.254 网关:192.168.170.1 dns:192.168.170.1
vlan2 地址池:192.168.1.20---192.168.1.50 网关:192.168.1.1 dns:192.168.1.1
vlan3 地址池:192.168.2.10---192.168.2.20 网关:192.168.2.1 dns:192.168.2.1

原始dnsmasq配置文件如下:

user=root
group=root
domain-needed
filterwin2k
clear-on-reload
resolv-file=/etc/resolv.dns
no-ping
read-ethers
dhcp-leasefile=/var/web/tmp/dhcpd.leases
dhcp-lease-max=1000
dhcp-script=/usr/sbin/dhcp_service_event.sh
interface=br1 #接口br1#
dhcp-option=1,255.255.225.0
dhcp-option=3,192.168.170.1
dhcp-option=6,192.168.170.1
dhcp-range=192.168.170.21,192.168.170.254,86400
interface=br2 #接口br2#
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-range=192.168.1.20,192.168.1.50,86400
interface=br3 #接口br3#
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.2.1
dhcp-option=6,192.168.2.1
dhcp-range=192.168.2.10,192.168.2.20,86400

按照上面配置的话,位于不同虚拟局域网里的主机,确实能够自动获取相对应的ip,但是出现了一个问题,虽然通过dhcp获取了对应地址池的ip地址,但是发现主机却不能通过dhcp获取想要设置的gateway和dns,而且不同vlan中的主机能够获得的ateway和dns都为192.168.2.1(对应interface=br3后的几行),导致了vlan1和vlan2中的主机没法上网。

为了完成目标,想了些办法。后面改了一下配置文件,去除了为不同vlan指定gateway和dns的那几行配置,采用dnsmasq自动给出方式来为不同vlan进行dhcp服务。
user=root
group=root
domain-needed
filterwin2k
clear-on-reload
resolv-file=/etc/resolv.dns
no-ping
read-ethers
dhcp-leasefile=/var/web/tmp/dhcpd.leases
dhcp-lease-max=1000
dhcp-script=/usr/sbin/dhcp_service_event.sh
interface=br1 #接口br1#
dhcp-option=1,255.255.225.0
dhcp-range=192.168.170.21,192.168.170.254,86400
interface=br2 #接口br2#
dhcp-option=1,255.255.255.0
dhcp-range=192.168.1.20,192.168.1.50,86400
interface=br3 #接口br3#
dhcp-option=1,255.255.255.0
dhcp-range=192.168.2.10,192.168.2.20,86400

发现不同vlan中的主机这下确实能自动获得gateway和dns了(是网络接口br1、br2、br3的ip地址),但是这样自己就没法手动为各vlan配置gateway和dns了,说白了,就是目前的目标还是没实现,不知到我要怎么配置才能实现,还是dnsmasq就没有这个功能。满满的困惑,希望有朋友能够指点指点。谢谢

...全文
3619 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Monica爱学习 2019-12-10
  • 打赏
  • 举报
回复
引用 2 楼 o_alpha的回复:
可是这样的话,没有配NAT怎么上公网,而且没配置tap设备呀
iptables做nat不就行了?…
o_alpha 2019-10-17
  • 打赏
  • 举报
回复
可是这样的话,没有配NAT怎么上公网,而且没配置tap设备呀
lkcool7 2016-11-29
  • 打赏
  • 举报
回复 1
我来自问自答吧,其实我在后面找到了解决方法。dnsmasq关键配置如下: interface=br1 #接口br1# dhcp-option=br1,1,255.255.225.0 #指定掩码 dhcp-option=br1,3,192.168.170.1 #指定网关 dhcp-option=br1,6,192.168.170.1 #指定dns dhcp-range=br1,192.168.170.21,192.168.170.254,86400 #指定可分配的地址范围 interface=br2 #接口br2# dhcp-option=br2,1,255.255.255.0 dhcp-option=br2,3,192.168.1.1 dhcp-option=br2,6,192.168.1.1 dhcp-range=br2,192.168.1.20,192.168.1.50,86400 interface=br3 #接口br3# dhcp-option=br3,1,255.255.255.0 dhcp-option=br3.3,192.168.2.1 dhcp-option=br3,6,192.168.2.1 dhcp-range=br3,192.168.2.10,192.168.2.20,86400 如上配置,可对不同vlan提供相应的dhcp服务,能够保证不同vlan的主机都能通过hdcp获取正确的ip地址、网关、dns。

3,836

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 交换及路由技术相关问题讨论专区
社区管理员
  • 交换及路由技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧