Windows за двойным NAT, как правильно направить трафик?

Всем привет.

Имеем Proxmox с внешним IP-адресом, на нём три Windows Server 2016 и FreeBSD в качестве шлюза для них (нужен для схемы GRE over IPsec). NAT (masquerade) происходит между Proxmox и FreeBSD (через iptables) и между FreeBSD и серверами на Windows (через pf). Пакетные фильтры пока выключены в обоих роутерах, роутинг включен.

Проблема в том, что у FreeBSD никаких проблем, через NAT поднимаются даже GRE с IPsec'ом, а с Windows проходит только пинг. То есть пингануть 8.8.8.8 я могу, а получить от него DNS-ответ - нет; пинг до другого сервера за удалённым шлюзом ходит, RDP - нет.

Что интересно, tcpdump внешнего интерфейса на Proxmox'е показывает, что запросы от FreeBSD уходят с внешним source IP, а такие же запросы от Windows - с внутренним, который отнатился один раз, т. е. как будто второй NAT не происходит. Интересно, что даже внутри GRE-туннеля, когда натятся уже пакеты GRE, Windows терпит крах.

Где может быть проблема? В iptables банальный postrouting masquerade, основанный на source IP, на FreeBSD просто nat on wan all -> wan. Может быть, я дико туплю и не вижу чего-то очевидного или просто недостаточно глубоко знаю технологии.
Спасибо.

P. S.

Вывод tcpdump: первые 8 строк это, очевидно, пинги, последние 5 - nslookup ya.ru 8.8.8.8, всё с сервера Windows. Очень странно.

~# tcpdump -n host 8.8.8.8
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:25:40.687072 IP x.x.203.43 > 8.8.8.8: ICMP echo request, id 4854, seq 74, length 40
18:25:40.715676 IP 8.8.8.8 > x.x.203.43: ICMP echo reply, id 4854, seq 74, length 40
18:25:41.695257 IP x.x.203.43 > 8.8.8.8: ICMP echo request, id 4854, seq 75, length 40
18:25:41.723833 IP 8.8.8.8 > x.x.203.43: ICMP echo reply, id 4854, seq 75, length 40
18:25:42.710761 IP x.x.203.43 > 8.8.8.8: ICMP echo request, id 4854, seq 76, length 40
18:25:42.739347 IP 8.8.8.8 > x.x.203.43: ICMP echo reply, id 4854, seq 76, length 40
18:25:43.726352 IP x.x.203.43 > 8.8.8.8: ICMP echo request, id 4854, seq 77, length 40
18:25:43.754949 IP 8.8.8.8 > x.x.203.43: ICMP echo reply, id 4854, seq 77, length 40
18:26:06.450895 IP 10.6.100.2.56611 > 8.8.8.8.53: 1+ PTR? 8.8.8.8.in-addr.arpa. (38)
18:26:08.462490 IP 10.6.100.2.58269 > 8.8.8.8.53: 2+ A? ya.ru. (23)
18:26:10.462353 IP 10.6.100.2.65350 > 8.8.8.8.53: 3+ AAAA? ya.ru. (23)
18:26:12.477537 IP 10.6.100.2.55766 > 8.8.8.8.53: 4+ A? ya.ru. (23)
18:26:14.494460 IP 10.6.100.2.60016 > 8.8.8.8.53: 5+ AAAA? ya.ru. (23)

Вывод таблицы NAT iptables на Proxmox'е:

~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:ssh to:10.6.100.2

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.6.100.0/30 anywhere

10.6.100.0/30 - это сеть между FreeBSD и Proxmox'ом.
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
Adorne
@Adorne Автор вопроса
Как обычно, решил (если можно так назвать) сам.
Настроил белый адрес, не работало даже так, хотя теперь в инет уходили виндовые пакеты с белым source-адресом. Сброс конфига в ноль не помог, зато помогла чистая установка, а единственное отличие от прошлой было в том, что сетевые карты не virtio, а Intel E1000. Работает как часы.

Ради эксперимента пробовал с белым адресом и virtio-картами Debian - пошло сразу как надо.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы