делаю не так. Подскажите, если не затруднит.
Есть две машины, для простоты (A) и (B), на каждой по бриджу, на A бридж 10.20.32.1/24, на B - 10.20.32.2/24, в каждом бридже по tap интерфейсу. Tap'ы подняты через tinc в режиме switch. Обе машины друг-друга пингуют, порты видят - с этим всё хорошо. Далее на машине A есть некий сервис с tcp портом. Пока для теста поставил неткат слушать порт 40404 на всех интерфейсах. Файрвол отключен. С машины B порт nmap'ом вижу. На машине B есть ещё интерфейс, с адресом 10.78.3.106/29. Рядом в локалке есть машина (C) с адресом 10.78.3.107/29, друг-друга видят, всё отлично. Пытаюсь сделать портмаппинг C(10.78.3.107) -> B(10.78.3.106:40404) -> A(10.20.32.1:40404):
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 10.78.3.106/32 -p tcp -m tcp --dport 40404 -j DNAT --to-destination 10.20.32.1:40404
iptables -t nat -A POSTROUTING -s 10.20.32.1/32 -p tcp -m tcp --sport 40404 -j SNAT --to-source 10.78.3.106:40404
Со стороны машины C порт 40404 на машине B закрыт. Подскажите, что я делаю не так?
Могу быть не прав, но кажется здесь не хватает на машине B: # iptables -t nat -A POSTROUTING -j MASQUERADE
А зачем мапить порт, если у тебя форвардинг работает? Пропиши маршрут и всё
Обсуждают сегодня