Назад | Перейти на главную страницу

Установите брандмауэр хоста, чтобы виртуальные машины получали динамический IP-адрес от dnsmasq

Виртуальным машинам (KVM / libvirt) не удается получить динамический IP-адрес от запущенного libvirt dnsmasq, запущенного на хосте CentOS, при работающем брандмауэре. Когда я выключаю брандмауэр (CSF), виртуальная машина получает IP. Что сработало для тех, кто сталкивался с подобным?

Я пробовал настраиваемые правила iptables (INPUT OUTPUT и FORWARD) в csfpost.sh.

/sbin/iptables -A INPUT  -j ACCEPT -s $SUBNET_PRIVATE -i $IF_TUN_0  
/sbin/iptables -A OUTPUT -j ACCEPT -s $SUBNET_PRIVATE -o $IF_TUN_0  
/sbin/iptables -A FORWARD -i $IF_TUN_0 -o $IF_ETH_0 -j ACCEPT  
/sbin/iptables -A FORWARD -i $IF_ETH_0 -o $IF_TUN_0 -j ACCEPT 

Я пробовал записи в csf.allow.

#allow dnsmasq to serve dynamic IPs to virtual machines on local subnet 
tcp:in:d=53:s=10.x.y.0/24 
udp:in:d=53:s=10.x.y.0/24 
tcp:out:d=53:s=10.x.y.0/24 
udp:out:d=53:s=10.x.y.0/24

Какие важные шаги я упустил?

Определив, как все открыть ...

/sbin/iptables -A INPUT  -j ACCEPT -p all -s 0/0 -i $IF_TUN_0
/sbin/iptables -A OUTPUT -j ACCEPT -p all -s 0/0 -o $IF_TUN_0

Подсказка пришла из / var / log / messages. Порты 67 и 68 были заблокированы.

# allow broadcasted dhcp requests, IP is unknown hence all zero'd
/sbin/iptables -A INPUT  -j ACCEPT -p udp -d 0/0 -i $IF_TUN_0 --dport 67 --sport 68
# allow dhcp renewal requests, the IP is known at this point
/sbin/iptables -A INPUT  -j ACCEPT -p udp -d $IP_PRIVATE_HOST -i $IF_TUN_0 --dport 68 --sport 67

# allow dhcp acks
/sbin/iptables -A OUTPUT  -j ACCEPT -p udp -s $IP_PRIVATE_HOST -o $IF_TUN_0 --dport 68 --sport 67
# allow dhcp renewal response
/sbin/iptables -A OUTPUT  -j ACCEPT -p udp -s $IP_PRIVATE_HOST -o $IF_TUN_0 --dport 67 --sport 68