Доступ в интернет (или другую сеть) через сервер с двумя сетевыми картами
В настоящее время у меня есть следующая настройка, в соответствии с которой мне нужен Сервер № 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.
Вам нужно сделать две вещи:
- Включить IP-переадресацию
- Настройте маскировку трансляции адреса исходной сети (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
Вы должны поместить это в соответствующий файл для вашего дистрибутива, чтобы он сохранялся при перезагрузке.