Network configuration (Česky)

From ArchWiki
Revision as of 16:32, 11 December 2011 by Strcat (Talk | contribs) (codeline -> ic)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Network configuration (Česky)#)
Summary help replacing me
Jednoduchý průvodce nastavováním sítě a řešením problémů.

Nastavení hostname

Hostname (název hostitele/počítače) je jedinečné jméno vytvořené pro účel identifikace stroje na síti. V Arch Linuxu se hostname stroje dá nastavit buď v souboru Template:Filename nebo dočasně až do restartu pomocí příkazu hostname. Hostname je omezen na alfanumerické znaky; je povoleno použít pomlčku (–), ale nesmí jí začínat ani končit. Délka je omezena na 63 znaků.

Otevřete Template:Filename a nastavte HOSTNAME na vámi požadované jméno počítače (v tomto případě "archlinux"):

HOSTNAME="archlinux"

Po jeho nastavení je také dobrý nápad vložit stejný název do souboru Template:Filename. Tím pomůžete najít IP počítače procesům, které na váš počítač odkazují právě pomocí jeho hostname.

Otevřete Template:Filename a přidejte na konec řádku pro localhost stejný hostname, jaký jste zadali do souboru Template:Filename:

127.0.0.1      localhost.localdomain      localhost    archlinux

Obdobně můžete přidávat i další záznamy.

Pro dočasné nastavení hostname (do příštího startu systému) použijte jako root příkaz hostname:

# hostname archlinux

Nahrání ovladače (modulu) zařízeni

Pokud používáte udev, měl by být schopen rozpoznat vaši síťovou kartu a automaticky po startu zavést odpovídající moduly. V opačném případě potřebujete vědět název modulu potřebného pro chod vaší karty. Hledejte na webu výrobce vaší karty, ve vyhledávačích nebo zkuste některou z Live distribucí a podívejte se jaký modul používa – spusťte příkaz lsmod, který zobrazí všechny aktuálně načtené moduly.

Nyní předpokládejme, že znáte název potřebného modulu. Můžete ho do jádra zavést následujícím příkazem:

# modprobe jmenomodulu

Jestliže nechcete nebo nemůžete použít auto-loader jako například hwdetect, můžete přidat názvy potřebných modulů do /etc/rc.conf, potom už nebude potřeba zavádět moduly příkazem modprobe po každém startu počítače. Např. pokud se modul jemenuje tg3:

MODULES=(!usbserial tg3 snd-cmipci)

Další běžné moduly jsou 8139too pro karty s čipy od RealTek nebo sis900 pro SiS karty.

Nastavení IP adresy

Note: U základních desek s integrovanými síťovými kartami je důležité vědět, která karta se považuje za primární (např. eth0) a která za sekundární (např. eth1). Mnoho problémů s konfigurací je způsobeno tím, že uživatelé nesprávně konfigurují v /etc/rc.conf rozhraní eth0 a přitom mají do lokální LAN sítě připojené rozhraní eth1.

DHCP

DCHP je služba, která dokáže dynamicky na požádání přidělovat klientům IP adresu (a nejen ji). Pokud dhcp používáte, upravte rc.conf následovně:

 eth0="dhcp"
 INTERFACES=(eth0)
 ROUTES=(!gateway)

Pokud z nějakého důvodu dhcpcd eth0 selhává, nainstalujte dhclienta (pacman -S dhclient) a použijte příkaz dhclient eth0 (samozřejmě pokud vaše síťová karta je označena jako eth0).

Statická IP

Jestliže sdílíte internetové připojeni z windowsovského boxu bez routeru, použijte na statickou IP adresu jinak můžete mít problémy se sítí.

Pro konfiguraci statické IP potřebujete znát:

  • svoji statickou IP
  • masku sítě
  • adresu broadcastu (poslední možná IP v rozsahu vaší sítě)
  • bránu (gateway)
  • IP adresy jmenných serverů
  • jméno vaší domény

Pokud pracujete v soukromé síti, je bezpečné používat IP adresy v rozsahu 192.168.*.* , s maskou 255.255.0.0 a adresou všesměrového vysílání (broadcast) 192.168.255.255. Dokud vaše síť nemá router, na adrese brány nezáleží. Upravte rc.conf následovně, avšak nahraďte IP, masku sítě, broadcast a bránu svými vlastními hodnotami:

 eth0="eth0 192.168.10.1 netmask 255.255.0.0 broadcast 192.168.255.255"
 INTERFACES=(eth0)
 gateway="default gw 192.168.10.20"
 ROUTES=(gateway)

V souboru Template:Filename potom nahraďte IP nameserveru a jméno domény vašimi vlastními. Jméno domény pro vzhledávání není vždy podmínkou:

 nameserver 61.23.173.5
 nameserver 61.95.849.8
 search example.com

Můžete zadat tolik nameserverů, kolik chcete.

Pokud používáte DHCP a nechcete, aby se váš DNS server měnil při každém spuštění sítě, přidejte volbu -R do DHCPCD_ARGS v souboru Template:Filename (používaném v /etc/rc.d/network). Tímto se zabrání, aby za každým spuštěním DHCP přepisoval váš Template:Filename:

DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"

Aktualizace konfigurace

K otestování konfigurace nemusíte restartovat počítač, stačí jako root spustit Template:Filename. Nyní zkuste příkazem ping otestovat spojení na vaši bránu, DNS servery, ISP a jiné internetové servery.

Některá další nastavení

Bezdrátové sítě

Konfigurace bezdrátových sítí je probírána v Wireless Setup.

Firewall

Abyste se cítili bezpečněji, nainstalujte a nakonfigurujte si firewall.

Ifplugd

Ifplugd je služba, která automaticky konfiguruje vaše síťová rozhraní, když zapojíte kabel a poté i konfiguraci vynuluje, pokud kabel zase odpojíte. To je velmi použitelné na laptopech s integrovanou síťovou kartou, protože se bude síť konfigurovat až opravdu v okamžiku, kdy je připojen kabel.

Instalace je velmi jednoduchá. Baliček se nachází v [extra]:

# pacman -S ifplugd

Ve výchozím stavu je služba nastavena pro spolupráci s eth0. Toto a jiné nastavení se konfiguruje v Template:Filename.

ifplugd spusťte příkazem:

# /etc/rc.d/ifplugd start

nebo jej přidejte do výčtu DAEMONS v Template:Filename.

OpenVPN

Příprava

Instalace

# pacman -S openvpn openssl

Generování certifikátů

Zkopírujeme skripty pro jednoduché vytváření certifikátů:

cp -r /usr/share/openvpn/easy-rsa /etc/openvpn/easy-rsa/

Generování za pomoci Easy-RSA

cd /etc/openvpn/easy-rsa/

Doporučuji v souboru vars a vyplnit následující položky:

export KEY_COUNTRY="CZ"
export KEY_PROVINCE="NA" (NA znamená Not Applicable)
export KEY_CITY="Mesto"
export KEY_ORG="firma"
export KEY_EMAIL="me@myhost.cz"

Vygenerujeme certifikáty potřebné pro server:

source ./vars
./build-ca
./build-key-server MYSERVER
./build-dh

Vygenerujeme certifikáty pro uživatele:

./build-key FRANTA
./build-key PEPA

Veškeré vygenerované soubory jsou uložené v:

/etc/openvpn/easy-rsa/keys

Výsledek by měl zhruba vypadat takto:

ls -l /etc/openvpn/easy-rsa/keys/
total 84
-rw-r--r-- 1 root root 4079 May 21 09:53 01.pem
-rw-r--r-- 1 root root 3943 May 21 09:54 02.pem
-rw-r--r-- 1 root root 3958 May 21 09:54 03.pem
-rw-r--r-- 1 root root 1354 May 21 09:51 ca.crt
-rw------- 1 root root  916 May 21 09:51 ca.key
-rw-r--r-- 1 root root  245 May 21 09:54 dh1024.pem
-rw-r--r-- 1 root root 3958 May 21 09:54 FRANTA.crt
-rw-r--r-- 1 root root  716 May 21 09:54 FRANTA.csr
-rw------- 1 root root  916 May 21 09:54 FRANTA.key
-rw-r--r-- 1 root root 4079 May 21 09:53 MYSERVER.crt
-rw-r--r-- 1 root root  716 May 21 09:52 MYSERVER.csr
-rw------- 1 root root  916 May 21 09:52 MYSERVER.key
-rw-r--r-- 1 root root  395 May 21 09:54 index.txt
-rw-r--r-- 1 root root   21 May 21 09:54 index.txt.attr
-rw-r--r-- 1 root root   21 May 21 09:54 index.txt.attr.old
-rw-r--r-- 1 root root  261 May 21 09:54 index.txt.old
-rw-r--r-- 1 root root 3943 May 21 09:54 PEPA.crt
-rw-r--r-- 1 root root  708 May 21 09:54 PEPA.csr
-rw------- 1 root root  912 May 21 09:54 PEPA.key
-rw-r--r-- 1 root root    3 May 21 09:54 serial
-rw-r--r-- 1 root root    3 May 21 09:54 serial.old

Špatně jste něco vyplnili a chcete to celé udělat znovu? Pozor, následující příkaz vymaže všechny certifikáty vytvořené předcházejícími příkazy.

source ./vars
./clean-all

Zdroje:

  1. http://www.openvpn.net/index.php/open-source/documentation/howto.html
  2. http://wiki.archlinux.org/index.php/OpenVPN
  3. http://openvpn.net/index.php/open-source/documentation/miscellaneous/77-rsa-key-management.html

Konfigurace serveru

Vytvořte novou konfiguraci:

nano /etc/openvpn/vpn.conf 
port 1194
proto tcp
dev tun

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/MYSERVER.crt
key /etc/openvpn/easy-rsa/keys/MYSERVER.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

log-append /var/log/openvpn
status /tmp/vpn.status 10


Spusteni OpenVPN serveru

/etc/rc.d/openvpn start

Ať už všechno jde, jak má, nebo ne, překontrolujte log.

cat /var/log/openvpn
Fri May 21 09:58:59 2010 OpenVPN 2.1.1 x86_64-unknown-linux-gnu [SSL] [LZO2] [EPOLL] built on Apr  1 2010
Fri May 21 09:58:59 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri May 21 09:58:59 2010 Diffie-Hellman initialized with 1024 bit key
Fri May 21 09:58:59 2010 TLS-Auth MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Fri May 21 09:58:59 2010 ROUTE default_gateway=10.0.0.1
Fri May 21 09:58:59 2010 TUN/TAP device tun0 opened
Fri May 21 09:58:59 2010 TUN/TAP TX queue length set to 100
Fri May 21 09:58:59 2010 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Fri May 21 09:58:59 2010 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Fri May 21 09:58:59 2010 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Fri May 21 09:58:59 2010 GID set to nobody
Fri May 21 09:58:59 2010 UID set to nobody
Fri May 21 09:58:59 2010 Listening for incoming TCP connection on [undef]:1194
Fri May 21 09:58:59 2010 Socket Buffers: R=[87380->131072] S=[16384->131072]
Fri May 21 09:58:59 2010 TCPv4_SERVER link local (bound): [undef]:1194
Fri May 21 09:58:59 2010 TCPv4_SERVER link remote: [undef]
Fri May 21 09:58:59 2010 MULTI: multi_init called, r=256 v=256
Fri May 21 09:58:59 2010 IFCONFIG POOL: base=10.8.0.4 size=62
Fri May 21 09:58:59 2010 IFCONFIG POOL LIST
Fri May 21 09:58:59 2010 MULTI: TCP INIT maxclients=1024 maxevents=1028
Fri May 21 09:58:59 2010 Initialization Sequence Completed

Konfigurace Klienta

Bezpečnou cestou přeneseme certifikáty ze serveru na klienta, v tomto případě Windows 7.

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/FRANTA.crt
/etc/openvpn/easy-rsa/keys/FRANTA.key

Nahrajeme je do adresáře:

C:\Program Files (x86)\OpenVPN\config\

pro 32bitový systém:

C:\Program Files\OpenVPN\config\

Vytvoříme textový soubor s příponou .ovpn. Do něj vložíme vzorovou konfiguraci pro uživatele FRANTA a uložíme jej do stejného umístění jako certifikáty.

client
remote 10.0.0.102 1194
dev tun
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
verb 2
ca ca.crt
cert FRANTA.crt
key FRANTA.key
comp-lzo

Doporučuji zadat u volby verb vyšší číslo kvůli podrobnějším logům. Až bude vše fungovat, přepište ji na 3.

Takovýto soubor OpenVPN automaticky načte. Pokud chcete mít na ploše ikonu OpenVPN, která se po spuštění sama připojí na server, upravte zástupce následovně:

"C:\Program Files (x86)\OpenVPN\bin\openvpn-gui-1.0.3.exe" --connect franta.ovpn

Řešení problémů

Problém se škálováním TCP okénka (Window)

TCP segmentu obsahují hodnoty "okének" ve hlavičkách indikujících kolik dat je schopný přijímací uzel akceptovat od vysílajícího. Okénka se definují v segmentech ACK, kdy přijímací uzel potvrzuje přijetí segmentů. Velikost okénka reprezentuje 16bitů a z tohoto důvodu je maximálně 64Kb. TCP segmenty jsou ukládány v cache (kde se zarovnávají).Cache je omezená a přijímací uzel by jí lehce mohl vyčerpat, pokud by neměl mechanizmus jak korigovat tok dat.

V roce 1992 rostlo množství dostupné paměti v počítačích. Bylo nepsán RFC 1323 , aby zlepšil situaci škálování okénka. Hodnota okénka implementovaná do všech segmentů bude modifikována tzv. škálovacím faktorem (Scale Factor) definovaným jednou na počátku komunikace.

8-bitový Škálovací faktor umožňuje okénku být 32-krát vyšší než původních 64Kb.

Občas nastává problém v tom, že některé chybné routery a firewally na internetu přepisují škálovací faktor na 0, čímž způsobují nedorozumění mezi hosty.

Linuxové jádro 2.6.17 představilo nové kalkulační schéma generující vyšší škálovací faktor. Uměle zviditelňuje následky chyb routerů a firewallů.

Výsledné spojení je při nejlepším velmi pomalé, nebo nelze navázat.

Jak diagnostikovat problém?

Tento problém nastává zřídka kdy. V některých případech nebudete schopní použít TCP spojení (HTTP,FTP,...) vůbec a v jiných budete schopni pouze s některými hosty.

Varování: výstup z dmesg musí být v pořádku, logy čisté, ifconfig ukazuje normální stav — vše se jeví v pořádku.

Pokud nemůžete prohlížet zádnou webovou stránku, ale můžete pingnout některé hosty, šance jsou velké. Ping používá ICMP protokol a není ovlivněn TCP protokolem.

K detekci problému můžete vyzkoušet program WireShark. Je to výborný nástroj pro zkoumání síťové komunikace. Například můžete objevit úspěšné UDP a ICMP komunikace, ale neúspěšné TCP komunikace.

Jak to opravit? (špatná cesta)

Můžete změnit hodnotu tcp_rmem, na které je založen škálovací faktor. Přestože by to mohlo pomoci většine hostů, není zaručeno, že to bude funkční i na ty velmi vzdálené.

echo "4096 87380 174760" > /proc/sys/net/ipv4/tcp_rmem


Jak to opravit? (dobrá cesta)

Jednoduše vypněte škálování okének. Přestože je škálování příjemná vlastnost TCP, může být dosti nepohodlná. Zvláště pokud nemůžete upravit chybný router. Je několik cest jak vypnout škálování a vypadá to, že pracují na většině kernelů. Přidejte dásledující řádek do /etc/rc.local:

echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

Jak to opravit? (nejlepší cesta)

Tento problém je způsoben chybným routerem/firewallem, tak jej vyměňte. Někteří uživatelé totiž nalezli problém na jejich vlastních DSL routerech.

Více?

Tato sekce je založena na LWN článku TCP window scaling and broken routers a Kernel Trap článku: Window Scaling on the Internet.

A v poslední době se některým uživatelům Archu hodilo:

Několik dobrých vláken naleznete také na LKML.

Problém s Realteky bez spojení/WOL

Uživatelé se síťovými kartami založenými na čipech Realtek 8168 8169 8101 8111 mohou zaznamenat problém, při kterém se karta po startu tváří jako vypnutá a nesvítí vůbec kontrolka Link. Toto se obvykle stává na systémech s duálním bootem, kde jsou nainstalovány Windows. Zdá se, že je příčinou používání oficiálních ovladačů Realteku (novějších než květen 2007). Tyto novější ovladače vypínají Wake-On-Lan tím, že během vypínání Windows vypnou síťovou kartu, přičemž zůstává vypnutá až do příštího spuštění Windows. To, zda se tento problém týká i vás, zjistíte podle kontrolky Link, která zůstává zhasnutá do té doby, než spustíte Windows, a po jejich vypnutí opět setrváva zhaslá. Za normálního stavu by měla tato kontrolka svítit po celou dobu, kdy je počítač zapnutý, a to i během POST. Tento problém postihuje též další operační systémy bez novějších ovladačů (např. Live CD). Zde následuje několik řešení tohoto problému.

Metoda 1 - Vrácení / změna Win ovladače

Odinstalujte váš ovladač síťové karty pro Windows a vraťte se k ovladači, který poskytl Microsoft (je-li k dispozici), nebo nainstalujte původní oficiální ovladač Realtek vydaný před květnem 2007 (snad by měl být na CD, které bylo přiloženo k vašemu hardware).

Metoda 2 - Povolení WOL ve Win ovladači

Pravděpodobně nejlepší a nejrychlejší oprava je změnit nastavení v ovladači ve Windows. Touto cestou by měl být síťový systém fixován nejenom pro Arch ale i např. pro live CD nebo jiné OS. Ve Správci zařízení pod Windows najděte váš Realtek Network adapter a dvakrát na něj klikněte. V kartě Rozšířené povolte možnost "wake-on-lan po vypnutí".

 In Windows XP (příklad)
 Pravým tlačítkem myši na ikonu Tento počítač
 --> Hardware tab
   --> Device Manager
     --> Network Adapters
       --> "double click" Realtek ...
         --> Advanced tab
           --> Wake-On-Lan After Shutdown
             --> Enable.

Metoda 3 - Novější ovladače Realtek pro Linux

Všechny novější linuxové ovladače pro tyto karty Realtek je možno stáhnout z webové stránky Realtek (netestováno ale snad by také měly vyřešit problém).

DLink G604T/DLink G502T: problém DNS

Uživatelé routerů DLink G604T/DLink G502T, kteří používají DHCP a mají firmware v2.00+ (typicky uživatelé AUS firmware) mohou mít problémy, že některé programy nerozpoznají DNS. Jeden z těchto programů je naneštěstí pacman. V zásadě je problém v tom, že router v jistých situacích neposílá DNS přesně na DHCP, což způsobuje, že programy se pokoušejí se spojit se servery s IP adresou 1.0.0.0 a spojení se díky překročení časového limitu nepodaří.

Jak diagnostikovat tento problem?

Nejlepší metodou, jak zjistit tento problém je použití firefox/konqueror/links/seamonkey a povolení wget pro pacman. Jedná -li se o novou instalaci Arch Linuxu, pak byste měli chtít vzít v úvahu instalační linky z live CD.

Nejprve povolte wget pro pacman (protože wget nás informuje když pacman stahuje balíčky). Otevřete /etc/pacman.conf ve vašem oblíbeném editoru a odkomentujte následující řádek (odstraňte # ,jestli se tam nachází)

XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

Zatímco jste v pacman.conf, zkontrolujte implicitní zrcadlo, které pacman používá pro download balíčků.

Otevřte stránku se zrcadlem v internetovém prohlížeči a podívejte se, zda zrcadlo opravdu funguje. Je-li tomu tak, potom zadejte příkaz pacman -Syy (pokud je zrcadlo mimo provoz, vezměte jiné a nastavte ho v pacmanu jako implicitní), a podívejte se, zdali se neobjeví něco podobného, co je popsáno níže (všimněte si IP 1.0.0.0)

ftp://mirror.pacific.net.au/linux/archlinux/extra/os/i686/extra.db.tar.gz                                                            
           => `/var/lib/pacman/community.db.tar.gz.part'                            
Resolving mirror.pacific.net.au... 1.0.0.0

Potom máte s největší pravděpodobností tento problém. IP 1.0.0.0 znamená, že pacman nemůže rozpoznat DNS, takže jej musíte přidat do souboru resolv.conf.

Jak jej odstranit?

V podstatě, jde o to, abyste přidali manuálně DNS do souboru Template:Filename . DHCP však stále ještě automaticky maže a mění tento soubor po startu systému, je tedy nutno ještě editovat Template:Filename a změnit jej, aby se toto přes DHCP nedělo.

Po otvření souboru Template:Filename, byste měli vidět něco podobného následujícímu řádku:

DHCPCD_ARGS="-t 30 -h $HOSTNAME"

přidejte flag -R do argumentů, tedy:

DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"

POZN.: Používáte-li dhcpcd >= 4.0.2, flag -R byl potlačen, prosím přečtěte si informace na těchto stránkách: ([1]) sekce How to use a custom resolv.conf file

Uložte soubor a zavřete jej, potom znovu otevřete /etc/resolv.conf. Měli byste vidět jednu IP (nejpravděpodobněji 10.1.1.1), což je brána vašeho routeru, kterou potřebujete připojit, abyste dostali DNS vašeho ISP. Vložte IP do vašeho internetového prohlížeče a přihlaste se do routeru. V sekci DNS byste měli vidět IP preferovaného DNS serveru, zkopírujte ji a vložte do souboru NAD IP adresu brány.

T.zn., že resolv.conf by měl vypadat před změnou takto:

namespace 10.1.1.1

A pokud např. máte primární DNS Server 211.29.132.12 tak upravte resolv.conf následovně:

namespace 211.29.132.12
namespace 10.1.1.1

Teď restartujte síť následujícím příkazem: /etc/rc.d/network restart a proveďte pacman -Syy, jestliže se synchronizace se serverem zdařila.

Něco více?

Fórum whirlpool (australská komunita ISP), ve kterém se o tomto problému hovoří a poskytuje totéž řešení:

http://forums.whirlpool.net.au/forum-replies-archive.cfm/461625.html