Пускаем траффик через другой интерфейс

Поводом для написания поста послужил возникший вопрос «Как пустить траффик через другой интерфейс на определенный адрес?»

В результате замены интернет-сервера у бухгалтеров клиент-банк (win32-клиент) перестал соединятся с банком выкидывая ошибку

Доступ с данного IP адреса запрещен

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

Начальные данные

91.x.x.5 — адрес старого сервера
91.x.x.10 — адрес нового сервера
195.x.x.10 — адрес банка

Идея

  • Удаляем 91.x.x.5 с внешного интерфейса старого сервака
  • Назначаем 91.x.x.5 алиасом на внешней интерфейсе нового сервака
  • Пускаем траффик на 195.x.x.10 через 91.x.x.5. Весь остальной траффик ходит через 91.x.x.10 как и положено

Реализация

Удаляем адрес на старом сервере

ip addr del 91.x.x.5/24 dev eth0

Добавляем его на новом

ip addr add 91.x.x.5/24 brd 91.x.x.255 dev eth0 label eth0:0

Проверяем, что получилось

ip addr show eth0

В выхлопе должно быть как-то так

inet 91.x.x.10/24 brd 91.x.x.255 scope global eth0
inet 91.x.x.5/24 brd 91.x.x.255 scope global secondary eth0:0

Порядок. Далее одно правило в файеворл

iptables -t nat -I POSTROUTING -d 195.x.x.10 -j SNAT --to 91.x.x.5

И все! Бухгалтерия в восторге

Александр Черных
системный администратор

Статьи по теме

0