Open Network Linux Směrované a přepínané sítě Jiří Macek (MAC0378) Jiri.Macek.st@vsb.cz
Obsah 1. Úvod... 2 2. Open Network Linux... 3 2.1. bare metal switche... 5 2.2. Licence... 7 3. Instalace... 7 4. Bootování... 8 5. Závěr... 9 6. Rejstřík obrázků... 10 7. Zdroje:... 11 1
1. Úvod Moderní svět je dnes uspěchaný. Tak i oblast informačních technologií se rozvíjí velmi rychle a nabírá vysokých obrátek. Svět informačních technologií se rozvíjí velmi rychle, tak že každý administrátor, či uživatel se musí učit téměř denně nové věci. Nemusí jít vždy o oblast hardwaru. Softwarová část je pro většinu uživatelů daleko důležitější a to se nemusí jednat o základní programové vybavení, do kterého spadají operační systémy. Počítače nás obklopují denně, nalezneme je v automobilech, televizích, pračkách apod. Tak aby jej člověk mohl obsluhovat je zapotřebí operačního systému. Operační systémy pro síťové prvky dnes nejsou novinkou. Nejvýznamnější na trhu je mezinárodní korporace Cisco, která do svých zařízení instaluje svůj operační systém IOS. Podobně tomu je tak i u firmy HP, která do svých inteligentních zařízení převzala rovněž IOS. Nezůstává pozadu taktéž MikroTik se svým systémem RouterOS. Do některých zařízení firmy AirLive existoval alternativní firmware s názvem APpro. Jednalo se o malou linuxovou distribuci, která obsluhovala příslušný hardware. Alternativní operační systémy jsou občas rychlejší na chod celého zařízení a mnohdy nabízí i větší množství funkcí než některé operační systémy dodávané s příslušným zařízením. Bohužel aktivní síťové prvky pro, které je vlastní, či alternativní software bývají většinou určeny pro korporátní sektor a běžný uživatel si jej nemůže kvůli vysoké ceně dovolit. 2
2. Open Network Linux Vraťme se, ale zpět k úkolu. Mým úkolem bylo zjistit co nejvíce o operačním systému Open Network Linux. Open Network Linux je síťový operační systém, který je založen na Debianu. Avšak nejedná se o klasický operační systém pro servery, ale pro aktivní síťové komponenty, přesněji řečeno pro switche. Open Network Linux však není určen pro veškeré switche, nýbrž pouze pro tzv bare metal switche. Open Network Linux není klasickou linuxovou distribucí. Do distribuce jsou zakomponovány specifické funkce pro bare metal switche, které nejsou součástí klasických linuxových distribucí. Bare metal switche mají rozšířenou infrastrukturu díky jejich hardwaru včetně I2C sběrnic, GPIO's, SFP's, LEDky. Nezůstávají ani pozadu s teplotními čidly a aktivními chladicími prvky. Open Network Linux podporuje tyto platformy: x86 PowerPC x86 VM. Kromě podpory komerčních produktů, Open Network Linux byl původně vytvořen jako základní referenční platforma pro kutily fandy a výzkumníky. Open Network Linux v současné době podporuje 12 různých open switch hardwarových platforem, základní L3 směrování, a také má agenta OpenFlow založenou na OF-DPA a projektu Indigo v průběhu. Obrázek 1 Popis funkčnost [Zdroj: http://opennetlinux.org]i 3
Obrázek 2 - Struktura OS [Zdroj: http://opennetlinux.org] 4
2.1. bare metal switche Co to jsou vlastně bare metal switche? Jedná se o speciální switche, kde si koncový zákazník kupuje hardware a software zvlášť. Jako koncový zákazník, mohu ovlivnit, jaký operační systém mohu pro své zařízení použít. Tak, abych jako administrátor mohl do svého zařízení nainstalovat libovolný operační systém, musím mít přístup do paměti flash, kde je operační systém uložen. Jelikož je tento systém otevřený umožňují tak uživatelům vytvářet nové systémy, které jsou více flexibilní, více škálovatelné, a účinnější. Obrázek 3 - BMS switch [zdroj: https://bm-switch.com/] Jak již bylo zmíněno Open Network Linux je určen pouze pro specifické zařízení. V níže uvedené tabulce je seznam podporovaného hardwaru, včetně jeho podpory a testování. 5
Quanta Device Ports CPU Forwarding QuantaMesh T1048-LB9 QuantaMesh T1048-LB9A QuantaMesh T3048-LY2 Accton/Edge-Core Accton AS4600-54T Accton AS5600-52X Accton AS5610-52X Accton AS5710-54X 48x1G + 4x10G P2020 48x1G + 4x10G P2020 48x10G + 4x40G P2020 BCM56534 (Firebolt3) BCM56534 (Firebolt3) BCM56846 (Trident+) Device Ports CPU Forwarding 48x1G + 4x10G P2020 48x10G + 4x40G 48x10G + 4x40G 48x10G + 6x40G P2020 P2020 P2041 Accton AS6700-32X 32x40G P2041 DNI/Agema AG-7448CU BCM56540 (Apollo2) BCM56846 (Trident+) BCM56846 (Trident+) BCM56854 (Trident2) BCM56850 (Trident2) Device Ports CPU Forwarding 48x10G + 4x40G P2020 BCM56845 (Trident) Tabulka 1 Podporovaný hardware pro Open Network Linux [zdroj: http://opennetlinux.org/hcl] Support Status Supported, no ONIE, not regularly tested Support Status Support Status 6
2.2. Licence Jak již název napovídá, jedná se dle selského rozumu o linuxovou distribuci. Z pohledu licence je Open Network Linux veden jako klasický linux a včetně jádra podléhá licenci GNU/GPL. 3. Instalace Instalace Open Network Linuxu probíhá pomocí ONIE (Open Network Install Environment). ONIE je open source, který slouží rozšířený zavaděč s využitím zařízení v prostředí Linuxu. Jedná se o malý vlastní operační systém Linux, který umožňuje instalaci síťového operačního systému a zároveň slouží jako zavaděč. Hlavní výhody ONIE: Kombinuje zavaděč a moderní jádro Linuxu Poskytuje prostředí pro instalaci síťového operačního systému Pomáhá spravovat switche tak jako bychom spravovali Linuxový server Po stažení instalačního balíčku s Open Network Linuxem a jeho extrahování zjistíme, že archiv obsahuje soubor s příponou *.SWI (Switch Image). Ten obsahuje RootFS, kernel a Initrd. Druhým souborem je ISO obraz s loaderem, ten je obdobou zavaděče GRUB. Instalace obsahuje jádro verze 3.9.6. Instalaci lze provést taktéž pomocí protokolů: http, ftp, tftp, nfs, ssh/scp. Po instalaci balíčků máme nainstalován nový OS v našem aktivním prvku. Veškeré předpřipravené balíčky jsou taktéž dostupné na oficiálním webu. 7
4. Bootování 1. uboot is the first level boot loader: http://www.denx.de/wiki/u-boot 2. uboot reads the 'nos_bootcmd' environmental variable from flash and runs the contents ('nos' is Network Operating System) 3. If $nos_boot_cmd returns, uboot loads and runs ONIE (see below) to download the ONL installer and install the ONL loader a) The factory default $nos_boot_cmd is to a trival command that returned immediately, e.g., 'echo' 4. In normal operation, i.e., after ONIE has been run, $nos_boot_cmd is set to load and run the ONL Loader 5. The ONL loader boots its own Linux kernel (later, the "boot kernel") 6. The ONL loader decides which SWI to run based on the URL in the file /etc/swi URL=cat /etc/swi 7. The ONL loader runs /bin/boot $URL 8. The ONL loader retrieves the SWI file a) if the URL is remote (e.g., http://, ftp://, etc.), verify that there is a locally cached copy of the SWI in /mnt/flash2 or if not, download it b) if the URL is local, verify that the device is accessible c) if the URL is a Zero Touch Networking (ZTN) URL, the execute the ZTN protocol to get the SWI (see below) 9. The ONL loader reads the 'rootfs' file out of the SWI and mounts it using overlayfs1 10. The ONL loader called kexec() to switch to the kernel in the SWI and boots the main ONL kernel 11. The final ONL kernel is passed the ONIE platform identifier as a kernel parameter so that platform specific bindings can be loaded [1] Obrázek 4 Bootování [Zdroj: http://opennetlinux.org] 8
5. Závěr Open Network Linux je zajímavou variantou, kterou, lze použít pro bare switche. Tato varianta není na trhu však jediná. Open Network Linux je dva roky starý a stále se vyvíjí. Avšak webová prezentace firmy ve mně nevzbuzuje moc důvěry, neboť stránky i po dvou letech jsou stále v rekonstrukci. Dalším důvodem proč si tento operační systém nezvolit, je velmi malá rozšiřitelnost v sítích a nedostatečné informace na internetu. Na druhou stránkou proč si tento systém vybrat je svižnější chod celého zařízení, a správa zařízení v podobě linuxového serveru. Významné plus shledává i díky licenci cena, která je zdarma. 9
6. Rejstřík obrázků Obrázek 1 Popis funkčnost [Zdroj: http://opennetlinux.org]i... 3 Obrázek 2 - Struktura OS [Zdroj: http://opennetlinux.org]... 4 Obrázek 3 - BMS switch [zdroj: https://bm-switch.com/]... 5 Obrázek 4 Bootování [Zdroj: http://opennetlinux.org]... 8 10
7. Zdroje: [1o] Open Network Linux [online]. 2014 [cit. 2015-05-01]. Dostupné z: http://opennetlinux.org/docs/bootprocess [2o] OCP_2014_eng_workshop.pdf [online]. 22.1. 2015. 2015 [cit. 2015-05-02]. Dostupné z: http://opennetlinux.org/ocp_2014_eng_workshop.pdf [3o] Open Compute Project (OCP) Formally Accepts Open Network Linux (ONL) Big Switch Networks, Inc. [online]. [cit. 2015-05-05]. Dostupné z: http://www.bigswitch.com/press-releases/2015/03/10/open-compute-project-ocpformally-accepts-open-network-linux-onl 11