Jump to content
Калькуляторы

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

Share this post


Link to post
Share on other sites

/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ов на портах без свича возможно?

Share this post


Link to post
Share on other sites

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

Да.

 

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

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

Share this post


Link to post
Share on other sites

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

порт 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

Share this post


Link to post
Share on other sites

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>С некоторыми оговорками можно посмотреть сюда

Share this post


Link to post
Share on other sites

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?

Edited by amper

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

У них их 2-3-4

Edited by SyJet

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this