Я использую переключатель в устройстве, имеющем физические размеры; эти измерения существуют вне сети, просто чтобы прояснить, я не пытаюсь использовать какую-то сетевую терминологию.
Порты коммутатора соответствуют разным физическим частям устройства, поэтому, когда «компьютер» подключается к другому порту, он оказывается в другом физическом месте.
Исключением является порт 1, который всегда будет подключен к основному «компьютеру». Обратите внимание, что я продолжаю использовать кавычки, потому что это не ноутбуки, не серверы и т. Д. Это робот, и это разные части указанного робота. Следовательно, необходимо знать, где он физически подключен.
Мне сказали, что я могу использовать VLAN для этого разделения. Мне просто нужно соединить порт 1 и снова разделить VLAN и сопоставить их с различными виртуальными интерфейсами Ethernet на главном «компьютере».
Все хорошо. Я вроде как понимаю концепции. Но у меня есть два основных вопроса:
Есть ли более простой способ узнать, к какому физическому порту подключен компьютер? Если у меня есть устройство, подключенное к порту 2, и я перемещаю его в порт 3, я должен быть в состоянии сказать, что это устройство теперь находится на порту 3 либо потому, что IP-адрес изменился на другой диапазон (подсеть?), Либо какой-то другой классный способ, о котором я просто не знаю.
Есть ли четкие руководства по этому поводу? Я копался и сейчас пытаюсь установить dnsmasq.conf
и мой файл интерфейсов (я просто включил строки под моим основным интерфейсом Ethernet p2p1 это похоже iface p2p1: 0 inet dhcp), чтобы настроить VLAN, но мне не удалось найти что-то, что четко проводило бы меня через шаги. Похоже, что многое связано с определенными настройками, такими как OpenStack.
Позвольте мне внести некоторые подробности, чтобы убедиться, что я отвечаю на ваш вопрос. У вас есть робот с несколькими портами Ethernet в разных местах, и этот робот содержит настраиваемый коммутатор Ethernet. У него есть один порт, «порт 1», который подключен к хосту, который вы пометили «главный компьютер», на котором запущена Ubuntu. Вы хотите иметь возможность определять с хоста Ubuntu, к какому порту робота подключен конкретный хост, и вы хотели бы сделать это с помощью VLAN и транкинга VLAN.
Вы можете думать о VLAN как о виртуальном коммутаторе, а о магистрали VLAN как о нескольких виртуальных соединениях Ethernet, выполненных через одно физическое соединение Ethernet. Итак, решение, которое вы рассматриваете, влечет за собой назначение каждого порта (кроме порта 1) его собственной VLAN, а затем транкинг всех этих VLAN через порт 1 на хост Ubuntu. Для простоты я бы рекомендовал назначить порт 2 для VLAN 2, порт 3 для VLAN 3 и так далее. Поскольку вы не указали, какой тип переключателя содержит этот робот, это все подробности, которые я могу предоставить по конфигурации переключателя.
Идея состоит в том, чтобы назначить каждую VLAN своей собственной IP-подсети и запустить DHCP в этой подсети, чтобы устройство, подключенное к порту робота, получило IP-адрес в подсети, назначенной этой VLAN (и, следовательно, порту). Опять же, для простоты я бы рекомендовал сохранить ту же нумерацию, поэтому VLAN 2 имеет 192.168.2.0/24, VLAN 3 - 192.168.3.0/24 и так далее. Вашему хосту Ubuntu потребуется IP-адрес в каждой VLAN, оканчивающийся по соглашению на .1. И вам необходимо настроить DHCP-сервер в каждой VLAN (через dnsmasq.conf).
На основе страница vlan вики Ubuntu, главный компьютер /etc/network/interfaces
будет содержать что-то подобное в дополнение к базовой конфигурации хоста (при условии, что eth1 - это ваше "норальное" сетевое соединение, а eth2 подключен к порту 1 робота)
auto eth2.2
iface eth1.2 inet static
address 192.168.2.1
netmask 255.255.255.0
vlan-raw-device eth2
auto eth2.3
iface eth2.3 inet static
address 192.168.3.1
netmask 255.255.255.0
vlan-raw-device eth2
и так далее. В auto eth2.N
устанавливает транкинг VLAN N на eth2, а строки с отступом назначают IP-адрес и сетевую маску в этой VLAN главному компьютеру.
Ваш dnsmasq.conf
будет содержать
dhcp-range=eth2.2,192.168.2.100,192.168.2.199,4h
dhcp-range=eth2.3,192.168.3.100,192.168.3.199,4h
для назначения новых IP-адресов всему, что появляется в VLAN 2 (порт 2) и VLAN 3 (порт 3) соответственно.
Вы должны настроить программное обеспечение на компьютерах, подключенных к роботу, для связи с основным IP-адресом (eth1) главного компьютера. Тогда любой трафик с IP-адреса, соответствующего 192.168.2.x, поступает с компьютера, подключенного к порту 2, любой трафик с IP-адреса, соответствующего 192.168.3.x, - с компьютера, подключенного к порту 3, и так далее.
Чтобы ответить на ваш второй вопрос, я не нашел никаких руководств по этому поводу, и это кажется очень необычной конфигурацией, так что это не особенно удивительно!
Если ваш переключатель говорит LLDP, вы можете взаимодействовать с этим, установив lldpd. Большинство коммутаторов объявляют текущий подключенный порт через LLDP, который вы можете определить / script с помощью инструментов, предоставленных в пакете lldpd.
apt-get install lldpd
Также см. страница руководства lldpd.
lldpd также сообщит коммутатору о существовании компьютера (и имени интерфейса).
Что касается VLAN, лучше всего проверить специфичность для Ubuntu (хотя, на самом деле, для производных от Debian) страница руководства.
Для использования виртуальных локальных сетей в Ubuntu необходим установленный пакет vlan.
apt-get install vlan
Ура, TW