Рейтинг:1

Несколько vlan на одном интерфейсе в одной подсети

флаг ng

В приложении устройства мы используем следующую настройку сети VLAN:

В устройстве у нас есть внутренняя сеть для внутренних устройств и внешняя сеть для сети клиента/покупателя. Все устройства подключены через управляемый коммутатор к вычислительному модулю raspberry pi, на котором запускается приложение.

В настройке мы используем следующие VLAN

  • VLAN 1: внешняя сеть
  • VLAN 2: внутренняя сеть

Вычислительный модуль имеет на интерфейсе eth0 два интерфейса vlan eth0.1 (внешний) и eth0.2 (внутренний). Это сделано для того, чтобы клиент не видел внутренние сетевые устройства. Управляемый коммутатор имеет настроенные VLAN на основе портов.

настройка сети

Для внутренней сети вычислительный модуль использует eth0.2 со статическим ip-адресом 192.168.2.1 — устройства внутренней сети также в той же подсети 192.168.2.x.

Для внешней сети вычислительный модуль использует eth0.1 со статическим IP-адресом 192.168.1.100.

Наш конфиг на вычислительном модуле:

/etc/sysctl.conf

net.ipv4.ip_forward = 1

/etc/сеть/интерфейсы

# Внешний интерфейс VLAN
авто eth0.1
iface eth0.1 инет руководство
    vlan-сырье-устройство eth0


# внутренний интерфейс VLAN
авто eth0.2
iface eth0.2 инет руководство
    vlan-сырье-устройство eth0

/etc/dhcpcd.conf

интерфейс eth0
статический ip_address=
статические маршрутизаторы =
статическое имя_домена_серверы =
статический domain_search=

интерфейс eth0.1
статический ip_address=192.168.1.100/24
статические маршрутизаторы =
статическое имя_домена_серверы =
статический domain_search=

интерфейс eth0.2
статический ip_address=192.168.2.1/24
статические маршрутизаторы =
статическое имя_домена_серверы =
статический domain_search=

Для связи с внутренним устройством 192.168.2.100 напрямую с ПК клиента через внешний ip мы сделали следующие правила. При этом клиент получит доступ к внутреннему 192.168.2.100:80 через внешний IP-адрес 192.168.1.100:8080 на порту 8080.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j ПЕРЕНАПРАВЛЕНИЕ --на порт 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.2.100:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

В целом эта настройка работает, но не во всех случаях: клиент может изменить внешний IP-адрес eth0.1. Клиент может настроить IP-адрес eth0.1 на другой статический IP-адрес или DHCP. В случае статического IP-адреса 192.168.2.x на eth0.1 клиент достигнет 192.168.2.1 eth0.2.

Как возможно, что клиент не достигнет внутреннего IP-адреса 192.168.2.1, если внешний IP-адрес eth0.1 находится в той же подсети? Как можно разделить eth0.1 и eth0.2, если они находятся в одной подсети или имеют оба адреса 192.168.2.1?

Например: если eth0.2 имеет тот же IP-адрес, что и устройство из внутренней сети, то подключение к вычислительному модулю невозможно с этим конфликтом IP-адресов.

Ответить или комментировать

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