Вопрос или проблема
У меня есть сервер A
, который имеет сетевую карту с 4 портами, и он настроен на выход в интернет через свой eth0
, где указаны DNS, шлюз и прокси.
У меня есть идентичный сервер B
с статическим IP-адресом 192.168.1.2, и я только подключаю его порт eth1
к порту eth1
сервера A (где сервер A eth1 имеет статический IP 192.168.1.1).
Как в Linux, а именно в RHEL-8.10, настроить сеть, чтобы предоставить серверу B доступ в интернет через сервер A?
В качестве администратора мне нужна тестовая система (сервер B), которую я могу “подорвать” и перезагрузить, не влияя на пользователей на производственном сервере A. Но мне нужен доступ в интернет на сервере B, чтобы удобно выполнять базовые операции с yum install.
Ответ или решение
Настройка доступа в интернет через другой сервер – это важная задача для системных администраторов, особенно в сценариях, где необходимо обеспечить доступ к внешним ресурсам с помощью изолированных тестовых машин. Рассмотрим, как настроить сервер B для доступа в интернет через сервер A в Linux, конкретно в Red Hat Enterprise Linux (RHEL) 8.10.
1. Исходные условия
У вас есть два сервера:
-
Сервер A:
- Порт eth0: настроен для доступа в интернет, с указанным DNS, шлюзом и прокси.
- Порт eth1: имеет статический IP 192.168.1.1.
-
Сервер B:
- Порт eth1: имеет статический IP 192.168.1.2.
- Подключен к порту eth1 сервера A.
2. Настройка сети на сервере A
Для того чтобы сервер B мог использовать сервер A для доступа в интернет, необходимо выполнить следующие шаги на сервере A:
2.1. Включение IP-переадресации
Откройте терминал и выполните команду:
sudo sysctl -w net.ipv4.ip_forward=1
Эта команда включает IP-переадресацию. Чтобы сделать это изменение постоянным, отредактируйте файл /etc/sysctl.conf
и добавьте следующую строку:
net.ipv4.ip_forward = 1
Перезагрузите настройки:
sudo sysctl -p
2.2. Настройка iptables
Для обеспечения NAT (Network Address Translation) необходимо настроить правила iptables. Выполните следующие команды:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Сохраните правила iptables, чтобы они применялись после перезагрузки:
sudo iptables-save | sudo tee /etc/sysconfig/iptables
3. Настройка сети на сервере B
Теперь на сервере B убедитесь, что сетевые настройки установлены правильно.
3.1. Настройка сети
Отредактируйте конфигурационный файл интерфейса eth1
. Обычно он находится в /etc/sysconfig/network-scripts/ifcfg-eth1
. Файл может выглядеть следующим образом:
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
3.2. Настройка DNS
Также потребуется настроить DNS на сервере B. Для этого отредактируйте файл /etc/resolv.conf
и добавьте свой DNS-сервер, например:
nameserver 8.8.8.8
4. Проверка подключения
После выполнения всех настроек перезагрузите сервисы сетевого интерфейса на сервере B:
sudo systemctl restart network
Теперь протестируйте подключение к интернету с помощью команды:
ping -c 4 google.com
Если ответ приходит, значит, настройки выполнены корректно, и сервер B имеет доступ к интернету через сервер A.
5. Заключение
Настройка доступа к интернету через другой сервер – это эффективная методика для обеспечения функционирования тестовой среды без воздействия на рабочие серверы. Следуя данным инструкциям, вы можете легко настроить два сервера для совместной работы и использовать сервер B для установки необходимых пакетов через yum install
, что увеличит вашу продуктивность и упростит рабочие процессы.