Jednou z nejdůležitějších domén správce systému je síť.
I když pochopení všeho, co je třeba vědět o sítích, je velké téma, je toho hodně, co se můžete naučit ze síťového stacku vašeho vlastního skromného počítače s Linuxem.
Osvojení základních síťových příkazů vám může pomoci pochopit, jak zařízení ví, ke které síti se má připojit, jak najít sdílenou tiskárnu nebo sdílenou složku – nebo největší síť ze všech, internet.
Tento článek popisuje základy správy sítě pomocí open source.
[ Mohlo by se vám také líbit čtení: 5 příkazů pro odstraňování problémů se sítí Linux ]
Co je to síť?
V oblasti výpočetní techniky je síť souborem dvou nebo více počítačů, které mohou komunikovat.
Aby síť usnadnila komunikaci mezi zařízeními, musí být stroje v síti schopny se navzájem najít.
Systémy, které to umožňují, jsou TCP a IP.
Transmission Control Protocol (TCP)
Komunikace vyžaduje prostředek pro přenos zpráv mezi nimi a počítače komunikují pomocí digitálních signálů přenášených ethernetovými kabely nebo rádiovými vlnami nebo mikrovlnami.
Specifikace jsou formálně definovány jako protokol TCP.
Internetový protokol (IP)
Počítače v síti se identifikují samy sebe a navzájem pomocí adres IP, například 10.0.0.1 nebo 192.168.0.8.
Ty jsou také obecně mapovány na názvy hostitelů, jako je laptop
a desktop
nebo darkstar
nebo penguin
nebo jakýkoli název, který každému stroji dáte.
Specifikace pro toto jsou formálně definovány jako IP protokol.
Minimální síť
Nejjednodušší možná síť je síť s jedním uzlem.
Může se to zdát jako podvádění, ale ve skutečnosti je to platná síť v tom smyslu, že počítač potřebuje vědět, jak se oslovit.
Každý počítač se považuje za localhost
uzel s pouze interní IP adresou 127.0.0.1.
Můžete to ověřit pomocí ping
příkaz:
$ ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms
localhost
označení je definováno v /etc/hosts
soubor:
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Mít interní IP adresu je důležité, protože důležité služby, jako je tiskový server CUPS a systém správy serveru Cockpit, poskytují rozhraní přes připojení TCP/IP. Chcete-li k nim přistupovat z počítače, na kterém běží, můžete použít localhost
plus číslo portu (například localhost:631
nebo 127.0.0.1:631
) ve webovém prohlížeči.
Vytvoření základní sítě
Zatímco síť s jedním uzlem je pro některé úkoly užitečná, síť obvykle odkazuje na více než jeden počítač.
Linux a TCP/IP stack udělají spoustu práce, aby zjednodušily práci v síti, ale když automatická nastavení nestačí k tomu, aby vám zajistila nastavení, které vaše organizace potřebuje, je na vás jako na správci systému, abyste pochopili, jak vytvářet konfigurace sítě.
Začněte jednoduše a zkuste vytvořit síť se dvěma počítači.
Chcete-li odstranit automatická nastavení, abyste si mohli zvyknout na budování sítě sami, zkuste použít speciálně zapojený ethernetový kabel nazývaný křížený kabel .
Křížený kabel propojuje vysílané signály přicházející z jednoho počítače s příslušnými přijímači na jiném počítači.
Vzhledem k tomu, že mezi počítači není žádný router, musí být veškerá správa sítě prováděna ručně na každém počítači, což je dobré úvodní cvičení pro základy práce v síti.
Použitím kříženého kabelu k propojení dvou počítačů se zbavíte jakéhokoli externího síťového řadiče, který vám nabídne vedení, takže ani jeden počítač nic nevytváří ani nepřipojuje k síti.
V tomto jednoduchém nastavení jste nejvyšší síťovou autoritou.
Chcete-li vytvořit síť, musíte nejprve každému počítači přiřadit IP adresu.
Blok vyhrazený pro adresy IP, které si sami přiřadíte, je 169.254.x.x.
Zobrazení síťových rozhraní v systému Linux
K vytvoření sítě potřebujete síťová rozhraní.
Ethernetový port je obvykle označen výrazem eth
plus číslo začínající 0
, ale některá zařízení jsou hlášena s jinými výrazy.
Rozhraní na počítači můžete objevit pomocí ip
příkaz:
$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
link/loopback 00:00:00:00:00:00 brd ...
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
link/ether dc:a6:32:be:a3:e1 brd ...
3: wlan0: <BROADCAST,MULTICAST> ...
link/ether dc:a6:32:be:a3:e2 brd ...
V tomto případě eth0
se ukáže jako správný název rozhraní.
Uvidíte však en0
nebo enp0s1
nebo podobné v některých případech, takže je důležité vždy před použitím ověřit název zařízení.
Přiřaďte statickou IP adresu v systému Linux
Normálně je IP adresa přidělována dynamicky z vyhrazeného serveru DHCP nebo routeru se zabudovaným serverem DHCP.
Úkolem serveru DHCP je vysílat nabídky adres přes svou síť.
Když se počítač připojí k síti, požádá o adresu.
Server DHCP mu přiřadí jedničku a zaregistruje, kterému zařízení v síti, identifikovanému pomocí adresy MAC (media access control), byla přiřazena která adresa.
Počítače tak vědí, jak se navzájem najít v síti.
V případě této jednoduché sítě však neexistuje žádný DHCP server, který by rozdával IP adresy nebo registroval zařízení, takže si musíte IP adresu vytvořit sami.
Chcete-li počítači přiřadit IP adresu, použijte ip
příkaz:
$ sudo ip address add 169.254.0.1 dev eth0
A znovu na druhém počítači, tentokrát zvýšením IP adresy o 1:
$ sudo ip address add 169.254.0.2 dev eth0
Nyní má každý počítač dopravní prostředek (křížený kabel) a způsob, jak jej nalézt v síti (jedinečnou IP adresu).
Problém je v tom, že ani jeden počítač neví, že je členem sítě.
Nastavení síťové trasy v systému Linux
Normálně externí router definuje cesty, kterými se síťový provoz musí ubírat, aby se dostal z bodu A do bodu B.
Říká se tomu směrovací tabulka a je to v podstatě „mapa města“ vaší sítě.
Pro jednoduchou síť, kterou jste vytvořili, zatím neexistuje žádná směrovací tabulka.
Můžete to ověřit pomocí route
příkaz na jednom nebo obou počítačích:
$ route
Kernel IP routing table
Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
$
Případně můžete použít ip
příkaz:
$ ip route
$
V každém případě neexistuje žádný smysluplný výstup, protože aktuálně není definována žádná trasa.
Trasu však můžete přidat pomocí ip
příkaz:
$ sudo ip route \
add 169.254.0.0/24 \
dev eth0 \
proto static
Tento příkaz přidá trasu do rozsahu adres začínajícího od 169.254.0.0 a končícího na 169.254.0.255 přes eth0
rozhraní.
Nastaví směrovací protokol na static
k označení, že trasu jste vytvořili vy, správce, jako záměrné přepsání jakéhokoli dynamického směrování.
Ověřte svou směrovací tabulku pomocí route
příkaz:
$ route
Kernel IP routing table
Destination | Gateway | Genmask | ... | Iface
link-local | 0.0.0.0 | 255.255.255.0 | ... | eth0
Nebo použijte ip
příkaz pro jiný pohled:
$ ip route
169.254.0.0/24 dev eth0 proto static scope link
Zavolejte na svého souseda
Vaše síť nyní obsahuje:
- Dopravní prostředek
- Prostředek oslovování
- Síťová trasa
S těmito součástmi může každý počítač oslovit hostitele za hranicemi localhost
.
Vyzkoušejte to pomocí ping
.
Například z počítače s přiřazenou adresou 169.254.0.1:
$ ping -c1 169.254.0.2
64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms
--- 169.254.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms
Můžete také zobrazit sousedy, se kterými jste komunikovali:
$ ip neighbour
169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE
Síťový přepínač
I když je skvělý pro překvapivě rychlé přenosy souborů, pro dvouuzlové pevné sítě není mnoho dalších potřeb.
To je místo, kde se hardware jako síť přepíná přichází.
Přepínač umožňuje připojit k němu několik ethernetových kabelů a distribuuje zprávy z počítače, které je odesílají do zamýšleného cíle, identifikovaného podle jeho IP adresy.
V mnoha moderních univerzálních sítích není fyzický přepínač pro fyzické kabely praktický ani žádoucí, takže se místo něj používá přístupový bod WiFi, ale platí stejné principy.
Router
Místní sítě v praxi propojují mnoho zařízení a jejich počet roste s tím, jak se stále více zařízení stává síťovým.
Když připojíte síť k internetu (síť vzájemně propojených sítí), toto číslo se řádově zvýší.
Je nepraktické konfigurovat síť ručně. Každodenní úkoly jsou tedy přiřazeny konkrétním uzlům v síti a každý počítač spouští démona, který naplňuje síťová nastavení přijatá od autoritativních serverů v síti.
Každá úloha je obvykle přiřazena samostatnému vyhrazenému serveru ve velké síti, aby bylo zajištěno soustředění a odolnost.
Mezi tyto úkoly patří:
- Server DHCP pro přidělování a sledování IP adres zařízením připojujícím se k síti
- Server DNS pro převod registrovaných názvů domén, jako je redhat.com, na adresy IP, jako je 209.132.183.105
- Brána firewall k ochraně vaší sítě před nežádoucím příchozím nebo zakázaným odchozím provozem
- Směrovač pro efektivní směrování provozu v síti, slouží jako brána do jiných sítí (jako je Internet) a provádí překlad síťových adres (NAT)
Díky projektům s otevřeným zdrojovým kódem, jako je VyOS, můžete dokonce provozovat svůj vlastní router s otevřeným zdrojovým kódem postavený z běžného hardwaru.
[ Cheat sheet zdarma:Získejte seznam linuxových nástrojů a příkazů pro správu serverů a sítí. ]
Zabalit
Čím více síťových schémat ve své laboratoři implementujete, tím lépe porozumíte všem problémům, které mohou nastat v reálném světě.
Někdy se problémy týkají jednotlivých počítačů a zařízení; jindy je to hardware a infrastruktura a jindy zase neoptimální design.
Procvičte si nastavení různých topografií sítě, ať už s virtuálními stroji nebo skutečným hardwarem (nebo obojím), a seznamte se s open source nástroji obchodu.
Networking je velké téma, ale sítě jsou všude.
Investujte do toho, abyste se to naučili hned, a ať tak či onak, dříve než později se to vyplatí.