2019-09-08 нов мрежов setup в 3dc

by Vasil Kolev

Преди някакво време с Мариян си взехме половин rack в 3dc, за да си слиожим там разни машини (и подслоняваме други проекти, последно linux-bg.org). Свършихме малко интересни неща с мрежата и ми се ще да ги разкажа, заедно с разни бъдещи планове.

В началото бяхме на един гигабитов switch (Quanta LB4m, стои ми в момента в краката). От там тръгна setup-а с няколко vlan-а – един за публични цели (/27), едни за ipmi, и разни за външните връзки. От самото начало две машини бяха router-и и за всяка връзка навън или навътре се правят сесии и до двата.

Последва разширяване, първо с един, после с втори 10gbe switch – Arista DCS-7050S-64 и DCS-7050S-52 (имаше и някакъв междинен, който не мога да си спомня). Самите switch-ове имат много приятен начин за настройка, понеже на практика са откраднали Cisco CLI-то и са го направили приятно за ползване. В началото използвахме основно единия, после закачихме всичко на двата, взехме една кофа медни SFP-та и махнахме гигабитовата Quanta.

За redundancy (понеже веднъж се случи да crash-не единия switch), първоначално направихме setup-а с active-passive bond-ове с miimon (arp_monitor щеше да е трудно заради неяснотата какво точно да се пингва, вероятно трябваше да са самите switch-ове). Не сме мислили за идеята за MLAG и клъстериране на switch-овете, понеже поне моя опит показва, че няма никой производител, който да може да си направи правилно клъстерирането и отпадането на единия switch да не повлияе на другия (и вероятно мога да напиша един blog post по темата).

Текущата стъпка е active-passive bond-а да се замести от отделни BGP сесии през двата switch-а до двата router-а, т.е. общо 4 сесии. Създадох по един vlan на switch (за да не пипам съществуващия трафик), peer-нах там машините с двата router-а и те си анонсират на /32ки адресите, които имат. Така се постига по-добро redundancy, понеже всяка машина има 4 пътя и при отпадане на каквото и да е може да знае кои други пътища и работят.
(има пуснато и BFD в схемата, на което Мариян ме открехна, и сесия се усеща, че е умряла за около секунда, вместо стандартните BGP timeout-и)

С този setup също така може да се пусне ECMP (equal-cost multipath) и да се ползват и двата интерфейса едновременно (не че някой пълни и един 10gbps интерфейс, но принципът е интересен).

Обмислях да направя директно следващата стъпка вместо тази, която е вместо с двата router-а машините да говорят BGP директно със switch-овете, като така се намалява броя сесии. Това обаче изисква малко tooling, за да мога да синхронизирам конфигурацията на двата switch-а по темата и доста внимание да не изтърва пълна таблица натам, защото ще клекнат (така като гледам, на пръв поглед поддържат до 16к пътя). В този случай обаче все пак ще трябва да оставя L2 нещата по switch-овете за външните връзки, т.е. не мога да мина изцяло на route-нат setup (защото не мога и да терминирам сесиите директно в switch-овете, въпреки че обмислям хакове да прекарвам многото трафик директно през switch-овете, с VRF-и).

Също един от следващите планове е cloud-тип нещо – три железа (с най-вероятно StorPool за storage), около 1 TB памет, 100-ти на core-а и изцяло route-ната мрежа, до самите виртуалки. Също така обмислям и router-ите да са 2 и да са пак виртуалки, с PCI pass-through на мрежови интерфейси, но това трябва да си го досглобя в главата – има разни подробности за най-подходящия point-to-point интерфейс за вътре във виртуалките, и за начина на реализация на вътрешни мрежи.

(
Дълго време гледам как чисто layer2 мрежите имат купчина неудобни проблеми от гледна точка на redundancy и използване на целия си ресурс. Редовно виждам как в datacenter мрежи STP-то, клъстерирането и подобните неща убиват някакви услуги, и пробутвам на разни хора идеята да минат на layer3 мрежи – от много време няма някаква разлика в performance на двете. Явно е по-правилно да дам пример :) )

One Response to “2019-09-08 нов мрежов setup в 3dc”

  1. HackMan Says:

    IBM RackSwitch беше междинният 10G Switch :)
    За BGP-то използваме Bird и в момента host–ваме LUG-BG, linux-bg.org и едно доста солидно количество mirrors :)

    Интересно е, че на вторият router в контейнери сме вкарали две от старите физически машини :)

Leave a Reply