Linux v příkazech - konfigurace sítě
Počítačové sítě nabývají stále většího významu. Pojďme se tedy
podívat, jak si můžeme nakonfigurovat vlastní síťové zařízení.
13.8.2004 08:00 |
Ondřej Čečák
| Články autora
| přečteno 145558×
Little known fact about Middle Earth: The Hobbits had a very sophisticated
computer network! It was a Tolkien Ring...
NIC
Aby byla komunikace s ostatními zařízeními vůbec možná, je obvykle nutné mít
v počítači nějaké síťové zařízení. V našem případě se bude jednat o libovolnou
síťovou kartu (NIC – Network Interface Card). Síťové karty jsou
linuxovým jádrem obvykle dobře podporované, takže předpokládám, že budeme
konfigurovat kartu, kterou systém "vidí" a má pro ni zaveden funkční ovladač.
Adresování
Ve všech komunikačních protokolem bývá nejdůležitější způsob adresování. V
tomto článku se budeme bavit o protokolu TCP/IP a tam jsou v podstatě dvě
možnosti:
- statická konfigurace
- dynamická konfigurace
Statická konfigurace znamená, že IP adresa (a ostatní potřebné údaje) je přiřazena
stroji více méně manuálně a daný počítač ji bude mít stále stejnou. Při
správě více počítačů je ovšem efektivnější dynamická konfigurace – klient
se nakonfiguruje tak, aby získával (půjčoval si) potřebné údaje přes DHCP (Dynamic Host Configuration
Protocol)) nebo BOOTP (Bootstrap Protocol), takže v případě potřeby můžete
změnit některé údaje jednoduše (a pouze) na serveru. (neberu v úvahu různé
dirty tricks ;-))
Statická konfigurace
Pokud tedy počítač nezískává potřebné údaje přes DHCP, nezbývá než vše
nastavit manuálně. Různé distribuce tuto činnost různě ulehčují a nabízí
všemožné postupy a prostředky, jak této konfigurace dosáhnout. My si
představíme pouze ten nejzákladnější postup prakticky bez použití dalších
"pomocníků".
Nastavení hostname
Každý počítač obvykle mívá nějaké jméno, inspiraci, jak toho jméno zvolit,
můžete najít v
RFC 1178,
RFC 2100
a nebo v
článku na root.cz
(především diskuze je dost inspirativní).
Jestliže tedy už máme zvolené jméno, použijeme příkaz
hostname , kterým název počítače nastavíme.
root@localhost:~# hostname hippo
root@localhost:~#
Název se v tomto případě okamžitě nezměnil, protože je nutné, aby si změny
všimly jednotlivé procesy (konkrétně shell), např. resetováním služby. Vhodné také
je uložit název počítače do konfiguračního souboru, protože po restartu
počítače by bylo hostname opět původní. Jak se název počítače při startu
nastavuje, a které (resp. a jestli) používá konfigurační soubory opět závisí na distribuci,
např. Debian používá soubor /etc/hostname . V případě, že nemůžete
tento soubor ve své distribuci najít, zkuste použít na rekurzivní prohledání
adresáře /etc příkaz grep -r localhost /etc/* .
Příkaz vypíše všechny soubory, které obsahují daný výraz, v tomto případě
localhost, který byl nastaven jako implicitní název stroje.
Nastavení IP adresy
Ať už máme IP adresu z privátního rozsahu
(viz RFC 1918)
nebo veřejnou, je potřeba ji zařízení přiřadit. V minulosti se na to používal
program ifconfig , protože je ale tento program zastaralý,
použijeme příkaz ip (z balíku iproute).
root@hippo:~# ip addr add 192.168.0.2/24 brd + dev eth0
root@hippo:~# ip link set eth0 up
Tímto jsme zařízení eth0 (první síťová karta) přiřadili IP adresu 192.168.0.2
a síťovou masku 255.255.255.0 (v příkladu je zapsána úsporně – číslo
znamená počet jedniček v binárním zápisu). Následuje adresa pro broadcasty (pokud ji
nenapíšete přímo, ale pomocí + , bude automaticky dopočítána podle IP adresy a síťové masky.
Druhý řádek našeho příkazu rozhraní aktivoval.
Pokud chcete jednomu síťovému zařízení přiřadit více adres, můžete jednoduše opakovat první příkaz nahoře.
Pokud vás několik adres na jedné NIC přestane bavit, jednoduše adresu zase smažte:
root@hippo:~# ip addr add 192.168.1.2/24 brd + dev eth0
root@hippo:~# ip addr del 192.168.1.2/24 dev eth0
Pokud se vám defaultní název zařízení eth0 z nějakého důvodu nelíbí, není
problém přiřadit tomuto zařízení jiný název:
root@hippo:~# ip link set eth0 name JmenoSitovky
Nastavení můžeme zkontrolovat zobrazením stavu zařízení:
root@hippo~# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:04:75:c4:66:6f brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
Deaktivace rozhraní se dá provést takto:
root@hippo:~# ip link set eth0 down
V případě, že chcete zařízení nakonfigurovat znovu, měli byste ho vyčistit příkazem:
root@hippo:~# ip addr flush dev eth0
Nastavení směrování
Další krok v naší konfiguraci je nastavení cest, kterými se mají packety
ubírat k cíli. Protože je naše síť jednoduchá, nastavíme pouze implicitní
směrování na gateway. Opět nepoužijeme zastaralý příkaz route ,
nýbrž program ip .
root@hippo:~# ip route add default via 192.168.0.254
Vlastní routovací tabulku si můžeme nechat zobrazit příkazem:
root@hippo:~# ip route list
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2
127.0.0.0/8 dev lo scope link
default via 192.168.0.254 dev eth0
V praxi se dá také použít zkráceně ekvivalentní ip r . Zařízení lo je lokální smyčka,
která má své specifické využití. Implicitně se provoz směruje přes nastavenou bránu.
Nastavení DNS
Protože by bylo opravdu nepraktické a nepohodlné pamatovat si jednotlivé IP
adresy serverů, existuje možnost přiřazení číselným adresám jejich jmenný
ekvivalent (a v případě potřeby naopak :o)).
Poměrně jednoduchý způsob je ukládání jmen do souboru /etc/hosts
(ve formátu IP adresa, kanonické jméno, aliasy –
odděleno tabulátory). Samozřejmě
lze např. zajistit distribuci souboru se seznamem na jednotlivé stroje, ale v
případě větších sítí by to bylo značně náročné a velmi nepraktické.
Typický příklad souboru /etc/hosts by mohl vypadat nějak takto:
127.0.0.1 hippo localhost
192.168.0.254 gw
Kvůli výše zmíněné nepraktičnosti a složitosti existují místo distribuce seznamu
adres servery DNS (Domain Name System), které tato jména
uchovávají a poskytují odpovědi na dotazy. V linuxu adresu DNS nastavíme do
souboru /etc/resolv.conf .
Uvést si můžeme okomentovaný příklad:
search jmeno-domeny.cz # název domény, kterou chcete prohledávat
nameserver 192.168.100.254 # primární DNS
nameserver 192.168.100.252 # sekundární DNS
nameserver 172.16.20.254 # záložních DNS můžete mít definováno i více
Použití těchto dvou souborů ovšem závisí na nastavení, konkrétně na /etc/hosts.conf , který
slouží jako konfigurační soubor knihovně resolveru. Právě zde je určeno, jestli se mají tyto dva soubory použít,
případně v jakém pořadí (novější verze mají navíc další možnosti, jako např. ochrana nebo varování před ip spoofem, atd.)
Dynamická konfigurace
Jak už bylo řešeno výše, dynamická konfigurace klientů může významným způsobem
zjednodušit a zefektivnit správu větší sítě. V následujících příkladech se
podíváme na konfiguraci klientů přes DHCP (více o DHCP viz
RFC 2131).
Samotných klientů existuje více, my se podíváme na nejběžnější programy –
dhclient od ISC (Internet Software Consortium)
a na pump . Setkat se ale můžete také dalšími (např. dhcpcd ).
Programy na získání potřebných údajů pro konfiguraci sítě se obvykle používají
v distribučních startovacích skriptech – my se ovšem podíváme pouze na
základní použití bez pomoci různých skriptů závislých na zvolené distribuci.
Nejprve se tedy podíváme na program dhclient . Ten se při startu
podívá do konfiguračního souboru /etc/dhclient.conf a podle
obsahu se patřičně zachová. Soubor může být i prázdný a konfigurace obvykle
projde bez problémů.
Podívejme se ale na okomentovaný příklad konfiguračního souboru:
timeout 60; # timeout :o), klient bude zkoušet navazovat komunikaci 60s
retry 60; # pokud neuspěje, po 60 sekundách to zkusí znovu
reboot 10; # po 10 sekundách klient vzdá použití staré adresy a
# začne nově hledat
reject 192.168.0.3; # odmítne danou IP
interface "eth0" { # nastavení pro zařízení eth0
send host-name "hippo"; # send znamená, že je serveru poslána
# daná položka s danou hodnotou,
# více viz man dhcp-options
send dhcp-client-identifier 00:0c:29:05:24:51;
send dhcp-lease-time 3600;
supersede domain-name "moje-domena.cz"; # pouzije domain-name, at
# server předá cokoli
prepend domain-name-servers 127.0.0.1; # toto se pouzije do doby,
# než server dodá
# odpovídající hodnotu
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers; # požadované údaje (DHCP server
# toto posílá implicitně)
require subnet-mask, domain-name-servers, host-name;
# údaje, které server musí
# zaslat, aby byl požadavek
# uznán platným
script "/sbin/dhclient-script"; # cesta ke konfiguračnímu skriptu
}
Další program, který lze použít je pump , který např. používá(la) ve
svých konfiguračních skriptech distribuce RedHat. Použití programu je poměrně
jednoduché, stačí zadat parametr -i a název zařízení, které si
přejeme zkonfigurovat.
root@hippo~# pump -i eth0
root@hippo~# pump -i eth0 status
Device eth0
IP: 192.168.0.2
Netmask: 255.255.255.0
Broadcast: 192.168.0.255
Network: 192.168.0.0
Boot server 192.168.0.254
Next server 192.168.0.254
Gateway: 192.168.0.254
Domain: localdomain
Nameservers: 192.168.100.254
Renewal time: Fri Jul 23 19:32:16 2004
Expiration time: Fri Jul 23 19:47:16 2004
Z výpisu je patrné, jaká je funkce příkazu -i $INTERFACE status
– vypíše
získané a použité parametry. V případě, že není vhodné použít adresy DNS od
serveru, lze použít volbu -no-dns , podobně, ale pro gateway platí
parametr -no-gateway . Pokud je třeba zařízení
dekonfigurovat, použijeme pump -r .
Program pump může být také nastavován prostřednictvím konfiguračního souboru –
právě k tomu slouží /etc/pump.conf . Uvést si můžeme přímo příklad:
domainsearch "my.own.org own.org at.work.com" # nastaví vlastní domainsearch,
# ignoruje serverem
# vrácené hodnoty
retries 3 # pokusí se kontaktovat DHCP server celkem 4x
timeout 60 # po 60 sekundách vzdá komunikaci
device eth0 { # konfigurujeme zařízení eth0
nodns # zakáže modifikaci /etc/resolv.conf
nogateway # ignoruje serverem zaslanou adresu brány
}
Nezapomínejte na bezpečnost
Když se bavíme o sítích, musím zdůraznit
bezpečnost. Nezapomínejte, v jaké
síti jste připojeni a co od ní můžete a nemusíte čekat. I když slouží stroj
pouze na testování, měl by být adekvátně zabezpečen proti útoku zvenčí.
Zdroje
- man hostname
- /usr/share/doc/iproute/ip-cref.ps
- man hosts
- man resolv.conf
- man host.conf
- man pump
- man dhclient
- man dhclient.conf
- man dhcp-options
- RFC 1178 – Choosing a name for your computer
- RFC 2100 – The Naming of Hosts
- RFC 1918 – Address Allocation for Private Internets
- RFC 2131 – Dynamic Host Configuration Protocol
- RFC 2132 – DHCP Options and BOOTP Vendor Extensions
Za konzultace bych chtěl poděkovat Honzovi Houšťkovi.
Verze pro tisk
|
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|