Рейтинг:0

Ограничение хостов в сети

флаг jp

Мне нужен совет по работе с сетью, и, надеюсь, некоторые из вас смогут мне помочь. Моя сеть показана на этой блок-схеме: Сеть Ethernet-коммутаторы от Microchip, модель KSZ9897, которые являются управляемыми коммутаторами уровня 2. Коммутатор имеет множество функций, например, он поддерживает IEEE 802.1X (проверка подлинности на основе портов и фильтрация списка управления доступом (ACL)) и IEEE 802.1Q (VLAN). Все хосты являются ПК с Windows 10. Мне нужно следующее:

  • Хосты 1A, 1B и 1C должны иметь одинаковый фиксированный IP-адрес (это связано с процессом инициализации, когда хосты 2A, 2B и 2C еще не знают, находятся ли они в Блоке A, Блоке B или Блоке C. Эта информация передается с хоста 1, поэтому мне нужно, чтобы хосты 1А, 1Б и 1С имели одинаковый IP-адрес, чтобы Хост 2 знал, куда отправлять запрос идентификации)
  • Хост 1A может обмениваться данными с хостом 2A и ни с каким другим хостом.
  • Хост 2A может обмениваться данными со всеми хостами, кроме хоста 1B и хоста 1C.
  • Хост 1B может обмениваться данными с хостом 2B и ни с каким другим хостом.
  • Хост 2B может обмениваться данными со всеми хостами, кроме хоста 1A и хоста 1C.
  • Хост 1С может взаимодействовать с Хостом 2С и никаким другим хостом
  • Хост 2C может обмениваться данными со всеми хостами, кроме хоста 1A и хоста 1B.

Сейчас все хосты находятся в одной подсети, скажем, 192.168.1.X, маска подсети 255.255.255.0. Моя первая идея заключалась в том, чтобы дать хостам 1A, 1B и 1C IP-адрес в другой подсети, скажем, 192.168.2.1, а хостам 2A, 2B и 2C дать псевдоним IP-адреса в той же подсети. Таким образом, хосты 2 смогут обмениваться данными в обеих подсетях. Однако это не сработает, например. Хост 2A сможет взаимодействовать как с 1B, так и с 1C. Это приведет к дублированию IP-адресов в одной и той же подсети. Но размещение хоста 1A, хоста 1B и хоста 1C в трех разных подсетях также является проблемой из-за проблемы с идентификацией, описанной в первом пункте списка.Мне кажется, что это проблема курицы и яйца, но, надеюсь, я упускаю что-то, что может решить проблему, может быть, VLAN, контроль доступа или что-то еще.

Davidw avatar
флаг in
Это в основном то, для чего нужны VLAN. Но вам понадобится роутер и настройте его как «роутер на флешке».
Lunde avatar
флаг jp
Это жизнеспособное решение, но, если возможно, я бы хотел обойтись без маршрутизатора. Можете ли вы придумать способ ограничить трафик в той же подсети? Например. с одного порта коммутатора на другой для определенного IP-адреса? Как статическая маршрутизация, но для коммутатора. Не уверен, что это вообще что-то. Возможно, контроль доступа мог бы мне помочь.
Davidw avatar
флаг in
Не без коммутатора третьего уровня, если вы используете IP-адресацию.
Davidw avatar
флаг in
И ACL зависят от сетевых масок, которые также требуют маршрутизации.
Lunde avatar
флаг jp
Хорошо, у вас есть представление о том, какие у меня есть варианты, если я спущусь на один уровень в модели OSI, то есть MAC-адреса? Хосты 1A, 1B и 1C будут иметь разные MAC-адреса.
Рейтинг:0
флаг ru

В зависимости от того, что этот коммутатор на самом деле поддерживает для ACL (не могу найти никакого руководства), ACL, привязанные к порту, должны помочь - VLAN или маршрутизация не требуются. Я предполагаю, что хосты настроены статически, без DHCP. Синтаксис, вероятно, различается, но я надеюсь, что вы поняли идею. Просто примените ACL ко всем портам на всех коммутаторах. В качестве альтернативы также может работать применение ACL к VLAN по умолчанию.

  • хосты 1A-5A используют IP-адреса 192.168.1.1/24 - 192.168.1.5/24
  • хосты 1B-5B используют IP-адреса 192.168.1.11/24 - 192.168.1.15/24
  • хосты 1С-5С используют IP адреса 192.168.1.21/24 - 192.168.1.25/24
  • хосты 1D-5D используют IP-адреса 192.168.1.31/24 - 192.168.1.35/24

Список контроля доступа:

1000 разрешений ip 192.168.1.1/32 192.168.1.2/32
1010 запретить ip 192.168.1.2/32 192.168.1.11/32
1020 запретить ip 192.168.1.2/32 192.168.1.21/32
1030 разрешить ip 192.168.1.2/32 любой
1040 разрешение ip 192.168.1.11/32 192.168.1.12/32
1050 запретить ip 192.168.1.12/32 192.168.1.1/32
1060 запретить ip 192.168.1.12/32 192.168.1.21/32
1070 разрешить ip 192.168.1.12/32 любой
1080 разрешение IP 192.168.1.21/32 192.168.1.22/32
1090 запретить 192.168.1.22/32 192.168.1.1/32
1100 запретить 192.168.1.22/32 192.168.1.11/32
1110 разрешение 192.168.1.22/32 любое

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

Если коммутатор не принимает /32 (без подстановочных знаков) вам нужно использовать 0.0.0.0 вместо. Подстановочные биты не имеют прямого отношения к маске подсети. Вместо этого они определяют биты, которые игнорируются при сопоставлении. 192.168.1.2/31 или же 192.168.1.2 0.0.0.1 соответствует 192.168.1.2 и 192.168.1.3. 192. 192.168.1.3 0.0.0.2 соответствует 192.168.1.1 и 192.168.1.3.

Lunde avatar
флаг jp
Это хорошее решение, но только «в устойчивом состоянии». Вы правы, предполагая, что DHCP не используется, но из-за проблемы с идентификацией, описанной в моем первом пункте, узлы 2A, 2B и 2C не знают, в каком блоке они размещены, пока не смогут запросить эту информацию у узла 1. Таким образом, назначение IP-адреса, как вы предлагаете, не вариант. Но моя проблема была бы решена, если бы коммутатор можно было настроить на пересылку пакетов только с определенного IP-адреса на определенный порт. Затем я мог настроить хосты 1A, 1B и 1C, например. 192.168.2.1 и дать хостам 2A, 2B и 2C псевдоним IP 192.168.2.2.
Lunde avatar
флаг jp
Идея состоит в том, что если порт коммутатора 1 пересылает пакеты с 192.168.2.1 на порт 2 и никакие другие порты, это не приведет к конфликтам IP-копий. Коммутатор также будет настроен на пересылку пакетов с адреса 192.168.2.2 через порт 2 исключительно на порт 1. Таким образом, подсеть 192.168.2.X на каждом устройстве будет изолирована. Но для этого коммутатор должен иметь возможность пересылать трафик на основе «статической таблицы маршрутизации», в которой указаны IP-адреса и порты, на которые следует пересылать. Возможно ли это сделать? Вся конфигурация KSZ9897 выполняется на уровне регистров через интерфейс SPI от процессора.
Lunde avatar
флаг jp
Я не думаю, что для коммутатора имеется инструкция, но регистры доступны в техпаспорте: https://ww1.microchip.com/downloads/en/DeviceDoc/KSZ9897R-Data-Sheet-DS00002330D.pdf
Zac67 avatar
флаг ru
Извините, разработка аппаратного и программного обеспечения здесь не по теме, см. [справку].
Lunde avatar
флаг jp
Хорошо, извините за это, я не знал об этом.

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

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