2014-09-28 5 views
0

У меня есть машина с 3 интерфейсами, две публичные и одна локальная. Все они из одного и того же диапазона IP. Все внешние службы на машине используют внутренний IP-адрес.Назначение компьютера IP под linux

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

Возможно ли под Linux заставить все исходные адреса быть адресами определенного интерфейса, даже если пакет будет маршрутизироваться через другой интерфейс?

Скажем, у нас есть машина с 3 интерфейсами, A.B.C.1, A.B.C.2, A.B.C.3. Из них A.B.C.1 и A.B.C.2 подключены к Интернету (и A.B.C.0/24 направляется к ним). Все сервисы на компьютере прослушивают A.B.C.3. Можно ли гарантировать, что все пакеты, происходящие на машине, будут иметь адрес источника A.B.C.3, даже если они покинут машину через A.B.C.1 или A.B.C.2?

Задание адреса источника при открытии гнезда для исходящего соединения не является решением; мы говорим о существующих программах, которые нельзя изменить. Кроме того, он должен работать и для ICMP.

Спасибо.

ответ

0

Это может быть достигнуто с iptables:

sudo iptables -t nat -A OUTPUT -j SNAT --to A.B.C.3 

Если iptables служба не запущена, она может быть активирована с помощью следующей команды:

sudo service iptables restart 
+0

Спасибо, я буду копаться в этом. Однако на A.B.C.3 есть другие, физически разные машины, использующие другие адреса из диапазона A.B.C. *. Я не хочу, чтобы их исходящие пакеты были переведены. То есть, если машина в A.B.C.9 использует маршрут по умолчанию A.B.C.3, я хочу, чтобы его пакеты оставались как A.B.C.9, только машина с тремя интерфейсами должна быть вынуждена использовать A.B.C.3 для всех исходящих пакетов. Наверное, мне нужно будет входить в iptables (который активен, как брандмауэр) и таблицу NAT (которую я никогда не использовал). – Zoltan

+0

Затем используйте вместо этого цепочку «OUTPUT». См. Мой обновленный ответ. – Yoel

Смежные вопросы