Доступ в интернет (или другую сеть) через сервер с двумя сетевыми картами

В настоящее время у меня есть следующая настройка, в соответствии с которой мне нужен Сервер № 1 для выхода в Интернет через Сервер № 2 с помощью его второго сетевого адаптера.

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

В настоящее время сервер 1 может пропинговать сервер 2, а сервер 2 может получить доступ как к Интернету, так и к серверу пинга 1.

Диаграмма сети

2 ответа

Необходимо соединить соединение между NIC 1 и NIC 2 на сервере 2. Измените ip на что-то вроде 192.168.1.x и шлюз по умолчанию на 192.168.1.254 на сервере 1. Также вы должны изменить IP-адрес сервера 2 NIC 1 до 192.168.1.y. При этом сервер 1 может связаться со своим шлюзом по умолчанию (маршрутизатор 1), который будет пересылать IP-пакеты в Интернет.

Другое решение состоит в том, чтобы настроить сервер 2 для пересылки пакетов, которые он получает от сервера 1, на его шлюз по умолчанию с использованием NAT. При этом сервер 2 будет полу-маршрутизатором.

Предполагая Linux.

Вам нужно сделать две вещи:

  1. Включить IP-переадресацию
  2. Настройте маскировку трансляции адреса исходной сети (SNAT)

Оставьте все как есть и убедитесь, что переадресация IP включена.

sysctl net.ipv4.ip_forward

[root@somehose ~]$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

Если для этого параметра установлено значение 0 (как в приведенном выше примере), необходимо установить значение 1 (включено).

редактировать /etc/sysctl.confУдостоверься что:

net.ipv4.ip_forward = 1

Бежать sysctl -p перезагрузить sysctl.conf это приведет к тому, что все настройки в этом файле будут прочитаны и установлены. Поскольку он находится в файле, он также будет зарезервирован во время загрузки.

Затем запустите sysctl net.ipv4.ip_forward еще раз, чтобы убедиться, что это действительно изменилось.

[root@somehose ~]$ sysctl net.ipv4.ip_forward
    net.ipv4.ip_forward = 1

Теперь я очень уверен в вышесказанном.

Вам также необходимо включить SNAT на server2. Предполагается, что NER # 2 сервера SERVER #2 - это eth1, а NIC # 1 сервера SERVER #2 - это eth0

Я не уверен на 100% в фактическом синтаксисе команды, и у меня нет тестового коврика, который я могу проверить, где я нахожусь, но вы можете просто погуглить "маскарад SNAP iptables", и вы можете найти инструкции. Если подумать, вы могли бы найти это в Google и получить полный ответ. Не берите в голову.

iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 10.10.10.3

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

Другие вопросы по тегам