vlan bridge tagged trunk РЕШЕНО

Автор exaile, 09 февраля 2015, 13:12:09

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

exaile

Здравствуйте. Необходимо прокинуть пачку тегированных вланов с D-Link который воткнут в eth1, который в свою очередь в bridge c vmbr1 (proxmox), и далее на интерфейс виртуалки (в данном случае vSRX Juniper Firefly perimeter)

Command: show vlan ports 1:17

Port   VID   Untagged  Tagged  Dynamic  Forbidden
-----   ----  --------  ------  -------  ---------
1:17   303     X         -       -        -
1:17   1111    -         X       -        -
1:17   2222    -         X       -        -


vconfig add vmbr1 2222
ifconfig vmbr1.2222 up
brctl addbr vmbr2222
ifconfig vmbr2222 up
brctl addif vmbr2222 vmbr1.2222


Со стороны роутера в конфиге всё прописано, ip интерфейс и нужный тэг.

Я вижу трафик 802.1Q только на eth1 и vmbr1.

Далее если делаю как выше, и вот по этим статьям - вланы не пробрасываются.

https://blog.mthode.org/posts/2012/Oct/vlan-trunking-to-kvm-vms/
http://blog.davidvassallo.me/2012/05/05/kvm-brctl-in-linux-bringing-vlans-to-the-guests/
http://forum.proxmox.com/threads/11433-forwarding-a-full-vlan-trunk-into-a-VM

На vmbr2222 и vmbr1.2121 трафик уже без тэгов.

13:07:58.246855 3c:61:04:47:1f:f0 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has 10.200.1.200 tell 10.200.0.254, length 42
13:07:59.124006 3c:61:04:47:1f:f0 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has 10.200.1.200 tell 10.200.0.254, length 42
13:07:59.433867 3c:61:04:47:1f:f0 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has 10.200.1.253 tell 10.200.0.254, length 42



zarguni

vconfig add vmbr1 2222
ifconfig vmbr1.2222 up
brctl addbr vmbr2222
ifconfig vmbr2222 up
brctl addif vmbr2222 vmbr1.2222

А eth1 добавить в мост?

exaile

#2
Цитата: zarguni от 09 февраля 2015, 21:13:59
vconfig add vmbr1 2222
ifconfig vmbr1.2222 up
brctl addbr vmbr2222
ifconfig vmbr2222 up
brctl addif vmbr2222 vmbr1.2222

А eth1 добавить в мост?

Добавлено, всё равно на vSRX приходит без тэга.

brctl show
bridge name     bridge id               STP enabled     interfaces
vmbr0           8000.00a0d1e3cbc9       no              eth0
vmbr1           8000.00a0d1e3cbc8       no              eth1
vmbr1v1111              8000.00a0d1e3cbc8       no              eth1.1111
                                                        tap600i1
vmbr1v2222              8000.00a0d1e3cbc8       no              eth1.2222
                                                        tap600i0


Работает только если access трафик:

admin@vSRX> show configuration interfaces
ge-0/0/0 {
    unit 0 {
        family inet {
            address 10.200.1.200/23;
        }
    }
}
ge-0/0/1 {
    unit 0 {
        family inet {
            address 10.90.0.218/24;
        }
    }
}


Мне нужно через Debian передавать на эти интерфейсы trunk с тэгом. Уже перепробовал всё и в ручную в том числе.

name: junos-vsrx-12.1X47-D10.4-domestic
net0: e1000=1A:DB:06:F6:49:CB,bridge=vmbr1,tag=2222
net1: e1000=16:78:A0:E4:4F:49,bridge=vmbr1,tag=1111



Из вики:
ЦитироватьIf you are using a brigded VLAN setup, which is probably useful for networking in virtualization environments, take care to only attach either a bridge device or VLAN devices to an underlying physical device - like shown above. Attaching the physical interface (eth0) to a bridge (eg. bri1) while using the same physical interface on apparently different VLANs will result in all packets to remain tagged. (Kernel newer than 2.6.37 and older than 3.2).

Трафик с тегом будет только на eth1 или br1,

Есть еще варианты или может знатоки тут ? Как полностью с тэгами до конца передать на vmbrVLAN ?

zarguni

brctl show
bridge name     bridge id               STP enabled     interfaces
vmbr0           8000.00a0d1e3cbc9       no              eth0
vmbr1           8000.00a0d1e3cbc8       no              eth1
vmbr1v1111      8000.00a0d1e3cbc8       no              eth1.1111
                                                        tap600i1
vmbr1v2222      8000.00a0d1e3cbc8       no              eth1.2222
                                                        tap600i0


Так на eth1.1111 и eth1.2222 трафик прилетит уже без тега.

exaile

#4
zarguni, да, на eth1.VID понятно, далее этот интерфейс бриджиться, вот как раз нужно чтобы был trunk тегированный уже на vmbr1VID. Можно ли так сделать ?

Потому что виртуальный роутер (vSRX), для лабов настраивается как описано в этой статье - http://subnets.ru/blog/?p=269 или по этой - http://forums.juniper.net/t5/SRX-Services-Gateway/Inter-Vlan-routing-SRX-240/m-p/86340/highlight/true#M10501
Цитировать
Вот и все, теперь интерфейс ge-0/0/0 принимает vlan 5 и 10 и вы можете «подавать» в этот интерфейс trunk в котором прописать эти vlan`ы.

ge-0/0/0 в данном случае это vmbr1v2222, ge-0/0/1 это vmbr1v1111. Я может чего то не догоняю, но почему на обычных коммутаторах я могу прописывать tag до конечного мне узла и там же оставлять его, то есть принимать тегом. Здесь в данном случае задействован Linux и виртуализация.

zarguni

Цитироватьда, на eth1.VID понятно, далее этот интерфейс бриджиться, вот как раз нужно чтобы был trunk тегированный уже на vmbr1VID. Можно ли так сделать ?
В статье, что вы привели в первом посте, в разделе Homerun: going to guest trunk mode явно ваша ситуация. Вланы с самого интерфейса не вытягиваются, с бриджа вытягиваются, и снова бриджуются с интерфейсами виртуалки.
ЦитироватьЯ может чего то не догоняю, но почему на обычных коммутаторах я могу прописывать tag до конечного мне узла и там же оставлять его, то есть принимать тегом. Здесь в данном случае задействован Linux и виртуализация.
На то он и маршрутизатор/коммутатор. Для разных задач какие-то инструменты подходят больше.
Я, конечно, не знаток в теме визуализации, но может имеет смысл использовать Open vSwitch.

exaile

#6
Цитата: zarguni от 10 февраля 2015, 22:50:06В статье, что вы привели в первом посте, в разделе Homerun: going to guest trunk mode явно ваша ситуация. Вланы с самого интерфейса не вытягиваются, с бриджа вытягиваются, и снова бриджуются с интерфейсами виртуалки.

Пробовал и пробую снова.

brctl addbr br0
vconfig add br0 254
ifconfig br0 up && ifconfig br0.254 u
brctl addif br0 eth1


DGS-3120-24TC:admin#show vlan  ports 17
Command: show vlan ports 1:17

Port   VID   Untagged  Tagged  Dynamic  Forbidden
-----   ----  --------  ------  -------  ---------
1:17   254     -         X       -        -
1:17   666     -         X       -        -
1:17   1111    -         X       -        -
1:17   2222    -         X       -        -


17 порт воткнут в eth1.

UPD: Алилуя!!!!!! Наконец заработало, спасибо вам большое вы натолкнули меня на решение и оно оказалось простым.

В ручную ничего не нужно создавать. Приводим конфиг виртуальных интерфейсов к такому виду (лучше из вебки):

net0: e1000=1A:DB:06:F6:49:CB,bridge=vmbr1,tag=2222
net1: e1000=16:78:A0:E4:4F:49,bridge=vmbr1,tag=1111
net2: e1000=7A:97:04:AD:B5:E7,bridge=vmbr1,tag=666
net3: e1000=8E:0B:12:ED:AD:F5,bridge=vmbr1


Из веб интерфейса proxmox в настройках ноды добавляем Network device и выбираем vmbr1 БЕЗ ТЭГА(!) и БЕЗ VID, то есть тэг уже будет приходить с eth1 на vmbr1. Сохраняем и жмём stop\start виртуальной ноды. После ребута он добавляет в ноде интерфейс, например ge-0/0/3 с мак адресом 8E:0B:12:ED:AD:F5 и уже принимает trunk.

admin@vSRX# show interfaces ge-0/0/3
vlan-tagging;
unit 254 {
    vlan-id 254;
    family inet {
        address 10.90.254.102/24;
    }
}


admin@vSRX# run monitor traffic extensive no-resolve interface ge-0/0/3
Address resolution is OFF.
Listening on ge-0/0/3, capture size 1514 bytes

13:30:53.061833  In
        Juniper PCAP Flags [Ext, In], PCAP Extension(s) total length 22
          Device Media Type Extension TLV #3, length 1, value: Ethernet (1)
          Logical Interface Encapsulation Extension TLV #6, length 1, value: Ethernet (14)
          Device Interface Index Extension TLV #1, length 2, value: 137
          Logical Interface Index Extension TLV #4, length 4, value: 74
          Logical Unit Number Extension TLV #5, length 4, value: 32767
        -----original packet-----
        3c:61:04:47:1f:f0 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 60: vlan 254, p 0, ethertype ARP, arp who-has 10.90.254.253 tell 10.90.254.254


Адрес 10.90.254.102 пингуется и я вижу трафик 802.1Q и его Tpid 0x8100 как раз что и было нужно.

brctl show выглядит так:

brctl show
bridge name     bridge id               STP enabled     interfaces
vmbr0           8000.00a0d1e3cbc9       no              eth0
vmbr1           8000.00a0d1e3cbc8       no              eth1
                                                        tap600i3
vmbr1v1111              8000.00a0d1e3cbc8       no              eth1.1111
                                                        tap600i1
vmbr1v2222              8000.00a0d1e3cbc8       no              eth1.2222
                                                        tap600i0
vmbr1v666               8000.00a0d1e3cbc8       no              eth1.666
                                                        tap600i2


Как я делал изначально создавая eth1.VID будет работать только access трафик. Поэтому необходимо делать просто прозрачный мост без vconfig для пропуска тэга с вышестоящего коммутатора. Перечитав еще раз Homerun: going to guest trunk mode наконец дошло. Если нужны еще интерфейсы с тэгом по аналогии добавляем vmbr1 с новым мак адресом и т.д. Вроде бы так. Спасибо большое.

Когда делаешь, например с тегом net2: e1000=7A:97:04:AD:B5:E7,bridge=vmbr1,tag=666 и перезапускаешь ноду он еще интерфейс tapIDiN создаёт и кладёт его в бридж, какой то тунельный интерфейс. В моём случае оно видимо не нужно.