Bootujeme po síti aneb když disky nejsou potřeba. (přednáška konaná v rámci projektu SUT)



Podobné dokumenty
LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

DHCP - kickstart Jiri Kubina jiri.kubina@osu.cz Ver. 1.0 unor 2006

SPARKLAN WX-7800A - návod k obsluze Verze 1.2

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

Stručný návod pro nastavení routeru COMPEX NP15-C

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

DHCP. Martin Jiřička,

Operační systémy 2. Firewally, NFS Přednáška číslo 7b

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Aktion Connector NÁVOD

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

SPARKLAN WX-7615A - návod k obsluze. Verze i4 Portfolio s.r.o.

Instalace RouterOS pomocí programu NetInstall

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Západočeská univerzita v Plzni Fakulta aplikovaných věd katedra informatiky a výpočetní techniky LABORATORNÍ PRÁCE. z předmětu Přenos dat.

DWL-G122 AirPlus G TM Vysokorychlostní g USB bezdrátový adaptér

Linux CryptoFS. Petr Novický

Připojení systémů CNC 8x9 DUAL do sítí pomocí protokolu TCP/IP (Platí od verze panelu 40.31)

Analýza aplikačních protokolů

AKTION CONNECTOR POPIS FUNKCÍ A NÁVOD

udev a kamarádi... Středisko UN*Xových technologií

Počítačové sítě Systém pro přenos souborů protokol FTP

Semestrální projekt do předmětu SPS

Boot GNU/Linuxu pomocí PXE a provoz s terminal serverem

Tomáš Borland Valenta

Instalace Microsoft SQL serveru 2012 Express

Popis zapojení jednotlivých provozních režimů WELL WRC3500_V2 WiFi GW/AP/klient/repeater/switch, 54 Mb/s, R-SMA

Návod k obsluze. Platforma RouterBoard s přeinstalovaným RouterOS Mikrotik. i4wifi a.s.

Průvodce instalací softwaru

OpenVPN. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Ondřej Caletka (CESNET, z.s.p.o.) OpenVPN 3. března / 16

Automatizace bootování s novabootem

P-334U. Bezdrátový Wi-Fi router kompatibilní s normou a/g. Příručka k rychlé instalaci

Konfigurace Windows 7

Návod na nastavení bezdrátového routeru Asus WL-520g Deluxe v režimu klient

Úvod do síťových technologií

Y36SPS Jmenné služby DHCP a DNS

DHCP a DNS a jak se dají využít v domácí síti

Workmonitor. Servisní návod. 24. června 2014 w w w. p a p o u c h. c o m

Instalace propojení dotykového PANELu a SYSTÉMU pomocí Ethernetu (náhrada propojení USB kabelem)

INFORMACE. Postup vytvoření virtuálního PC. Zpracoval: Ing. Emil Kajer Datum vydání:

Střední odborná škola a Střední odborné učiliště, Hořovice

Aplikační vrstva. Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace HTTP

Hodinový rozpis kurzu Správce počítačové sítě (100 hod.)

ADMINISTRACE UNIXU A SÍTÍ - AUS Metodický list č. 1

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Instalace a první spuštění Programu Job Abacus Pro

Monitorování sítě pomocí OpenWrt

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Ing. Michal Martin. Spojení PLC CLICK s NA-9289

Uživatelská příručka

Střední odborná škola a Střední odborné učiliště, Hořovice

Průvodce instalací software

Kapitola 1 Představení SIP telefonu

ZMODO NVR KIT. Instalační příručka

Skupina oborů: Elektrotechnika, telekomunikační a výpočetní technika (kód: 26)

PSK3-20. Malý poštovní server I. Instalace

Popis zapojení jednotlivých provozních režimů WELL WRC7000N WiFi GW/AP/klient/repeater/switch, 300 Mb/s, R-SMA

Super Hot Multiplayer vzdálené sledování finančních dat. Konfigurace sítě. Strana: 1 / 8

Nastavení sítě ve Windows

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

LAN/RS485. Převodník BMR Ethernet LAN/RS485

Instalace SQL 2008 R2 na Windows 7 (64bit)


Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Rozhraní Ethernet. KERN & Sohn GmbH Ziegelei 1 D Balingen info@kernsohn.com. Stránka 2. KMB-A01/ FTB-A09/ ITB-A17-IA-cz-0710

Maturitní okruhy pro 1.KŠPA Kladno, s.r.o. Počítačové sítě a komunikace

Konfigurace síťových stanic

IP adaptér Linksys SPA-1001 (SIP) Stručný průvodce instalací a konfigurací

Quido - Telnet. Popis konfigurace modulů Quido protokolem Telnet. 3. srpna 2007 w w w. p a p o u c h. c o m

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

Office Synchronizer Poznámky k verzi. Verze 1.61

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace

Průvodce nastavením VoIP u telefonní ústředny OMEGA

Implementace Windows Load Balancingu (NLB)

Použití bankovních terminálů s programem TRIFID

V hlavní roli: jeden starý a jeden nový počítač, Debian Linux a spousta harampádí kolem.

Instalační a uživatelská příručka aplikace PSImulator2 Obsah

Administrace Unixu (Nastavení firewallu)

Síťové propojení, konfigurace počítačů a programu Praktik

Signalizace a ovládací prvky. Konektory a připojení

LAN adaptér. Návod k použití

TECHNICKÁ UNIVERZITA V LIBERCI

Průvodce rychlou instalací AXIS 213

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Použití programu WinProxy

Obsah ZÁKLADNÍ DESKA. O autorech 11 Úvod 13

Instalace. Obsah balení

Úprava a instalace lokálního repozitáře pro provoz ve virtualizačním prostředí VMware Server

Rocrail. Nejprve: Obecný úvod. Instalace

Siemens (3V) Ericsson (5V) Alcatel (3.6V) C10, C35, C45, C55 T10s 501 S10, S25, S35 T20e (3V) M35, M50, MT50 T18s A60

Telefonní adaptér SIPURA SPA-PAP2T Stručný průvodce instalací a konfigurací

Hot Standby Router Protocol (zajištění vysoké spolehlivosti výchozí brány)

SMĚROVANÉ A PŘEPÍNANÉ SÍTĚ semestrální projekt. DHCP snooping. Petr Gurecký gur020

Úvod do OpenWRT. Ondřej Caletka. 1. března Uvedené dílo podléhá licenci Creative Commons Uveďte autora 3.0 Česko.

Úvod do Linuxu SŠSI Tábor 1

Počítačové sítě. Další informace naleznete na :

Nastavení sítě Ethernet

Maturitní témata pro 1.KŠPA Kladno, s.r.o. Počítačové sítě a komunikace

Transkript:

Bootujeme po síti aneb když disky nejsou potřeba (přednáška konaná v rámci projektu SUT)

Bootujeme po síti aneb když disky nejsou potřeba V rámci této přednášky se pokusíme demonstrovat možnosti využití bezdiskových stanic, konkrétně způsob jakým zabezpečit jejich bezproblémový boot ze sítě. Stručně z obsahu: Bootujeme po síti aneb když disky nejsou potřeba... 2 Co budeme potřebovat?... 3 Hardware... 3 Software... 3 Jak to funguje teoreticky... 4 Modelová situace... 4 Jak to zhruba funguje... 4 Jak to udělat prakticky... 5 Kompilace jádra... 5 Příprava souborových systémů... 5 Konfigurace DHCP... 7 TFTP server... 7 Nastavení GRUBu... 8 Exportujeme NFS... 9 A teď to nejdůležitější... 10

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 3 Co budeme potřebovat? Hardware Minimálně to budou dva počítače. Jeden který nemá disk a potřebuje nabootovat říkejme mu klient a druhý který bude poskytovat služby nutné k úspěšnému dokončení tohoto procesu server. To je ovšem minimalistický předpoklad. Ve skutečnosti jistě budeme mít bezdiskových stanic více a tudíž budou zapojeny do nějakého hubu či switche. Můžeme použít i router ale ten musí být nastaven tak aby forwardoval DHCP. To nás ale teď nezajímá. Klient musí obsahovat síťovou kartu která je schopna provést boot ze sítě. Některé to umí přímo od výrobce, jiné potřebují EEPROM čip se zavaděčem, jiné jsou bohužel nepoužitelné. Podrobnější informace získáte na adrese http://www.etherboot.org/. Já jsem použil pro demonstraci kartu osazenou obvodem Intel Ethernet pro 100 kde je netbootrom připravená již od výrobce. Na druhé straně může být použita jakákoliv síťová karta která je schopna komunikace v dané síti. Software Co se software týče budeme potřebovat DHCP server, TFTP server, NFS server a doporučil bych nějaký nástroj pro sledování síťového provozu 1. Není to nezbytně nutné ale může nám to usnadnit nalezení případných potíží v konfiguraci. Poté rovněž bude vhodné mít nějakou live distribuci pro zjištění MAC adresy 2 karty klienta a možnou diagnostiku funkčnosti sítě. 1 např. tcpdump, ethereal apod. 2 HW adresa konkrétní síťové karty, je to adresa na nižší vrstvě než IP a slouží k určení konkrétního adaptéru na segmentu

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 4 Jak to funguje teoreticky Modelová situace Protože si nebudeme povídat o vzdušných zámcích, bylo by vhodné nastínit modelovou situaci. Vycházíme z minimální konfigurace viz. následující tabulka. Počítač IP MAC Server 192.168.0.1 00:c0:26:23:46:3f Klient 192.168.0.2 00:02:b3:5d:f2:2e Výhledově může Server sloužit jako NAT pro připojení do internetu ale o to nám nyní nejde. Jelikož nebudeme věci zbytečně komplikovat propojíme počítače přímo kříženým kabelem. Jak to zhruba funguje Zkusme si tedy popsat co všechno co potřeba k úspěšnému dovršení procesu o který usilujeme. Po zapnutí klienta dojde k inicializaci kódu na ethernetové kartě. Ta se podívá zda je povolen boot ze sítě a zda je médium aktivní (je zapojen kablík). Pokud ano, vyšle DHCP požadavek DHCP discover. Server odpoví pomocí DHCP offer s nabídkou IP adresy, informací o dalších nastaveních sítě 3 a rovněž s názvem zavaděče (pokud vás zajímají další detaily o DHCP podívejte se do RFC 2131). Klient požádá o přidělení dané adresy a poté si stáhne soubor jehož název obdržel v požadavku. V našem případě to bude GRUB. V zavaděči máme již standardní možnosti výběru např. verze jádra k nabootování. Můžeme tedy natáhnout jádro opět s využitím TFTP a jsme téměř hotovi. Téměř proto, protože nemáme žádný disk, takže když už nic jiného, nemáme ani kam připojit root filesystem. Tady si pomůžeme malým trikem a připojíme celou adresářovou strukturu pomocí NFS. Když si to nějak rozebereme, jaké požadavky nám z toho plynou? zkompilované jádro pro klienty a server připravené souborové systémy pro klienty nakonfigurované DHCP, znalost MAC adres všech klientů 4 nahozený TFTP server zkonfigurovaný GRUB pro klienty nastavený export pomocí NFS Podle těchto bodů budeme postupovat. Takže, začínáme 3 brána, doba výpůjčky, maska podsítě 4 teoreticky pokud jsou všechny stanice stejné není potřeba ale podle mě je lépe na to nespoléhat

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 5 Jak to udělat prakticky Kompilace jádra Nebudu popisovat jak zkompilovat jádro, to opravdu není účelem této přednášky, jenom vyzdvihnu několik bodů. Pokud máme všechny stroje o stejné konfiguraci jsme za vodou jádro stačí pouze jedno. Jinak si bohužel musíme připravit pro každou variantu vlastní kernel a rovněž je pak rozlišit v konfiguraci GRUBu podle strojů. Doporučuji nepoužívat moduly protože v tomto případě si přivodíme více škody nežli užitku. Je nutno zapnout podporu NFS file system support a IP kernel level autoconfiguration DHCP (Device drivers -> Networking support -> Networking options). Pro server moc změn dělat nemusíme, jenom je nutno se ujistit, zda je povoleno NFS ze strany serveru. Obrázek 1 - konfigurace jádra Příprava souborových systémů Nadpis může být trošku zavádějící ale nevěděl jsem jak to popsat výstižněji. Uvědomme si že na bezdiskové stanici musíme sdílet všechny soubory po síti, to znamená že někde na disku serveru musí být uložen úplný souborový systém pro klienta který se ale poněkud liší od mateřského serveru. Osobně jsem si vyhradil pro tento účel adresář /diskless a veškeré potřebné soubory umisťuji dovnitř. Do kořene umístím soubory pxegrub a grub.conf. Dále se zde bude nacházet adresář do

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 6 kterého si připravím podobu souborového systému klienta. Já jsem jej pojmenoval klient. Výsledek bude vypadat zhruba takto: /diskless/ +-klient/ +-boot/ +-dev/ +-proc/ +-var/ +-home/... +-grub.conf +-pxegrub Vidíme že musíme vytvořit všechny adresáře stejně tak, jako jsou na hlavním systému. Některé slouží jenom jako přípojné body, jiné mohou sdíleny více klienty zároveň, další musíme exportovat pro každého klienta zvlášť. Přehled je v tabulce: Adresář Režim /proc Slouží pouze jako přípojné bod /sys pro další filesystémy /bin Sdílený všemi klienty /boot /etc /home /lib /opt /sbin /usr /dev Každý klient má vlastní /tmp /var Původně mě napadlo sdílené adresáře symlinkovat na jejich skutečné protějšky na severu. Bohužel tato myšlenka se ukázala jako chybná protože jádro odmítalo načíst init. Volil jsem tedy kompromis kde adresáře /bin, /lib a /sbin nejsou symlinky ale obsahují lokální kopie dat ze

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 7 systémových adresářů. Nejjednodušší způsob jak zkopírovat data je pomocí: rsync avz /bin /diskless/klient rsync avz /sbin /diskless/klient rsync avz /lib /diskless/klient Konfigurace DHCP Konfigurační soubor pro DHCP server nalezneme v adresáři /tec/dhcp/dhcpd.conf. Základním stavebním prvek konfigurace je definice podsítě. Podívejme se na ukázku: # DHCP configuration file for DHCP ISC 3.0 ddns-update-style none; option option-150 code 150 = text; subnet 192.168.0.0 netmask 255.255.255.0 { host klient { hardware ethernet 00:02:b3:5d:f2:2e; fixed-address 192.168.0.2; option option-150 "/grub.conf"; filename "/pxegrub"; } } První příkaz slouží ke konfiguraci dynamických DNS updatů. Direktivou subnet si definujeme síť a její masku. V rámci sítě registrujeme počítač klient s danou MAC adresou a pevně přiřazenou IP. Filename parametr klientovi prozradí co si má stáhnout pomocí TFTP jako zavaděč, option 150 slouží GRUBu udává jméno konfiguračního souboru. Jak vidíme každý klient může používat jiný zavaděč (to asi moc neuplatníme) ale rovněž i jinou konfiguraci bootmenu to se nám hodí pokud máme klienty s jinou HW konfigurací. Pro každého vytvoříme jiného jádro a jiný grub.conf ve kterém bude uveden název souboru s právě jemu příslušejícím jádrem. V této fázi by měl klient dostat přidělenou IP adresu ale stažení zavaděče neproběhne, nemáme totiž nastavený TFTP server Služba TFTP je v mnoha ohledech podobná FTP, jenže je zjednodušená. Server běží na UDP portu 69 a naslouchá příchozím požadavkům. Není podporována autorizace ani výpis adresářů. Pokud chceme na server nějaký soubor zapsat, ten již musí být přítomen (lze pouze přepisovat). Pokud chce nějaký stáhnout, musíme znát přesnou cestu a název. Naštěstí právě proto DHCP protokol umí posílat názvy souborů, takže víme že potřebujeme stáhnout zavaděč a jeho konfiguraci. Oboje dvoje se

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 8 nachází v kořenové složce TFTP serveru takže tomu odpovídá i konfigurace soubor /etc/conf.d/in.tftpd (Gentoo). # Config file for /etc/init.d/in.tftpd # Remove the -l if you use [x]inetd INTFTPD_PATH="/diskless" INTFTPD_OPTS="-l -s ${INTFTPD_PATH}" U mě běží samostatně. Pokud bychom chtěli použít xinetd je tady možnost /etc/xinetd.d/tftpd service tftp { disable = no socket_type protocol wait user server server_args flags } = dgram = udp = yes = root = /usr/sbin/in.tftpd = -s /diskless = IPv4 Jak vidíme toto bylo značně jednoduché. Pak si musíme připravit konfigurační soubor pro GRUB. Nastavení GRUBu # # Sample boot menu configuration file # # Boot automatically after 30 secs. timeout 5 # By default, boot the first entry. default 0 # For booting GNU/Hurd title GNU/Gentoo root (nd) kernel /klient/boot/bzimage ip=dhcp root=/dev/nfs \ nfsroot=192.168.0.1:/diskless/klient boot # For booting memtest title Memtest86+ root (nd) kernel /klient/boot/memtest boot Úvodní část konfigurace vypadá podobně jako na jakékoliv normální stanici. Jiný je příkaz už ale příkaz root (nd). Tím řekneme GRUBu aby

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 9 veškeré své požadavky posílal na TFTP server. Cesta k jádru potom představuje cestu k souboru v rámci TFTP, parametr ip=dhcp zařídí žádost o IP pomocí DHCP ještě před pokusem o spuštění procesu init. Volba root=/dev/nfs je jenom berlička žádné takové zařízení samozřejmě neexistuje ale řekneme tím jádru aby bralo v potaz parametr nfsroot. Ten udává kam se má připojit budoucí / filesystém. Tímto je konfigurace GRUBu hotová, zbývá nastavit NFS. Exportujeme NFS Ani zde není nic moc co řešit, více napoví pohled do /etc/exports. # /etc/exports: NFS file systems being exported. See exports(5). /diskless/klient 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash) Exportujeme adresář /diskless/klient pro celou síť. Bude to pro čtení i pro zápis (rw). Sync nám udává že potvrzení o provedení operace se posílá až teprve poté co skutečně proběhne. Bez parametru *_squash by proběhlo na serveru přemapovaní uživatelů na uživatele nobody a to nechceme.

Míla 'Moira' Brada Bootujeme po síti aneb když disky nejsou potřeba str. 10 A teď to nejdůležitější Což ovšem jaksi nemohu popsat celé příprava konfiguračních skriptů. Toto je asi nejhorší část z celé procedury, bohužel se liší od jedné distribuce ke druhé. Obecně mohu doporučit začít zkoumáním /etc/inittab a potom přes rc skripty a jim podobné se dopracovat k rozumnému výsledku v podobě běžícího systému. Rovná se to v podstatě instalaci from scratch, takže znalostmi jsou ve výhodě uživatelé ne klikacích dister, protože mají aspoň zhruba představu co se v systému při jeho zavádění děje. Můžete vzít již hotové z běžícího systému a snažit se je modifikovat ale stejně to bude běh na dlouho trať. Omlouvám se ale toho by vydalo na jednu celou přednášku. Druhou možností je vzít nějaké distro které se nechá instalovat z chroot prostředí a nainstalovat jej do dané adresářové struktury. Ono někdy ani nezbude jiná možnost zvláště pokud je server optimalizovaný na daný procesoru, jenže klienti jsou starší a binárky serveru na nich prostě spustit nepůjdou. Vím ale pokud vás opustil v tomto bodě asi by to nevypadalo věrohodně k čemu boot když nemáme na konci ani prompt a proto vám doporučím změnit řádek kernel v grub.conf: kernel /klient/boot/bzimage ip=dhcp init=/bin/bash root=/dev/nfs \ nfsroot=192.168.0.1:/diskless/klient Tím přikážeme jádru aby místo procesu init (který je jinak nezbytný, řídí další zavádění a vůbec běh celého systému) spustilo bash. Takže tímto se s vámi loučím ve stavu kdy na nás mrká alespoň bash a pokud bude z Vaší strany zájem provedeme doladění někdy příště.