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

Инфо о iptables DNAT / REDIRECT на локальный

я использую Qubes OS, система, основанная на Xen микроядро, которое позволяет легко запускать несколько виртуальных машин и разделять вашу цифровую жизнь. Все домены по умолчанию подключены (через виртуальные интерфейсы) к FirewallVM, который подключен к NetworkVM, машине, которая управляет вашей сетевой картой и обеспечивает реальное подключение к Интернету.

Я пытался перенаправить (на FirewallVM) DNS-запросы, поступающие из некоторых доменов, на локальный кеш-сервер DNS (вместо NetworkVM), и я обнаружил, что должен использовать DNAT для перенаправления внешнего запроса (поступающего от ApplicationVM через виртуальный интерфейс) на localhost, как описано здесь: iptables перенаправляет внешние запросы на 127.0.0.1:

iptables -t nat -A PREROUTING -i vifX -p udp --dport 53 -j DNAT --to-destination 127.0.0.1:5353

Дело в том, что когда я использовал такие системы, как Debian, без виртуальных машин, например, для перенаправления HTTP-трафика через локальный прокси, например Privoxy (работающий на 127.0.0.1), я мог бы использовать REDIRECT:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8118


Я не могу понять, почему это не применимо в моей реальной ситуации, поскольку в обоих случаях мы говорим о внешних пакетах, исходящих от сетевой карты в одном случае и от виртуального интерфейса в другом, которые необходимо перенаправить на локальный порт.
Есть ли шанс, что такое поведение может быть специфичным для интерфейса?