Как перенаправить трафик с одного IP на другой, сохранив IP?

0

В настоящее время у меня есть следующие iptablesправила для перенаправления трафика с b.b.b.bна a.a.a.a:

-A PREROUTING -p tcp -m tcp --dport 25566 -j DNAT --to-destination a.a.a.a:25566
-A POSTROUTING -d a.a.a.a/32 -p tcp -m tcp --dport 25566 -j SNAT --to-source b.b.b.b

Однако весь трафик, направляемый в a.a.a.a(из b.b.b.b), показывает IP-адрес b.b.b.bкак IP- адрес входящего трафика.

Как сохранить исходный IP-адрес где-то в пакете, чтобы исходный IP-адрес был показан другому серверу, на который мы направляем трафик?

Уильям Эдвардс
источник
Сохраните исходный IP-адрес путем маршрутизации пакета, а не пересылки с NAT . Обычно используется NAT из-за недостаточного пространства IP-адресов для маршрутизации.
user4556274
@ user4556274 Не могли бы вы пролить свет на то, как это сделать?
Уильям Эдвардс
Это зависит от платформы. В типичном Linux вы бы включили маршрутизацию, отредактировав /etc/sysctl.confее, раскомментировав строку net.ipv4.ip_forward=1, а затем применив с помощью sysctl -p /etc/sysctl.conf. Пакеты, поступающие на один интерфейс, затем выходят на другой, если это то, что вызывает таблица маршрутизации ( ip -4 route). Однако, если у вас есть только один маршрутизируемый IP-адрес (обычная домашняя настройка), это не будет работать для интернет-трафика, хотя вы можете поэкспериментировать с локальной маршрутизацией в вашей домашней сети.
user4556274 26.12.16
Ваше второе правило переписывает исходный IP (Source NAT). Вы пробовали это без?
user2313067 27.12.16