Добавьте тег VLAN к определенному трафику порта UDP

Я запускаю приложение в Ubuntu12.04, что я записал, что это делает некоторое управление удаленным коммутатором. У меня есть только единственный NIC, подключенный к сети управляемых коммутаторов, eth0, который установлен с IPv4 10.0.0.1/24. Этот адрес IPv4 является единственным адресом, который может использовать эта машина Ubuntu, так как это - единственный "глобально" routable адрес, присвоенный машине Ubuntu (из-за некоторого администрирования сети, не из-за технических вопросов...)

Мне нужен трафик управления коммутатором (NetConf по SSH, с помощью порта UDP 830) для включения 802.1q тег VLAN с идентификатором 444 VLAN), когда передача кадров NetConf и ответов будет получена также с этим тегом. Весь другой трафик (http, ftp, dhcp, snmp, и т.д.) будет использовать eth0 без тега VLAN.

Я попытался использовать интерфейс VLAN eth0.444 на eth0, но, кажется, что отправленный трафик не включает тег VLAN.

Может (и как), я могу использовать ebtables/iptables для добавления определенного тега VLAN к определенному трафику порта UDP? ebtables/iptables решение будет работать также на тракт приема?

Спасибо!

David

1
задан 22 November 2014 в 22:46
2 ответа

Тег 802.1Q вставлен в заголовок MAC, и ядро ​​не будет его декодировать, если ваш интерфейс не имеет тегов VLAN. Таким образом, даже если бы вы могли искажать исходящие пакеты, входящий трафик с тегом VLAN остался бы проигнорированным.

Что вам нужно сделать, так это создать интерфейс с тегами VLAN, как и вы, и добавить к нему IP-адрес в том же диапазоне, что и IP-адрес коммутатора, к которому вы пытаетесь получить доступ.

3
ответ дан 3 December 2019 в 16:25

iptables и ebtables не могут устанавливать теги VLAN для пакетов. Вот для чего нужны субинтерфейсы VLAN.

В вики Ubunut есть статья , в которой обсуждаются VLAN , которую вам, вероятно, следует просмотреть. Вкратце, однако, вы хотите:

  • Убедитесь, что в модуль 802.1q загружен modprobe 8021q .

  • Создайте субинтерфейс VLAN с помощью vconfig add eth0 444 .

  • Добавьте IP-адрес и маску подсети из подсети, используемой в VLAN 444, во вложенный элемент eth0.444 -интерфейс с ip addr add xxxx / z dev eth0.444

Вам также необходимо настроить порт коммутатора, к которому подключен сервер, для приема тегированных кадров для VLAN 444. Вы не упоминаете свой бренд коммутатора, поэтому я не могу дать здесь подробных указаний, но вы, вероятно, ищете либо «магистральный», либо «общий» порт, настроенный как помеченный член VLAN 444 и немаркированный член любой VLAN, используемой назначенной подсетью к интерфейсу eth0 .

Имейте в виду, что tcpdump может иметь проблемы с отображением тегов VLAN , поэтому не обязательно предполагать, что кадры не отображаются помечены, если вы просто используете tcpdump на самом хосте, чтобы проверить, что кадры помечены.

Изменить:

Обычно существует взаимно-однозначное отношение между виртуальными локальными сетями и IP-подсетями. Было бы крайне нетипично, если бы у коммутатора был интерфейс управления в VLAN 444, который был той же IP-подсетью, что и любая VLAN, в которой находится ваш текущий порт eth0 .

5
ответ дан 3 December 2019 в 16:25

Теги

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