Intereting Posts
Обтекание текста электронной почты способом, совместимым с форматом = flowed, например, с использованием параметра par Как система Linux синхронизирует wtmp и / var / run / utmp? Предварительная подготовка каждой строки, сколько времени потребовалось для ее создания Сетевое взаимодействие с мостами Linux Почему эхо не называется как / bin / sh -c echo foo выводить что-нибудь? Postfix / Dovecot Mail появляется в журналах, но не в соответствующей папке Яркость падает до 0 при подключении второго монитора Каков выбор логики / дизайна для структуры файловой системы unix / linux? Как запретить выбор пункта меню нажатием правой кнопки мыши? Оболочка xmllint не показывает число из выражения count xpath? Использовать символическую ссылку для перемещения каталога, созданного пакетом .deb – что-нибудь сломается? Проблемы с источником IP-адресов с виртуальным IP-адресом PaceMaker Инструмент для генерации трафика TCP Как добавить postinst-файл в мой debian-пакет? Управление пакетами, каталогами и PATH в Unix (OSX)

Используйте локальные сети одного сервера для доступа к локальной сети другого

Я немного растерялся здесь, поэтому я прошу вашей помощи. = D

У меня есть три сервера:

1# - LANs A and B 2# - LANs B and C 3# - LANs C and D 

Как я могу сделать доступ к серверу 1 # через LAN B ip, который находится в LAN D сервера 3 # с использованием сервера 2 #?

ПРИМЕЧАНИЕ. Мы можем использовать firewall-cmd ( iptables ) или любую другую функцию, доступную в CentOS 7.

Проиллюстрировать

 LAN B - 192.168.56.0/24 LAN C - 10.8.0.0/24 LAN D - 10.0.4.0/24 

То есть пинг ( ping 10.0.4.4 ) выполняется на сервере 1 # «обходной» путь B -> C -> D.

ПРИМЕЧАНИЕ: я сделал много и много тестов, и я действительно не знаю, как решить эту проблему … = [


РЕДАКТИРОВАТЬ # 1

Чтобы упростить задачу, я решил обогатить эту тему реальной информацией.

Сервер № 1

  • LAN A -> Игнорируется
  • LAN B -> enp0s17 (192.168.56.0/24)

     [root@localhost ~]# ip a 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s17:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:12:26:e2:6c brd ff:ff:ff:ff:ff:ff inet 192.168.56.122/24 brd 192.168.56.255 scope global noprefixroute enp0s17 valid_lft forever preferred_lft forever inet6 fe80::a00:12ff:fe26:e26c/64 scope link valid_lft forever preferred_lft forever 

Сервер № 2

  • LAN B -> enp0s17 (192.168.56.0/24)
  • LAN C -> tun0 (10.8.0.0/24)

     [root@localhost ~]# ip a 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s8:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:2c:d1:58 brd ff:ff:ff:ff:ff:ff inet 10.0.2.10/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s8 valid_lft 888sec preferred_lft 888sec inet6 fe80::2c5c:27aa:2636:8dc9/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s17:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:1c:a6:b9:59 brd ff:ff:ff:ff:ff:ff inet 192.168.56.120/24 brd 192.168.56.255 scope global noprefixroute enp0s17 valid_lft forever preferred_lft forever inet6 fe80::a00:1cff:fea6:b959/64 scope link valid_lft forever preferred_lft forever 5: tun0:  mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.8.0.1/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::6a67:7379:b64:967c/64 scope link flags 800 valid_lft forever preferred_lft forever 

Сервер № 3

  • LAN C -> tun0 (10.8.0.0/24)
  • LAN D -> enp0s8 (10.0.4.0/24)

     [root@localhost ~]# ip a 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s8:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:71:77:07 brd ff:ff:ff:ff:ff:ff inet 10.0.4.4/24 brd 10.0.4.255 scope global noprefixroute dynamic enp0s8 valid_lft 1115sec preferred_lft 1115sec inet6 fe80::899f:8ca4:a7c6:25a7/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s17:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:ea:4e:40:ae brd ff:ff:ff:ff:ff:ff inet 192.168.56.121/24 brd 192.168.56.255 scope global noprefixroute enp0s17 valid_lft forever preferred_lft forever inet6 fe80::a00:eaff:fe4e:40ae/64 scope link valid_lft forever preferred_lft forever 4: tun0:  mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.8.0.6/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::48c2:b3cd:5845:5d35/64 scope link flags 800 valid_lft forever preferred_lft forever 

Основываясь на предложениях @slm, мы сделали следующее:

Команды на сервере № 2

 $ echo -n "net.ipv4.ip_forward=1" >> /etc/sysctl.d/ip_forward.conf $ sysctl -w net.ipv4.ip_forward=1 $ firewall-cmd --permanent --direct --passthrough ipv4 -t nat \ -I POSTROUTING -o tun0 -j MASQUERADE -s 192.168.56.0/24 $ firewall-cmd --reload 

Команды на сервере № 1

 $ ping 10.0.4.4 
  • ПРОБЛЕМА -> Нет ответа для команды ping 10.0.4.4 .
  • ВАЖНО -> Это тесты, которые я делаю на виртуальных машинах.

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

По некоторым причинам люди, кажется, думают, что для маршрутизации нужен хотя бы NAT или iptables , и в интернете полно рекомендаций для этого. Это действительно не нужно, и моя любимая мозоль.

Все, что вам нужно сделать, это

1) Включить пересылку на сервере № 2. Это уже было описано (добавьте файл в /etc/sysctl.d/ , перезагрузитесь и посмотрите, показывает ли cat /proc/sys/net/ipv4/ip_forward 1 , или включите его напрямую с помощью echo 1 > /proc/sys/net/ipv4/ip_forward ).

2) Установите маршрут на всех хостах, которые хотят использовать шлюз . Это то, что большинство людей забывают. Итак, на сервере № 1 вам нужно что-то вроде

 ip route add 10.8.0.0/24 dev enp0s17 via 192.168.56.120 ip route add 10.0.4.0/24 dev enp0s17 via 192.168.56.120 

и то же самое на всех других хостах в LAN A и B, которые хотят достигнуть LAN C и D. На сервере # 3 (и всех других хостах это касается), вам нужно

 ip route add 192.168.56.0/24 dev tun0 via 10.8.0.1 

Это говорит каждому хосту, что когда он хочет подключиться к удаленной локальной сети, он должен пройти через сервер № 2 с соответствующим IP-адресом сервера № 2 в локальной сети.

Вы можете проверить, что маршрутизация работает с ip route get abcd на сервере №1 и сервере №3. Теперь проверь с ping . Если что-то не так, отладьте с помощью tcpdump . Если брандмауэр мешает, отключите его при необходимости.

Когда все работает, используйте какой-либо способ сделать маршруты постоянными, например распределить их через DHCP, или добавить их в подходящий файл конфигурации.

Судя по всему, вы описываете NAT. NAT (трансляция сетевых адресов ) – это место, где трафик из одной сети (LAN) маскируется как поступающий от другого сервера (WAN), который обычно находится между двумя сетями.

  server #1 +-----------------+ | | | | | 10.0.0.2|------+ | | | server #3 (NAT) +--------------+ +-----------------+ +-------+ +-----------------+ | | |switch |-----+10.0.0.1 | | (D) | +-------+ | | | | server #2 | | (C) 54.1.1.23 |-----------+ 54.1.1.1 |-----+Internet +-----------------+ | | | | | | | | +-----------------+ | | | (B) | | | | | 10.0.0.3|-------+ +--------------+ | | +-----------------+ 

В этом руководстве рассказывается, как вы настроите его на CentOS 7.x, под названием « Развернуть исходящий NAT-шлюз в CentOS 7» .

Суть этого типа настройки состоит в том, чтобы настроить сервер в положении (C) с двумя сетевыми картами, имеющими 2 IP-адреса из двух разных сетей. Вам также нужно настроить этот сервер так, чтобы он направлял трафик. Поведение системы Linux по умолчанию не делает этого:

 $ sudo sysctl -w net.ipv4.ip_forward=1 $ sudo 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.d/ip_forward.conf' 

После этого вам необходимо настроить брандмауэр в системе (C) чтобы он также перенаправлял трафик:

 $ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat \ -I POSTROUTING -o eth0 -j MASQUERADE -s 10.0.0.0/24 $ sudo firewall-cmd --reload