我有一个 cobbler 服务器,正在尝试安装。不幸的是,dnsmasq 没有监听正确的接口。
它应该监听分配给 br1 的 192.168.10.2 网络
[root@cob log]# ip address show | awk '/\<inet\>/ { print $NF, '\t', $2 }'
lo 127.0.0.1/8
br0 172.16.10.2/24
br1 192.168.10.2/24
virbr0 192.168.122.1/24
然而它并没有这么做。
[root@cob log]# netstat -planu | egrep -v "::|Local|\(serv" | awk -F' ' '{ print $4"\t","|------|", $7 }'
0.0.0.0:53 |------| 6526/dnsmasq
127.0.0.1:960 |------| 3752/rpc.statd
0.0.0.0:67 |------| 6526/dnsmasq
0.0.0.0:37444 |------| 3752/rpc.statd
0.0.0.0:69 |------| 3922/xinetd
0.0.0.0:111 |------| 3445/rpcbind
0.0.0.0:631 |------| 3781/cupsd
0.0.0.0:652 |------| 3445/rpcbind
服务器未在正确的网络上提供 DHCP 服务。
[root@cob log]# nmap -sU -v 192.168.10.2
...
PORT STATE SERVICE
53/udp open|filtered domain
67/udp open|filtered dhcps
69/udp open|filtered tftp
111/udp open rpcbind
631/udp open|filtered ipp
37444/udp open|filtered unknown
nmap 显示它正在通过 UD 在正确的接口上提供服务,但它被过滤了。不过,我在 iptables 中为它们制定了规则来防止这种情况发生。
[root@cob log]# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5910 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 69 -j ACCEPT
-A INPUT -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp -m udp --dport 69 -j ACCEPT
-A INPUT -p udp -m udp --dport 25150 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25151 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25150 -j ACCEPT
-A INPUT -p udp -m udp --dport 25151 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25152 -j ACCEPT
-A INPUT -p udp -m udp --dport 25152 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
我的 dnsmasq 配置文件...
# Cobbler generated configuration file for dnsmasq
# Fri Mar 6 13:22:03 2015
# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts
interface=br1
dhcp-range=br1,192.168.10.220,192.168.10.240
dhcp-option=3,192.168.10.2
dhcp-lease-max=1000
dhcp-authoritative
dhcp-boot=pxelinux.0
dhcp-boot=net:normalarch,pxelinux.0
dhcp-boot=net:ia64,/var/lib/cobbler/elilo-3.6-ia64.efi
我尝试了各种解决方案,但还是无法让 dnsmasq 在正确的端口号上工作。如果可能的话,我将不胜感激。
答案1
DNSMasq 正在监听所有接口。我不知道它为什么忽略了您的 cobbler 配置。请检查您的日志以获取信息。我知道例如 eth0:N 接口无效,也许 brN 接口是相同的。
- 检查 dnsmasq conf 文件是否反映了 cobbler 配置。
- 尝试使用 listen-address 而不是 interface。注意手册页中关于 loopback 的内容。