Appearance
Konfigurace sítě na linuxu
V minulé kapitole jsme si řekli něco o sítích, jak tedy mohu síť nakonfigurovat ve svém počítači?
DHCP
V dnešní době je obtížné najít síť, která nemá DHCP, neboli Dynamic Host Configuration Protocol, jelikož konfigurovat síť manuálně je otravný proces, který vyžaduje nějákou znalost o síti do které se připojujete. DHCP vám automaticky přiřazuje náhodnou IP adresu danou podle rozsahu sítě a k tomu nám řeknou kam se má balíček posílat, když cílová adresa není na lokální síti.
Aby vám na linuxu automatická konfigurace sítě fungovala na linuxu, je nutné mít stáhnutý a běžící DHCP client - program, který umí s DHCP servery komunikovat. Na většině distribucí už bude stažený a spuštěný, ale pokud není, můžete použít buď dhcpcd, který sám o sobě řeší pouze dhcp, tedy pokud se například chcete připojit na wifi, musíte stáhnout další program, nebo můžete použít networkmanager, který umí jak připojování na wifi, DHCP, VPN a má spoustu dalších funkcí.
Konfigurace bez DHCP
V případě, že vaše síť nemá DHCP server, nebo nemáte jak DHCP klienta stáhnout, je třeba konfiguraci dělat manuálně. Pro tuto konfiguraci však budeme potřebovat vědět jakou IP adresu chceme mít a jaké IP adresy mají ostatní zařízení na síti. (a rozsah sítě) Pro tuto kapitolu budu očekávat že těmto pojmům rozumíte a že už znáte informace o síti kam se připojujete.
Zobrazení dostupných síťových rozhraní
Narozdíl od windowsu, kde je většina informací před uživatelem schovaná, na linuxu při této konfiguraci nalezneme síťová rozhraní. Síťová rozhraní jsou jednotlivé síťové karty, které jsou v počítači zapojené, kažé rozhraní má vlastní MAC adresu a může mít i přiřazenou IP adresu a její rozsah. Tyto rozhraní si můžeme zobrazit pomocí příkazu ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: wlp59s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.5.128.1/24 brd 10.5.128.255 scope global dynamic noprefixroute wlp59s0
3: enp60s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
Z výstupu programu můžeme rozeznat že máme 3 síťová rozhraní, lo, wlp59s0 a enp60s0. Podle pojmenovávacích konvencí taky zjistíme že wl je wireless a en je ethernet, tedy v počítači mám bezdrátovou síťovou kartu, se kterou se mohu připojovat k wifi a zároveň ethernetovou síťovou kartu, abych se mohl připojit kabelem. Opět podle konvencí, lo je takzvaný loopback, který slouží na komunikaci se sebou samotným, například když mezi sebou chtějí komunikovat dva programy na našem počítači. (aplikace a databáze, frontend a backend atd.) Na vašem počítači však možná uvidíte eth0, wlan0 nebo jiné, eth je zkráceně ethernet a wlan znamená wireless lan, tedy to je jen jiné označení pro stejné typy zařízení.
Dále se dá vyčíst že ethernetové rozhraní je vypnuto podle textu state DOWN a bezdrátové rozhraní je zapnuto state UP. Také vyčteme mou aktuální IP adresu (10.5.128.1) a rozsah sítě. (/24) Samozřejmě také vyčteme MAC adresu jednotlivých zařízení, kterou jsem přepsal z důvodu soukromí.
Pridani a odebirani IP adresy
Když tedy víme na jaké rozhraní / zařízení chceme IP adresu přidat, můžeme ji přidat jedním příkazem. Tady ukážu jak přidat IP adresu 10.5.128.1 s rozsahem 24 na zařízení wlp59s0 (tedy jak přiřadit moji aktuální IP adresu pokud by nefungoval lokální DHCP server)
bash
ip a add 10.5.128.1/24 dev wlp59s0
Úplně stenným příkazem IP adresu můžeme zase odebrat, (v případě že jsme se my nebo DHCP server spletli a přiřadili jsme jinou adresu než jsme chtěli) jen musíme slovo add nahradit za del. Co jsme si neřekli je, že na síťovém rozhraní můžeme mít více IP adres, pokud chceme smazat všechny, použijeme flush podpříkaz.
bash
ip a flush dev wlp59s0
Nahození / vypnutí rozhraní
Pokud jste přidali ip adresu, aby interface začal být platný, musíte ho ještě zapnout. To je opět velmi jednoduché, stačí použít následující příkaz.
bash
ip link set wlp59s0 up
Samozřejmě stejným způsobem můžeme rozhraní i vypnout. (místo up použijeme down)
Připojení k internetu
Po nastavení ip adresy a zapnutí síťového rozhraní už můžeme komunikovat se zařízeními na naší síti. Bohužel, váš počítač neví jakému zařízení posílat cokoliv co jde mimo lokální síť, proto musíme přidat takzvanou default gateway. To opět uděláme jedním jednoduchým příkazem - ip route.
bash
ip route default via 10.5.128.254
Shrnutí
- Díky tomu, že dneska skoro každá síť používá DHCP, většinou stačí mít stažený nástroj, který umí s dhcp servery komunikovat
- Buď můžeme použít
dhcpcd(nebo jiný menší projek) - nebo můžeme použít
networkmanager, který umí i připojování k wifi atd.
- Buď můžeme použít
- Pokud na síti není DHCP server, musíme adresu přidat manuálně pomocí
ip a add <ip>/<rozsah> dev <interface>a zapnout ho pomocíip link set <interface> up - Abychom se mohli připojit k internetu, musíme nastavit default gateway pomocí
ip route default via <ip>