Перейти к содержимому
Калькуляторы

Mikrotik: VLAN'ы (tagged, untagged) и маршрутизация на одном устройстве

Правильно ли я понимаю, что только на CRS железках, где доступна команда interface ethernet switch ingress-vlan-translation можно получить wire transfer speed между тэгированными и нетэгированными портами (т.к. нетэгированные порты не имеют VLAN ID в пакетах)? Настройка switch vlan id add if missing не решает проблему.

 

Если есть необходимость на одной железке иметь и тэгированные (trunk) и не тэгированные (access) порты, то нетэгированные порты нужно отвязать от мастер порта (прощай высокая скорость внутри VLAN'a), и распределить между бриджами (VLAN10-Bridge, VLAN-20-Bridge, VLAN-30-Bridge), создать интерфейс вида VLAN10-UnTag, привязать его к VLAN10-Brigde, и интерфейс VLAN10-Tag (привязать его к мастер-порту), далее к каждому VLANXX-Tag привязать IP адрес.

 

Т.о. тэгированные порты останутся внутри свича и трафик между ними будет ходить напрямую, минуя проц, но так же в них будет попадать трафик от нетэгированных портов (через проц), и все они будут видеть IP адреса назначенные на VLAN интерфейсы.

 

Или я ошибаюсь?

post-7534-054476600 1424202820_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

/interface vlan
add name=vlan99 vlan-id=99 interface=ether2
/ip address
add address=192.168.88.1/24 interface=vlan99 network=192.168.88.0

 

А как быть если свич чипов несколько и в обоих нужен одинаковый IP? Заводить мастер-порты в бридж и цеплять VLAN interface на него????

 

И попутно, если на роутерборде часть портов заведены через свич, часть напрямую к CPU, получить поддержку VLANов на портах без свича возможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заводить мастер-порты в бридж и цеплять VLAN interface на него?

Да.

 

если на роутерборде часть портов заведены через свич, часть напрямую к CPU, получить поддержку VLANов на портах без свича возможно?

<Interface VLAN> и <Switch VLAN> из общего имеют только .1q, первый L3 c инкапсуляцией в указанный vlanid, второй L2, обычный vlan. Единственный вариант объединения - bridge.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не соображу, как без свича (бриджами) сделать такой конфиг:

порт ether1 (на котором несколько vlan id 10, 20, 30), и порт ether2 untagged (на котором только один vlan id 10).

 

Пробовал:

 

interface bridge add name=bridge-10-20-30

interface bridge add name=bridge-10

 

interface vlan add name=vlan10 vlan-id=10 interface=ether1

ip address add address=10.0.10.1/24 interface=vlan10

 

interface vlan add name=vlan20 vlan-id=20 interface=ether1

ip address add address=10.0.20.1/24 interface=vlan20

 

interface vlan add name=vlan30 vlan-id=30 interface=ether1

ip address add address=10.0.30.1/24 interface=vlan30

 

interface vlan add name=vlan10_untagged vlan-id=10 interface=ether2

 

interface bridge port add bridge=bridge-10-20-30 interface=ether1,vlan10,vlan20,vlan30

interface bridge port add bridge=bridge-10 interface=ether2,vlan10_untagged

 

при этом ether1 пингует 10.0.10.1, но ether2 не пингует 10.0.10.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

interface vlan add name=vlan10_untagged vlan-id=10 interface=ether2

Этот интерфейс вам не нужен.

 

ether2 с 10 вланом соединяется проще:

interface bridge port add bridge=<ваше имя бриджа, например bridge_vlan10> interface=ether2,vlan10

 

interface bridge port add bridge=bridge-10-20-30 interface=ether1,vlan10,vlan20,vlan30

У вас интерфейсы 10,20,30 и так в привязке к ether1 созданы, эта строка совершенно лишняя.

 

P.S>С некоторыми оговорками можно посмотреть сюда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

interface bridge port add bridge=bridge-10-20-30 interface=ether1,vlan10,vlan20,vlan30

У вас интерфейсы 10,20,30 и так в привязке к ether1 созданы, эта строка совершенно лишняя.

А как потом объединять тэгированные порты с разными набором VLANов? Например, на ether5 будет vlan10 и vlan20, на ether6 vlan30 и vlan20 и т.д.?

 

Небольшое отступление от темы:

 

1) Это нормально, что на чипе Atheros8227 отсутствует возможность одновременного использования тэгированных и нетэгированных портов?

Поясню, во-первых в switch port default vlanid=auto не поддерживается, во-вторых, если для switch cpu выставить vlan header leave as is (или add if missing) - то cpu становится виден для тэгированных пакетов, но перестает быть виден для нетэгированных, пока не будет включено always strip и наоборот. Притом даже отвязка порта от мастер порта и помещение его в бридж не дает доступа к CPU, т.е. на уровне свича надо решить, или нетэгированные пропускаем к cpu или только тэгированные.

 

При этом внутри свича нормально уживаются и те и другие, и даже с портов 8327 до портов 8227 (через бридж) пинги ходят, но доступ с портов 8227 к CPU (привязан ли адрес к ethernet интерфейсу, мастер порту, бриджу, VLAN'у) работает по указанной выше логике, либо только для тэгированных пакетов, либо только для нетэгированных. Такова ожидаемая логика его работы или это баг (проверено на 6.23 и 6.27)? На 8327 таких проблем нет.

 

2) Можно ли настроить правила switch rule таким образом, чтобы запретить все соединения (на всех портах) и разрешить только определенные? С запретом все просто, ставится пустой new dest ports, а вот чтобы при этом обрабатывались разрешающие правила, нужно так же для них указать new dest ports, но тут надо либо предугадать все возможные сценарии прохождения трафика между портами, либо указать все порты, но тогда свич будет работать как хаб... Может есть какой-то workaround?

Изменено пользователем amper

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как потом объединять тэгированные порты с разными набором VLANов? Например, на ether5 будет vlan10 и vlan20, на ether6 vlan30 и vlan20?

По ссылке ходили? Объединяются не порты, а интерфейсы vlan. Но если честно - пытаться делать из роутера коммутатор затея так себе. А остальные вопросы скорее к qualcomm.com и mikrotik.com

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне вот интересно, а почему не используете функции коммутации свитч-чипа. В пределах одного чипа - будет работать в на скорости порта. Гуглите талмуд с описанием меню Switch.

Как-то пришлось это делать, когда под рукой не оказалось небольшого свитча, так и стоит микротик уже года 3.

 

http://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По ссылке ходил, но там не очевидно, методом тыка пришел к правильному решению, вырви мозг конечно работа с VLAN'ами...

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По ссылке ходил, но там не очевидно, методом тыка пришел к правильному решению, вырви мозг конечно работа с VLAN'ами...

 

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

У них их 2-3-4

Изменено пользователем SyJet

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.