Síťová rozhraní: Porovnání verzí

Z Milan Kerslager
Přejít na: navigace, hledání
(Výpis nastavení sítě: aktualizace)
m (Fix)
 
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.)
Řádka 1: Řádka 1:
V současných distribucích je konfigurace síťových rozhraní otázkou pouhého vyplnění potřebných údajů, protože odpadají starosti s ovladači. Jádro obvykle obsahuje všechny potřebné ovladače, které jsou automaticky aktivovány podle zjištěných připojených zařízení. Ovladače proto není potřeba shánět a instalovat (jak je obvyklé v MS Windows).
+
V současných distribucích (RHEL7, Fedora 23) je konfigurace síťových rozhraní otázkou pouhého vyplnění potřebných údajů, protože odpadají starosti s ovladači. Jádro obvykle obsahuje všechny potřebné ovladače, které jsou automaticky aktivovány podle zjištěných připojených zařízení. Ovladače proto není potřeba shánět a instalovat (jak je obvyklé v MS Windows).
  
 
== Schéma sítě ==
 
== Schéma sítě ==
Řádka 24: Řádka 24:
 
V GUI (grafické uživatelské rozhraní) je obvykle k dispozici ikona se symbolem počítače, která slouží pro nastavení pomocí aplikace NetworkManager. Nastavení je intuitivní.
 
V GUI (grafické uživatelské rozhraní) je obvykle k dispozici ikona se symbolem počítače, která slouží pro nastavení pomocí aplikace NetworkManager. Nastavení je intuitivní.
  
=== Nastavení v textovém rozhraní ==
+
=== Nastavení v textovém rozhraní ===
 
V příkazovém řádku lze požít nástroj <code>nmtui</code>, který je v balíčku <code>NetworkManager-tui</code> (RHEL7). Aplikaci ovládáme myší nebo klávesami TAB (přeskok na následující položku), šipkami, Enter a mezerníkem (pro přepínače).
 
V příkazovém řádku lze požít nástroj <code>nmtui</code>, který je v balíčku <code>NetworkManager-tui</code> (RHEL7). Aplikaci ovládáme myší nebo klávesami TAB (přeskok na následující položku), šipkami, Enter a mezerníkem (pro přepínače).
  
Řádka 96: Řádka 96:
  
 
  /etc/init.d/network restart
 
  /etc/init.d/network restart
 
== Moduly ==
 
Abyste mohli komunikovat pomocí počítačové sítě, musí nejprve jádro operačního systému síťová zařízení (síťové karty) rozpoznat. Pak teprve může poskytnout jednotné rozhraní pro jejich ovládání a snadné využívání dalším (spuštěným) programům.
 
 
S nejrůznějšími zařízeními komunikuje jádro pomocí tzv. ovladačů, které jsou obvykle realizovány jako moduly. Pokud je síťová karta připojena přes PCI sběrnici, není potřeba modulu předávat další informace, protože si všechny dokáže zjistit sám (zkuste použít příkaz <CODE>lspci</CODE>, který vypíše seznam zařízení připojených na PCI sběrnici nebo <CODE>lspci&nbsp;-v</CODE>, pokud se chcete dozvědět podrobnější informace). V případě ISA karet je obvykle potřeba ovladači (modulu) sdělit alespoň I/O adresu.
 
 
V současné době jádro Linuxu spolupracuje s démonem '''hal''', který umožňuje zavádět moduly zcela automaticky bez zásahu uživatele. Výsledkem je, že po zasunutí Flash paměti do USB slotu je automaticky zaveden modul pro práci s USB ''mass storage'' zařízením. Následně je detekován použitý typ systému souborů na Flash paměti (FAT, NTFS, jffs2 a podobně) a zaveden modul nebo více modulů, které z něj dokáží číst soubory a adresáře.
 
 
U starších zařízení nelze automaticky zjistit jejich typ, výrobce a verzi (jako je to možné u sběrnic PCI, USB, PCI Express, PC Card a podobně). V takovém případě je nutné vytvořit vazbu mezi zařízením a obslužným modulem ručně. Tyto vazby (aliasy) zapisujeme do souboru <CODE>/etc/modprobe.conf</CODE> (v jádrech 2.4.x a starších v souboru <CODE>/etc/modules.conf</CODE>). Pokud se pak s tímto zařízením pokusíme pracovat (např. síťová karta na ISA sběrnici), je již modul zaveden automaticky nebo ho můžeme sami před použitím zařízení zavést do jádra ručně příkazem <CODE>modprobe</CODE>.
 
 
=== Ruční výběr modulu ===
 
Pokud nevíme, jaký modul je ke kartě potřeba, musíte se buď spolehnout na instalační program distribuce vašeho Linuxu (tj. karta musí být přítomna už během instalace) nebo použít nějaký automatický nástroj, který provede autodetekci a zapíše do souboru jména zařízení a k nim příslušné moduly (v distribuci Red Hat Linux nebo Fedora je to program '''kudzu''', který se implicitně spouští při startu systému, ale můžete ho spustit i ručně).
 
 
Automatické nástroje zjistí identifikaci zařízení (zkuste příkaz <CODE>lspci&nbsp;-n</CODE>, který vypíše popořadě číslo sběrnice, číslo zařízení, typ zařízení (Class), kód výrobce a zařízení) a v tabulce <CODE>/lib/modules/2.6.x-y.z/modules.pcimap</CODE> si najdou ovladač, který takové zařízení dokáže obsluhovat. Číslo 2.6.x-y.z je číslo verze právě používaného jádra (lze zobrazit např. příkazem <CODE>uname&nbsp;-r</CODE>). Zjištěné asociace mezi zařízením a potřebným modulem zapíše automatický nástroj do již zmíněného souboru <CODE>/etc/modprobe.conf</CODE>.
 
 
Poslední možností je zkusit zavádět moduly ručně příkazem <CODE>modprobe</CODE> a sledovat, jestli se nějaký "nechytí". Seznam modulů najdete v adresáři <CODE>/lib/modules/2.6.x-y.z/kernel/drivers/net</CODE>.
 
 
<CENTER>
 
{| class=wikitable
 
|+ Seznam modulů pro síťové karty
 
|-
 
! '''Jméno modulu''' !! '''Sběrnice''' !! '''Obsluhované síťové karty'''
 
|-
 
| align="center" | 3c59x, 3c900 || align="center" | PCI  || 3Com
 
|-
 
| align="center" | ne2k-pci    || align="center" | PCI  || NE2000 kompatibilní
 
|-
 
| align="center" | 8139too, 8139cp, 8139 || align="center" | PCI || s čipem Realtek
 
|-
 
| align="center" | sis900 || align="center" | PCI || s čipem SiS
 
|-
 
| align="center" | ne    || align="center" | ISA || různé ISA karty
 
|}
 
</CENTER>
 
 
=== Předávání parametrů modulům ===
 
Následující příklad demonstruje obsah souboru /etc/modprobe.conf, který zajistí automatické zavedení zmíněných modulů v případě potřeby (předpokládá, že v počítači jsou vloženy 2 síťové karty na PCI sběrnici - jedna 3Com a druhá NE2000 kompatibilní):
 
 
alias eth0 3c59x
 
alias eth1 ne2k-pci
 
 
Máte-li v počítači ISA kartu (NE2000 kompatibilní), která je nastavena na port 0x300, vypadalo by to asi takhle:
 
 
alias eth0 ne
 
options ne io=0x300
 
 
Pokud si údajem o I/O adrese nejste jisti, můžete zkusit modul zavést s příslušným parametrem z příkazového řádku. V případě úspěchu vypíše ovladač podrobné informace na konzoli nebo je uvidíte po zadání příkazu dmesg (příkaz vypíše obsah bufferu zpráv jádra, které jsou zapisovány do logovacích souborů v adresáři <CODE>/var/log</CODE>). Seznam rozpoznaných síťových rozhraní jádro zveřejňuje také v souboru <CODE>/proc/net/dev</CODE>. Příkaz, který zkusí zavést modul očekávající NE2000 kompatibilní ISA kartu na I/O adrese 300h by pak vypadal takto:
 
 
modprobe ne io=0x300
 
 
Pokud se detekce nezdaří, je vhodné modul z jádra odstranit:
 
 
rmmod ne
 
 
Ovladač ISA karty potřebuje k úspěšné detekci karty jako nápovědu I/O adresu, na kterou je karta nastavena, protože náhodné zápisy na porty kvůli autodetekci mohou vést k zatuhnutí celého počítače. Samotná karta se musí na tento port nastavit ručně propojkami (jumpery) nebo speciálním programem od jejího výrobce. Přerušení není u tohoto ovladače obvykle potřeba zadávat. Pokud byste chtěli zjistit kompletní seznam všech přípustných parametrů modulu <CODE>ne</CODE>, použijte příkaz (výstupem je seznam parametrů, očekávaná hodnota &ndash; např. <CODE>int</CODE> je celé číslo a jejich krátký popis):
 
 
modinfo -p ne
 
  
 
== Reference ==
 
== Reference ==

Aktuální verze z 19. 3. 2016, 18:41

V současných distribucích (RHEL7, Fedora 23) je konfigurace síťových rozhraní otázkou pouhého vyplnění potřebných údajů, protože odpadají starosti s ovladači. Jádro obvykle obsahuje všechny potřebné ovladače, které jsou automaticky aktivovány podle zjištěných připojených zařízení. Ovladače proto není potřeba shánět a instalovat (jak je obvyklé v MS Windows).

Schéma sítě

Nastavení sítě vychází z tohoto obrázku:

                                     jmeno: router.firma.cz
lokální síť                          +-------------------+
<------------------------------------| eth1  Linux  eth0 |-------> Internet
                        |            +-------------------+
                        |              eth0:  123.123.123.1/255.255.255.252
                    +-------+          eth1:  10.0.0.1/255.255.255.0
                    | PC01  |          GW:    123.123.123.2 (u providera)
                    +-------+
                  jmeno: pc01.firma.cz
                  MAC:   00:60:08:7B:C9:77
                  IP:    10.0.0.3
                  MASK:  255.255.255.0
                  GW:    10.0.0.1

Konfigurace TCP/IP

Konfigurace TCP/IP zahrnuje nastavení IP adresy, masky sítě, brány a IP adres pro DNS server. Lze ji provést pomocí konfiguračních nástrojů nebo ručně.

Nastavení v GUI

V GUI (grafické uživatelské rozhraní) je obvykle k dispozici ikona se symbolem počítače, která slouží pro nastavení pomocí aplikace NetworkManager. Nastavení je intuitivní.

Nastavení v textovém rozhraní

V příkazovém řádku lze požít nástroj nmtui, který je v balíčku NetworkManager-tui (RHEL7). Aplikaci ovládáme myší nebo klávesami TAB (přeskok na následující položku), šipkami, Enter a mezerníkem (pro přepínače).

yum -y install NetworkManager-tui
nmtui

Ruční nastavení

Ve Fedoře nebo RHEL (a jeho klonech CentOS apod.) je konfigurace síťových karet zapisána do souborů v adresáři /etc/sysconfig/network-scripts. Jejich obsah je demonstrován níže (rozhraní eth0 bude dále považováno za vnější, tj. počítač je pomocí něho připojen k Internetu a rozhraní eth1 je vnitřním rozhraním, za kterým je vnitřní síť):

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=123.123.123.1
NETMASK=255.255.255.252
GATEWAY=123.123.123.2
$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.1
NETMASK=255.255.255.0

Pokud je rozhraní konfigurováno pomocí DHCP, je zápis o něco jednodušší:

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

Jméno počítače

Součástí správné konfigurace síťového subsystému je i nastavení vlastního jména počítače. Jméno se nastavuje i vypisuje pomocí příkazu hostname. Jméno se vypisuje též ve výstupu příkazu uname -a. Pokud vypsané jméno nesouhlasí se zamýšleným jménem počítače (tj. jméno včetně domény), doplňte ho do souboru /etc/hostname, což zajistí jeho automatické nastavení při startu počítače (je spuštěn program hostname s parametrem plného jména počítače včetně domény).

$ cat /etc/hostname
router.firma.cz

Lokální seznam jmen a IP adres

Neměli bychom zapomenou i na správný obsah souboru /etc/hosts. Kromě adresy pro rozhraní loopback v něm mohou být uvedeny i další IP adresy a jména podle uvážení.

$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

V souboru je vždy od kraje řádku IP adresa, a pak seznam jmen počítače. Vše je odděleno mezerami. V příkladu výše jsou na prvním řádku záznamy pro IPv4 adresu a na druhém řádku záznamy pro IPv6 adresu rozhraní loopback.

Výpis nastavení sítě

Pro výpis nastavení sítě použijeme následující příkazy (popořadě výpis nastavení síťových rozhraní, výpis směrovací tabulky a výpis nastavení resolveru, tj. nastavení adresy DNS serverů):

ip addr show
ip route show
cat /etc/resolv.conf

Pokud je nainstalován balíček net-tools, jsou k dipozici i starší varianty příkazů:

ifconfig
route -n

Restart sítě

Obnovení nastavení sítě lze z příkazového řádku vynutit příkazem:

systemctl restart network

Jednotlivě lze síťová zařízení nastavovat a rušit pomocí skriptů ifup a ifdown:

ifdown eth0
ifup eth0

Starší systémy

Před verzí RHEL7 byl pro restart sítě používán příkaz:

/etc/init.d/network restart

Reference