Корректный способ направить между 2 интерфейсами с netplan в Ubuntu 18.04

Проблема и конфигурация сети

Я в настоящее время пытаюсь позволить коммуникацию между двумя интерфейсами, каждым с их собственной подсетью, в сервере Ubuntu 18.04 с помощью netplan, но мне тяжело получать корректную конфигурацию. Вот графическое представление того, на что похожа сеть:

Image of Network Layout


Сетевое объяснение

В изображении центральное желтое устройство является сервером DHCP для клиентов на левом использовании интерфейса enp8s0 со статическим ip 192.168.254.254 и маской подсети 255.255.255.240. Клиенты (оранжевые поля) получают свой IP от сервера DHCP. Каждый клиент также размещает веб-страницу через Nginx. Все эти устройства выполняют сервер Ubuntu 18.04. Адреса, возможно изменяющиеся на каждой клиентской машине, не являются беспокойством.

На правой стороне желтый "сервер" имеет интерфейс enp7s0 настроенный со статическим IP 172.16.0.1 и маской подсети 255.255.255.252. Этот интерфейс затем подключен к моему ноутбуку, который имеет его интерфейсный набор к 172.16.0.2 с той же маской подсети.


Полная цель

То, что я пытаюсь сделать, смочь просмотреть веб-сайт в любом из клиентов от моего ноутбука. Нет никакой потребности в соединении с Интернетом ни на одной из этих машин, и все соединения сделаны по кабелям Ethernet.


Текущая конфигурация

Netplan:

Желтый "сервер" netplan файл конфигурации:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp7s0:
      addresses: [172.16.0.1/30]
      gateway4: 172.16.0.1
      routes:
        - to: 192.168.254.240/28
          via: 172.16.0.1
          on-link: true
    enp8s0:
      addresses: [192.168.254.254/28]
      gateway4: 192.168.254.254
      routes:
        - to: 172.16.0.0/30
          via: 192.168.254.254
          on-link: true

Передача IP:

Строка net.ipv4.ip_forward=1 не прокомментирован в/etc/sysctl.conf файле.

Выполнение cat /proc/sys/net/ipv4/ip_forward возвраты 1.

Сервер DHCP:

Я установил INTERFACESv4, равный enp8s0 в/etc/default/isc-dhcp-server.

Наконец, мой/etc/dhcp/dhcpd.conf настроен следующим образом:

# option definitions common to all supported networks...

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# So DHCP server knows of other subnet
subnet 172.16.0.0 netmask 255.255.255.252 {
}

# DHCP server subnet
subnet 192.168.254.240 netmask 255.255.255.240 {
  range 192.168.254.241 192.168.254.253;
  option subnet-mask 255.255.255.240;
  option routers 192.168.254.254;
  option broadcast-address 192.168.254.255;
  default-lease-time 600;
  max-lease-time 7200;
}
4
задан 6 July 2018 в 21:28

1 ответ

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

Что необходимо, вероятно, полагать, что выполнение на самом деле заставляет систему вести себя как маршрутизатор и делает всю передачу с NAT. Быстрый и простой способ сделать это должно иметь ПОДМЕНУ NAT в каждом из интерфейсов. (Но необходимо будет также дергать правила маршрута, которые что Вы имеете в распоряжении, так как они не будут работать правильно.)

Необходимо добавить правила к брандмауэру, который обработал бы следующие случаи:

  • 192.168.254.240/28-> 172.16.0.0/30
  • 172.16.0.0/30-> 192.168.254.240/28

С iptables необходимо было бы настроить его как так (прокомментированные строки с # вначале просто объясняют, что каждое правило делает):

# Allow traffic to be forwarded from enp7s0 to enp8s0
iptables -A FORWARD -i enp7s0 -j ACCEPT
# Allow traffic to be forwarded from enp8s0 to enp7s0
iptables -A FORWARD -i enp8s0 -j ACCEPT

Также необходимо установить правила NAT, и это не будет очень хорошим, но мы должны позволить 'маршрутизатору' быть тем, что мы подменяем источники как.

iptables -t nat -A POSTROUTING -o enp7s0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp8s0 -j MASQUERADE

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

Сообщите мне, не работает ли это, я пойду и вырою в проблему более глубоко, если это происходит.

1
ответ дан 6 July 2018 в 21:28

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

Похожие вопросы: