VXLAN в Linux (unicast mode)

VXLAN это L2 over L3, некий аналог mpls псевдопровода и vpls, но поверх L3 сети, без использования mpls. В последнее время, всё больше и больше вендоров склоняются именно к этому варианту L2 поверх L3, многие реализуют vxlan на аппаратном уровне.

В классическом случае, vxlan использует multicast для передачи broadcast и unknown unicast, т.е. широковещательный трафик инкапсулируется в multicast и передаётся всем маршрутизаторам, участвующем в vxlan. Пример такой конфигурации для Cisco CSR1000V можно найти здесь.

Использование мультикаст влечёт за собой очевидную проблему – ограничение области применения. Если речь идёт про public internet, то про multicast можно забыть. Однако, существует вариация vxlan, не использующая multicast, при этом vxlan либо вырождается в псевдопровод, либо требуется сигнализация, чтобы участники vxlan знали друг о друге. В этой заметке речь пойдёт именно об использовании vxlan для организации L2 точка-точка поверх L3. При написании статьи использовалось ядро linux 3.15.3 и iproute2 3.15

Имеется два хоста 198.51.100.0(A) и 203.0.113.0(B), которые будут организовывать vxlan между собой.

A # ip link add vxlan50 type vxlan id 50 remote 203.0.113.0 local 198.51.100.0 dstport 4789
B # ip link add vxlan50 type vxlan id 50 remote 198.51.100.0 local 203.0.113.0 dstport 4789

Таким образом, получаем stateless-тунель между A и B, при этом на A и B создаются виртуальные eth-интерфейсы(vxlan50), которые можно сбриджевать(brctl) с другими eth-интерфейсами(например, с физическим портом или dot1Q-сабынтерфейсом), тем самым получить обычный псевдопровод или затерминировать их на самих A и B.
Можно поднять ospf поверх vxlan или даже использовать для транспорта IPTV(multicast)-трафика.

Выглядит vxlan-трафик(unicast mode) следующим образом:
vxlan broadcast

vxlan unicast

Advertisements

2 thoughts on “VXLAN в Linux (unicast mode)

  1. traktor_driver

    Интересное решение, а если добавить 3й хост и с хоста А бросить на него vxlan ? получится Hub-and-spoke? И я так понимаю полноценный vpls тут не сделать? или как то можно “скоммутировать” через бриджи через центральную точку?

    Reply
    1. netblog0 Post author

      скоммутировать псевдопровода через центральную точку – без проблем, просто нужно добавлять vxlanX-интерфейсы в br-интерфейс (brcrl addbr … , brctl addif)

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s