Как настроить NAT-шлюз на CentOS 7, чтобы частный сервер мог получить доступ к интернету

Вопрос или проблема

У меня есть следующая диаграмма системы: Интернет –> сервер шлюза NAT (сервер 01) –> сервер приложения (сервер 02). Сервер шлюза NAT может получать доступ к интернету. Сервер 01 и сервер 02 могут пинговать друг друга. Оба сервера работают на CentOS 7.9. Я хочу, чтобы сервер 02 в частной подсети имел доступ к интернету через сервер шлюза NAT 01. Проблема, с которой я сталкиваюсь, заключается в том, что сервер 02 не может получить доступ к интернету. Можете помочь мне с причиной и конфигурационным решением в данном случае?

Сервер 01: IP: 192.168.100.100/24, GW: 192.168.100.254

Сервер 02: IP: 192.168.110.101/24, GW: 192.168.110.254

[centos@nat-gateway-server-01 ~]$ ip route

default via 192.168.100.254 dev eth0 proto static metric 100

192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.100 metric 100

[centos@nat-gateway-server-01 ~]$ sudo firewall-cmd –list-all

public (активен)

target: default

icmp-block-inversion: нет

interfaces: eth0

sources:

services: dhcpv6-client dns http https ssh

ports:

protocols:

masquerade: да

forward-ports:

source-ports:

icmp-blocks:

rich rules:

rule family="ipv4" source address="192.168.110.0/24" accept

[centos@nat-gateway-server-01 ~]$ sestatus

Статус SELinux: отключен

[centos@nat-gateway-server-01 ~]$ ping 192.168.110.101

PING 192.168.110.101 (192.168.110.101) 56(84) bytes of data.

64 bytes from 192.168.110.101: icmp_seq=1 ttl=63 time=0.158 ms

64 bytes from 192.168.110.101: icmp_seq=2 ttl=63 time=0.123 ms

— 192.168.110.101 ping statistics —

4 пакета передано, 4 получено, 0% потерь пакетов, время 3000ms

rtt min/avg/max/mdev = 0.056/0.101/0.158/0.042 ms

[centos@nat-gateway-server-01 ~]$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=110 time=11.6 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=110 time=11.5 ms

— 8.8.8.8 ping statistics —

2 пакета передано, 2 получено, 0% потерь пакетов, время 1001ms

rtt min/avg/max/mdev = 11.584/11.596/11.608/0.012 ms

[centos@app-server-02 ~]$ ip route

default via 192.168.110.254 dev eth0 proto static metric 100

192.16.110.0/24 dev eth0 proto kernel scope link src 192.168.110.101 metric 100

[centos@app-server-02 ~]$ ping 192.168.100.100

PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.

64 bytes from 192.168.100.100: icmp_seq=1 ttl=63 time=0.158 ms

64 bytes from 192.168.100.100: icmp_seq=2 ttl=63 time=0.123 ms

— 192.168.100.100 ping statistics —

4 пакета передано, 4 получено, 0% потерь пакетов, время 3000ms

rtt min/avg/max/mdev = 0.056/0.101/0.158/0.042 ms

[centos@app-server-02 ~]$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

— 8.8.8.8 ping statistics —

4 пакета передано, 0 получено, 100% потерь пакетов, время 2999ms

[centos@app-server-02 ~]$ sudo firewall-cmd –list-all

public (активен)

target: default

icmp-block-inversion: нет

interfaces: eth0

sources: 192.168.100.100

services: dhcpv6-client dns http https ssh

ports:

protocols:

masquerade: да

forward-ports:

source-ports:

icmp-blocks:

rich rules:

rule family="ipv4" source address="192.168.100.0/24" accept

[centos@app-server-02 ~]$ sestatus

Статус SELinux: отключен

Ответ или решение

Настройка NAT-шлюза на CentOS 7 для обеспечения доступа к интернету для частного сервера

Если ваш частный сервер (сервер 02) не может получить доступ к интернету через NAT-шлюз (сервер 01), вы можете столкнуться с рядом проблем. Давайте разберемся, как правильно настроить NAT-шлюз на CentOS 7 и выяснить, какие шаги необходимо предпринять, чтобы обеспечить вашему серверу доступ к интернету.

1. Начальная проверка настроек сети

Согласно вашему описанию, у вас есть следующие сетевые настройки:

  • Сервер 01 (NAT-шлюз):

    • IP-адрес: 192.168.100.100/24
    • Шлюз: 192.168.100.254
  • Сервер 02 (приложенческий сервер):

    • IP-адрес: 192.168.110.101/24
    • Шлюз: 192.168.110.254

Сервер 01 имеет доступ к интернету, так как вы можете пинговать адреса, такие как 8.8.8.8. Между серверами 01 и 02 связь установлена, так как пинг проходит успешно. Однако сервер 02 не может выполнить запросы к интернету. Проблема, скорее всего, связана с настройками маршрутизации и NAT.

2. Включение пересылки пакетов

Проверьте, включена ли пересылка пакетов на сервере 01. Для этого выполните следующую команду:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы сделать это изменение постоянным после перезагрузки, вам нужно отредактировать файл /etc/sysctl.conf и убедиться, что строка net.ipv4.ip_forward = 1 не закомментирована. После внесения изменений выполните команду:

sysctl -p

3. Настройка NAT

Убедитесь, что NAT правильно настроен на сервере 01. Для этого вам нужно использовать iptables. Выполните следующие команды:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

В этих командах:

  • eth0 должен быть интерфейсом, подключенным к интернету.
  • eth1 должен быть интерфейсом, подключенным к вашему частному сетевому сегменту с сервером 02.

Чтобы сохранить правила iptables, используйте команду:

service iptables save

4. Проверка конфигурации фаервола

Проверьте настройки фаервола с помощью команды:

sudo firewall-cmd --list-all

Убедитесь, что в правилах фаервола включено masquerade и добавьте правила для разрешения трафика от сети 192.168.110.0/24. Пример команды:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.110.0/24" accept'
firewall-cmd --reload

5. Проверка конфигурации сервера 02

Убедитесь, что маршруты на сервере 02 настроены корректно. Проверьте, что маршрут по умолчанию указывает на шлюз сервера 01 (192.168.110.254). Если маршруты настроены правильно, выполните команды:

ip route
ping 192.168.100.100

Убедитесь, что ваш сервер 02 использует правильный шлюз для доступа в интернет.

6. Тестирование выхода в интернет

Теперь попробуйте выполнить запрос на публичный IP-адрес с сервера 02:

ping 8.8.8.8

Если пинг проходит успешно, то NAT-шлюз сконфигурирован правильно и сервер 02 теперь может выходить в интернет.

Заключение

Если все шаги были выполнены корректно, и проблема сохраняется, проверьте дополнительные настройки, такие как маршрутизация на вашем внешнем маршрутизаторе или интернет-шлюзе. Настройка NAT может потребовать дополнительной диагностики в зависимости от инфраструктуры вашей сети.

Оцените материал
Добавить комментарий

Капча загружается...