CentOS 7 시스템에서 dnsmasq를 설정하려고 합니다. dnsmasq가 나타날 때마다 dhcp 서버 소켓을 바인딩할 수 없다는 로그가 표시됩니다.
Oct 24 14:47:16 centos1 dnsmasq[1200]: started, version 2.76 cachesize 150
Oct 24 14:47:16 centos1 dnsmasq[1200]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
Oct 24 14:47:16 centos1 dnsmasq-dhcp[1200]: DHCP, IP range 192.168.2.100 -- 192.168.2.199, lease time 2d
Oct 24 14:47:16 centos1 dnsmasq-tftp[1200]: TFTP root is /var/lib/tftpboot
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: reading /etc/resolv.conf
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: using nameserver 192.168.2.1#53
Oct 24 14:47:16 centos1 dnsmasq[1200]: read /etc/hosts - 2 addresses
Oct 24 14:47:17 centos1 dnsmasq[1200]: reading /etc/resolv.conf
Oct 24 14:47:17 centos1 dnsmasq[1200]: using nameserver 8.8.4.4#53
Oct 24 14:47:17 centos1 dnsmasq[1200]: using nameserver 192.168.2.1#53
**Oct 24 14:47:20 centos1 dnsmasq[1387]: failed to bind DHCP server socket: Address already in use**
포트를 확인했는데 netstat
모두 괜찮은 것 같습니다(모두 dnsmasq에 연결되어 있습니다).
[root@centos1 log]# netstat -anlp | grep -w LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1200/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1206/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1203/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1481/master
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::21 :::* LISTEN 1213/vsftpd
tcp6 0 0 :::53 :::* LISTEN 1200/dnsmasq
tcp6 0 0 :::22 :::* LISTEN 1206/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1203/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1481/master
[root@centos1 log]# netstat -anup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:36235 0.0.0.0:* 982/dhclient
udp 0 0 0.0.0.0:4011 0.0.0.0:* 1200/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 1200/dnsmasq
udp 0 0 0.0.0.0:60476 0.0.0.0:* 643/avahi-daemon: r
udp 0 0 0.0.0.0:67 0.0.0.0:* 1200/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 982/dhclient
udp 0 0 0.0.0.0:69 0.0.0.0:* 1200/dnsmasq
udp 0 0 0.0.0.0:5353 0.0.0.0:* 643/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 659/chronyd
udp6 0 0 :::53 :::* 1200/dnsmasq
udp6 0 0 :::69 :::* 1200/dnsmasq
udp6 0 0 :::49922 :::* 982/dhclient
udp6 0 0 ::1:323 :::* 659/chronyd
이것도 내꺼야/etc/dnsmasq.conf
interface=enp0s3,lo
#bind-interfaces
domain=centos.home
# DHCP range-leases
dhcp-range= 192.168.2.100,192.168.2.199,255.255.255.0,48h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.2.199
# Gateway
dhcp-option=3,192.168.2.1
# DNS
dhcp-option=6,192.168.2.1,8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
dhcp-host=08:00:27:c3:a2:df,192.168.2.199
# NTP Server
#dhcp-option=42,0.0.0.0
pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.2.199", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
내가 무엇을 놓치고 있나요?
답변1
dnsmasq를 중지하고 모든 포트를 확인했지만 dnsmasq에서 사용하는 모든 포트가 사라졌습니다. 어쨌든, 나는 이 아이디어가 나를 올바른 길로 인도했다고 생각합니다. 그래서 포트 상태를 확인해 보았는데 방화벽이 dnsmasq 포트 연결의 일부/전체를 차단하고 있을 수도 있다는 생각이 들었고 실제로 그런 일이 일어났습니다. 방금 이 포트의 방화벽을 비활성화했고 마침내 제대로 작동하기 시작했습니다.
수행한 작업을 문서화하려면 위의 netstat 명령에서 필요한 포트를 확인하고 방화벽의 모든 포트를 열었습니다.
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --add-port=69/udp --permanent
firewall-cmd --add-port=4011/udp --permanent
firewall-cmd --reload
감사해요