Несколько VLAN, одна сеть. Или: Несколько VLAN, та же сеть.

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

Я провайдер. У меня закончились IP4. Больше нет доступных распределений IP4.
Тем не менее, я использую 4 IP на 1 клиента, потому что коммутаторы оптоволоконной сети используют VLAN для маршрутизации к клиентам.

Как мне, например, предоставить 127 различным VLAN каждому уникальный IP из /25, чтобы каждый был там маршрутизирован?

Допустим, мой IP 3.8.3.1/25. Как мне выделить 3.8.3.2 для vlan 3001, 3.8.3.3 для vlan 3002, … 3.8.3.127 для vlan 3127?

  • Требование 1: Эти IP должны иметь возможность общения друг с другом.
  • Требование 2: DHCP
  • Требование 3: Должно быть совместимо с формированием трафика.

Я использую 4 IP на 1 клиента, потому что коммутаторы оптоволоконной сети используют VLAN для маршрутизации к клиентам.

Я предполагаю, что это означает, что вы используете /30 на VLAN в данный момент. Промежуточным улучшением было бы использование /31 (с двумя адресами хоста и нулевыми резервированными адресами) – не все системы поддерживают это пока, так как это относительно недавно стандартизированный специальный случай, но многие уже делают; и хотя это не так плотно, как вы спрашиваете, тем не менее, это в 2 раза эффективнее, чем традиционное /30, а также проще в реализации, чем запрос.

192.168.5.4/30
  192.168.5.4 - устаревшая широковещательная рассылка
  192.168.5.5 - хост A
  192.168.5.6 - хост B
  192.168.5.7 - стандартная широковещательная рассылка

192.168.5.4/31
  192.168.5.4 - хост A
  192.168.5.5 - хост B
  нет резервированных адресов

Дальше можно использовать пару /32 – то есть, вовсе без “подавления”, но с явным маршрутом к адресату. Linux поддерживает это, это обычно называют “point-to-point” конфигурацией, как и большинство BSD, и очень часто это используется с одинаковым локальным адресом на нескольких интерфейсах – это не вызывает проблем, потому что /32 не расширяется в какие-либо пересекающиеся маршруты подсетей. Это был бы один из двух методов для реализации того, что вы запрашиваете – при условии, что все вовлеченные системы поддерживают это.

eth0.3 - ip addr add 192.168.5.1/32 peer 192.168.5.3/32
eth0.4 - ip addr add 192.168.5.1/32 peer 192.168.5.4/32
eth0.5 - ip addr add 192.168.5.1/32 peer 192.168.5.5/32
...

Что на самом деле является сокращением для “адрес 192.168.5.1/32, а также маршрут 192.168.5.3/32 через этот интерфейс”, так же как маски подсети являются краткой формой маршрута устройства.

Проблема с этим в том, что я не уверен, возможно ли развернуть противоположную конфигурацию через DHCP. (Хотя это было бы довольно распространено для PPP соединений, таких как PPPoE.)

Чтобы использовать DHCP, вам нужно добавить Proxy-ARP, чтобы устройства ваших клиентов думали, что они находятся в /25, даже если это не настроено как /25 с вашей стороны. То есть, они могут получать стандартную аренду DHCP, указывающую на маску сети /25, и они могут успешно ARP для IP-адреса другого клиента (получая вместо этого MAC вашего шлюза) – в то время как с вашей стороны у вас все еще есть только /32 на каждом интерфейсе VLAN, как в предыдущем примере.

Linux имеет встроенный Proxy-ARP как установку интерфейса (для “глобального” проксирования) или в виде специальных записей кэша соседей (для более точного проксирования), но также существуют реализации в пространстве пользователя; например, я использую parpd для проксирования /26 в другой VLAN по историческим причинам.

Это должно быть в основном совместимо с DHCP-серверами, хотя не будет никакой автоматической ассоциации между арендами и маршрутами – вам, вероятно, придется вручную убедиться, что VLAN с Клиентом А имеет правильно маршрутизированный /32. (либо как параметр ‘peer’, либо как обычный статический маршрут, не имеет значения).

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

Вопрос, который вы подняли — это распространённая проблема в сфере управления сетевыми ресурсами, особенно учитывая ограничения, связанные с нехваткой IPv4-адресов. Давайте разберёмся, как можно организовать несколько VLAN в рамках одной сети с ограниченным числом IP-адресов, соблюдая ваши требования.

1. Структура сети и распределение адресов

Вы упомянули, что у вас есть IP-адрес 3.8.3.1/25. Подсеть /25 предоставляет 128 адресов, из которых 126 доступны для хостов (адрес сети и широковещательный адрес исключены). Ваша задача — выделить уникальные IP-адреса для 127 различных VLAN, чтобы они могли общаться друг с другом.

Решение с использованием Proxy-ARP

Одним из наиболее эффективных решений данной проблемы является использование технологии Proxy-ARP. Эта техника позволит каждой из ваших VLAN «думать», что они находятся в одной подсети (в данном случае /25), в то время как на самом деле каждая VLAN будет иметь своим адресом /32.

Шаги для реализации:
  1. Настройка интерфейсов на маршрутизаторе:
    Каждую VLAN можно настроить на маршрутизаторе с уникальным адресом /32. Например:

    • VLAN 3001: интерфейс eth0.3001 с IP 3.8.3.2/32
    • VLAN 3002: интерфейс eth0.3002 с IP 3.8.3.3/32
    • И так далее до VLAN 3127.
  2. Включение Proxy-ARP:
    Для того чтобы устройства в VLAN могли ARP-запрашивать IP-адреса соседних VLAN, необходимо включить Proxy-ARP на маршрутизаторе. Это позволит клиентским устройствам в каждом VLAN видеть и взаимодействовать друг с другом, даже если они физически разделены.

  3. Настройка DHCP:
    Настройка DHCP-сервера поможет автоматически распределить IP-адреса среди клиентов в каждой VLAN. При этом сервер должен быть настроен так, чтобы отдавать адреса с маской /25, несмотря на использование /32 на самом маршрутизаторе.

    Также стоит учитывать, что потребуется ручная маршрутизация для обеспечения того, что IP-адреса выделяются корректно в зависимости от VLAN. Это можно сделать, добавляя маршруты к каждой VLAN, чтобы определить, какие адреса для каких VLAN доступны.

2. Поддержка качества обслуживания (QoS)

Для того чтобы реализовать требования по управлению трафиком (трафик шейпинг), можно использовать стандартные средства QoS на вашем оборудовании. Это может включать:

  • Определение различных классов трафика для каждой VLAN.
  • Настройку лимитов по пропускной способности в зависимости от типа трафика (например, VoIP, видео, и т. д.).
  • Применение политик приоритезации для обеспечения необходимости критических приложений.

Заключение

Таким образом, вы можете организовать многопользовательскую среду с использованием нескольких VLAN на ограниченном наборе IP-адресов, используя Proxy-ARP, DHCP и QoS. Этот подход позволит вам оптимизировать ресурс сети, сохранять чувство единой среды для ваших клиентов и эффективно управлять трафиком.

Если у вас есть дополнительные вопросы или требуется помощь в реализации данного решения, не стесняйтесь обращаться!

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

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