Поводом для написания поста послужил возникший вопрос «Как маршрутизировать трафик через другой интерфейс на определенный адрес?»
В результате замены интернет-сервера у бухгалтеров клиент-банк (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
И все! Бухгалтерия в восторге
Системный администратор с 2000 года
Участник Freelancehunt, Хабр Q&A, cyberforum
Кейсы