Я работаю на Debian 7, пытаюсь пересылать запросы на другие машины через firewalld и имею следующую настройку:
--HOSTNAME-- ----IP----- ------------Configuration-------------
Firewall 192.168.0.2 (Debian 7, firewalld, static ip)
DHCP 192.168.0.3 (Debian 7, isc-dhcp-server, static ip)
DNS (Master) 192.168.0.4 (Debian 7, bind9m, static ip)
DNS (Slave) 192.168.0.5 (Debian 7, bind9, static ip)
Мои правила firewalld на DNS (главный и подчиненный)
<zone>
<short>Public</short>
<port protocol="udp" port="53"/>
<port protocol="tcp" port="53"/>
</zone>
Мои правила firewalld на брандмауэре
<zone>
<short>Public</short>
<forward-port to-addr="192.168.0.4" to-port="53" protocol="tcp" port="53"/>
<forward-port to-addr="192.168.0.4" to-port="53" protocol="udp" port="53"/>
</zone>
Когда я пытаюсь
$ ping hostname.mylocaldomain.com
С любой из машин это происходит успешно, потому что у меня все настроено в resolv.conf для использования моего DNS-сервера. Проблема в том, что я хотел бы направить весь трафик через брандмауэр. Не вдаваясь в общую цель, я опишу проблему:
Допустим, я изменяю /etc/resolv.conf в DHCP так, чтобы он указывал на брандмауэр и позволял ему направлять запросы в соответствующее место:
search mylocaldomain.com
nameserver 192.168.0.4
nameserver 8.8.8.8
nameserver 8.8.4.4
Пинг не проходит, поэтому я использовал TCP-дамп и получил следующее
# tcpdump port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:06:01.377752 IP PingFromMe.mylocaldomain.com.47588 > firewall.mylocaldomain.com.domain: 4279+ A? ns2.mylocaldomain.com. (34)
18:06:01.469696 IP PingFromMe.mylocaldomain.com.37619 > firewall.mylocaldomain.com.domain: 36025+ A? ns2.mylocaldomain.com.mylocaldomain.com. (47)
18:06:01.638045 IP firewall.mylocaldomain.com.42684 > ns1.mylocaldomain.com.domain: 41778+ PTR? 6.0.168.192.in-addr.arpa. (42)
18:06:01.639278 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.42684: 41778* 1/2/0 PTR firewall.mylocaldomain.com. (113)
18:06:01.639486 IP firewall.mylocaldomain.com.36812 > ns1.mylocaldomain.com.domain: 54761+ PTR? 3.0.168.192.in-addr.arpa. (42)
18:06:01.639881 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.36812: 54761* 1/2/0 PTR PingFromMe.mylocaldomain.com. (107)
18:06:02.641371 IP firewall.mylocaldomain.com.39348 > ns1.mylocaldomain.com.domain: 6957+ PTR? 4.0.168.192.in-addr.arpa. (42)
18:06:02.642031 IP ns1.mylocaldomain.com.domain > firewall.mylocaldomain.com.39348: 6957* 1/2/0 PTR ns1.mylocaldomain.com. (106)
Не уверен, что я правильно смотрю, но мне КАЖЕТСЯ, что все работает, просто обратный трафик не направляется обратно на PingFromMe.mylocaldomain.com
У меня три вопроса.
- Является ли то, что я думаю, причиной того, что я не получаю разрешение имени хоста?
- Разве firewalld не настроен на такую маршрутизацию?
- И, конечно, как это исправить?
*Примечание: IP-адресаДОЛЖЕНбыть таким же, как в списке настроек, поэтому при просмотре моего захвата TCP, просто для краткости, пожалуйста, ссылайтесь на машины по имени хоста.