Virtuální spojovací pole verze 2
Z VirtlabWiki
Obsah |
Základní princip
Propojování Ethernet linek (access i trunk)
Rozhraní laboratorních prvků (reálných i simulovaných) přivedena na různé VLAN. Na portech C3560 připojujících reálná zařízení je konfigurován QinQ. Bylo prověřeno, že QinQ tunelem procházejí i netagované rámce. QinQ tunely jsou ukončeny na tunelovacím serveru, který podle konfigurace bridguje veškerý provoz mezí Ethernet rozhraními síťových prvků lokality, resp. jej posílá do cizích lokalit v UDP přes Internet.
K tunnel serveru přicházejí z C3560 data z laboratorních zařízení trunkem, který nese
- single-tagged rámce, je-li laboratorní zařízení připojeno access linkou
- double-tagged rámce, je-li laboratorní zařízení připojeno trunkem
V každém případě tag nalepuje port, kterým do C3560 rámec od uživatelského zařízení vstoupil. Tunelovací server nerozlišuje, zda přemosťuje single-tagged nebo double-tagged rámce, orientuje se podle vnějšího tagu a případný vnitřní ho nezajímá. Jen je třeba nastavit větší MTU (1508 B).
Podle požadované topologie se konfigurují jen tunelovací servery, konfigurace C3560 jsou pevné (přiřazení portů do QinQ VLAN, vytvořené transportní VLAN (kvůli bridgeování v řetězu C2560 všechny použité na všech C3560).
Propojování sériových linek
Propojování sériových linek se obsluhuje "klasicky", tj. generováním konfigurace pro jednotlivé ASSSK. Je předpokládáno, že se v topologii požadují pouze spoje mezi sériovými rozhraními laboratorních prvků připojených do téhož ASSSK, tj. že mapovací algoritmus správně pracuje s connectivity groups.
Paralelní zpracování rezervací
Generování a aktivace konfigurací se musí vypořádat s tím, že CRON může chtít generátor konfigurací spustit paralelně vícekrát, pokud se sejde více rezervací na stejný čas. Generátor konfigurací je proto reentrantní a generuje pro jednotlivá spuštění nezávislé sady souborů (vždy přípona RESID za každým). Také se může stát, že konfiguraci lokality bude chtít (přes Konfigurační server) modifikovat více lokalit naráz (ať už při aktivci nebo daktivac) a nahrávané konfigurace (do Tunserveru nebo ASSSK) se nesmí během uploadu pomíchat (=musí se serializovat). Serializaci vyřešíme zatím tak, že konfigurační server bude současně přijímat jen 1 TCP spojení.
Poznámka:
- Předpokládáme, že CONNECT timeout na klientech je řádově 1 minuta, za kteroužto dobu se jistě předchozí jedno TCP spojení vyřídí (nejpomalejši je upload konfigurace do ASSSK, kde se mezi znaky čeká 100ms, ale zato jsou konfigy krátké).
- Všechny hodnoty pro TCP spojení jsou v /proc/sys/net/netfilter/, prip. v /proc/sys/net/ipv4/*tcp* (tcp_syn_retries), lze i nastavit zápisem do příslušného souboru.
Na straně klienta konfiguračního serveru je třeba později trochu vylepšit obsluhu timeoutu z connect() - může se stát, že by v určitou hodinu chtělo nalévat konfiguraci do téže lokality velmi mnoho klientů a v rámci defaultního connect() timeoutu by se to nestihlo.
Nová syntaxe spoje.conf
device@site:interface SW-DEV-TYPE SW-DEVNAME@site [VLAN|port]
- Pro SW-DEV-TYPE=C3560 je k (Ethernet) rozhraní laboratorního prvku (reálného i simulovaného) přiřazen VLAN
- Pro SW-DEV-TYPE=ASSSK je k Serial rozhraní (reálného) laboratorního prvku přiřazen port určeného ASSSK
- Pro SW-DEV-TYPE=C1900 je k (Ethernet) rozhraní laboratorního prvku (reálného i simulovaného) přiřazen VLAN
- zatím neimplementováno
- použití pro laboratorní prvky, které neumějí trunky (C1900 neumí QinQ, ale je levně dostupný)
Příklad:
R1@ostrava:Ethernet0 C3560 VLMUX1@ostrava 1000 R1@ostrava:Ethernet1 C3560 VLMUX1@ostrava 1000 UML1@ostrava:eth0 C3560 VLMUX1@ostrava 2000 R1@ostrava:Serial0 ASSSK ASSSK1@ostrava 1 R1@ostrava:Serial1 ASSSK ASSSK1@ostrava 2
TODO
- Zjistit, co se přesně stane, když na jednom ze spojených rozhraní laboratorních prvků uživatel nastaví trunk a na druhém access. Pro případ spojení v rámci lokality i přes tunel.