Configurarea rețelei
| Rezumat |
|---|
| Un ghid simplu pentru configurarea și depanarea rețelei. |
| Prezentare generală |
| Arch Linux oferă două opțiuni de gestionare a rețelei: network și netcfg Daemon-ul network este o soluție simplă și directă pentru conexiunile prin cablu de pe sisteme de tip desktop și servere. Conexiunile wireless au nevoie de configurare suplimentară. Scriptul netcfg oferă suport pentru roaming pentru utilizatorii mobili și facilitează managementul profilelor de rețea; NetworkManager și Wicd sunt alternative populare. |
| Referințe wiki |
| Jumbo Frames |
| Firewalls |
| Samba |
| Wireless |
Cuprins |
Verificați conexiunea
De multe ori, procedura de instalare de bază a creat o configurație funcțională de rețea. Pentru a verifica dacă este așa, folosiți comanda următoare:
$ ping -c 3 www.google.com
PING www.l.google.com (74.125.224.146) 56(84) bytes of data. 64 bytes from 74.125.224.146: icmp_req=1 ttl=50 time=437 ms 64 bytes from 74.125.224.146: icmp_req=2 ttl=50 time=385 ms 64 bytes from 74.125.224.146: icmp_req=3 ttl=50 time=298 ms --- www.l.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 1999ms rtt min/avg/max/mdev = 298.107/373.642/437.202/57.415 ms
Dacă funcționează, atunci poate că ați vrea să vă personalizați doar setările pe baza opțiunilor de mai jos.
În cazul în care comanda de mai sus zice ceva de unknown host, înseamnă că computerul dumneavoastră nu a putut rezolva numele de domain. Ar putea fi din cauza furnizorului sau router-ului/gateway dumneavoastră. Puteți încerca să trimiteți un ping unei adrese IP statice pentru a dovedi că computerul dumneavoastră are acces la internet.
$ ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=52.9 ms 64 bytes from 8.8.8.8: icmp_req=2 ttl=53 time=72.5 ms 64 bytes from 8.8.8.8: icmp_req=3 ttl=53 time=70.6 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 52.975/65.375/72.543/8.803 ms
Dacă nu puteți trimite un ping acestei adrese, ați putea încerca să adăugați acest nameserver în fișierul /etc/resolv.conf.
Setați hostname-ul
Un hostname este un nume unic creat pentru a identifica un computer de pe o rețea. Pentru a vă seta hostname-ul, treceți-l pur și simplu în /etc/hostname:
/etc/hostname
myhostname
După ce ați setat un hostname, este important să includeți același nume și în /etc/hosts. Aceasta va ajuta procesele care se referă la computer în funcție de hostname-ul setat, atât pentru obținerea adresei acestuia de IP, cât și programele care se bazează pe variabila de sistem gethostname().
/etc/hosts
127.0.0.1 myhostname localhost ::1 myhostname localhost
Pentru a seta hostname-ul temporar (până la repornire), folosiți comanda hostname din pachetul inetutils:
# hostname myhostname
Driverul plăcii de rețea
Verificați starea driverului
Udev ar trebui să vă detecteze placa de rețea și interfața acesteia (NIC) și să încarce automat modulul necesar la pornire. Verificați secțiunea „Ethernet controller” (sau una asemănătoare) din afișajul comenzii lspci -v. Aceasta ar trebui să vă spună care modul pentru kernel conține driverul pentru dispozitivul dumneavoastră de rețea. De exemplu:
$ lspci -v
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0) ... Kernel driver in use: atl1 Kernel modules: atl1
Mai departe, verificați dacă driverul a fost încărcat folosind dmesg | grep numele_modulului. De exemplu:
$ dmesg | grep atl1 ... atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex
Săriți peste secțiunea următoare dacă driverul a fost încărcat cu succes. Altfel, va trebui să aflați care modul este necesar pentru modelul dumneavoastră.
Încărcați modulul plăcii de rețea
Căutați pe Google pentru modulul/driverul potrivit pentru chipset. După ce ați aflat care modul să folosiți, îl puteți încărca folosind:
# modprobe numele_modulului
Dacă udev nu detectează și nu încarcă automat modulul corespunzător în timpul pornirii, îl puteți adăuga într-un fișier *.conf din folderul /etc/modules-load.d/ ca să nu trebuiască să folosiți modprobe de fiecare dată când porniți calculatorul. De exemplu, dacă tg3 este modulul de rețea:
# tee /etc/modules-load.d/tg3.conf <<< "tg3"
Alte module întâlnite frecvent sunt 8139too pentru plăci cu un chipset Realtek, sau sis900 pentru plăci cu un chipset SiS.
Interfețele rețelei
Nume persistente pentru placa de rețea
Pentru plăci de bază care au NIC-uri integrate, este important să aflați care dintre ele este NIC-ul principal (ex: eth0) și care este considerat NIC-ul secundar (ex: eth1). Multe probleme de configurare sunt din cauză că utilizatorii configurează în mod incorect setările de rețea pentru eth0, când de fapt, aceștia au cablul Ethernet conectat în eth1.
Udev este responsabil pentru ce nume primește fiecare placă de rețea. Cu udev și drivere de rețea modulare, numerotarea interfețelor de rețea nu este automat păstrată după reboot, deoarece driverele sunt încărcate în paralel și, așadar, într-o ordine aleatorie. Configurarea conexiunii dumneavoastră de rețea este dificilă dacă nu știți dacă placa de rețea se va numi eth0 sau eth1. Puteți rezolva această problemă folosind ifrename. Vedeți Rename network interfaces. De asemenea, se pot crea reguli pentru udev care să desemneze numele interfeței în funcție de adresa MAC. Vedeți Udev#Network device.
Aflarea numelor interfețelor actuale
Numele NIC-urilor actuale se poate afla folosind utilitarul ip:
$ ip addr | sed '/^[0-9]/!d;s/: <.*$//'
1: lo 2: eth1 3: eth0 4: firewire0
Activați/dezactivați interfața
Puteți activa sau dezactiva interfețele de rețea folosind:
# ip link set eth0 up # ip link set eth0 down
Pentru a verifica rezultatul:
$ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc vboxnetflt state UP qlen 1000 [...]
Configurați adresa de IP
Aveți două opțiuni la dispoziție: o adresă alocată dinamic folosind DHCP sau o adresă „statică” neschimbabilă.
Adresă dinamică de IP
Executarea manuală a DHCP Client Daemon
Vă rugăm să rețineți că dhcpcd nu este dhcpd.
$ dhcpcd eth0
dhcpcd: version 5.1.1 starting dhcpcd: eth0: broadcasting for a lease ... dhcpcd: eth0: leased 192.168.1.70 for 86400 seconds
Iar acum, ip addr show dev eth0 ar trebui să vă afișeze adresa inet.
Pentru unele persoane, mai degrabă funcționează dhclient (din pachetul dhclient), în loc de dhcpcd.
Executarea DHCP la bootare
Dacă doriți să folosiți DHCP pentru conexiunea dumneavoastră Ethernet, puteți folosi dhcpcd@.service (oferit de către pachetul dhcpcd).
Pentru a activa DHCP pentru eth0, folosiți pur și simplu:
# systemctl start dhcpcd@eth0.service
Puteți activa serviciul ca să pornească automat la bootare folosind:
# systemctl enable dhcpcd@eth0.service
Dacă serviciul dhcpcd pornește înaintea modulului plăcii dumneavoastră de rețea (FS#30235), adăugați-vă placa de rețea în /etc/modules-load.d/*.conf. De exemplu, dacă placa dumneavoastră Realtek are nevoie de r8169 pentru a fi încărcată, creați:
/etc/modules-load.d/realtek.conf
r8169
Dacă folosiți DHCP și nu doriți ca serverele dumneavoastră DNS să fie alocate automat de fiecare dată când porniți rețeaua, asigurați-vă că ați adăugat setarea următoare în ultima secțiune din dhcpcd.conf:
/etc/dhcpcd.conf
nohook resolv.conf
Pentru a împiedica dhcpcd să adauge DNS-uri în /etc/resolve.conf, folosiți opțiunea nooption:
/etc/dhcpcd.conf
nooption domain_name_servers
Apoi adăugați-vă propriul DNS în /etc/resolv.conf.
Puteți folosi pachetul openresolv dacă mai multe procese diferite doresc să controleze /etc/resolv.conf (ex: dhcpcd și un client VPN). Nu este necesară nicio altă configurare suplimentară pentru dhcpcd pentru a putea folosi openresolv.
Pentru IP static
Există motive pentru care ați dori să aveți o adresă IP statică,în detrimentul unui IP dinamic.Cu o adresă IP statică se poate obține un anumit grad de predictibilitate și în al doilea rând gradul de securitate este ceva mai crescut.De asemenea,dacă sunteți într-o rețea Windows,fără router,fiți siguri că folosiți un IP static pe ambele PC-uri altfel vor apărea probleme în rețea. Pentru aceasta este nevoie de:
- Adresa IP-ului static
- Netmask
- Adresa broadcast
- Gateway
- Numele serverului si IP-ul său
- Numele domeniului
Dacă rulați într-o rețea privată este mai sigur să folosiți o adresă IP de tipul 192.168.*.'* cu netmask 255.255.255.0 si adresa broadcast 192.168.*.255. Cu excepţia cazului în care reţeaua are un router, adresa de gateway nu are importanță.Editați /etc/rc.conf,înlocuind cu propriile valori IP,netmask,broadcast și gateway:
eth0="eth0 192.168.100.2 netmask 255.255.255.0 broadcast 192.168.100.255" INTERFACES=(eth0) gateway="default gw 192.168.100.1" ROUTES=(gateway)
Pentru a adăuga rute suplimentare statice, utilizaţi sintaxa normală pentru comanda route add, cum ar fi:
static_route1="-net 192.168.200.0/24 gw 192.168.100.15"
Se adaugă static_route1 in câmpul routes.Reţineţi că un nume de route nu poate începe cu un număr,static_route1 e bine,iar 1static_route e incorect.Editați/etc/resolv.conf să arate ca acesta,înlocuind numele domeniului și numele serverului:
nameserver 61.23.173.5 nameserver 61.95.849.8 search example.com
Atribuire manuală
Puteți atribui un IP static în consolă:
# ifconfig <interface> <ip> netmask <netmask>
De exemplu: ifconfig eth0 192.168.1.2 netmask 255.255.255.0.Pentru mai multe informații vezi man ifconfig.
Adaugați gateway-ul personal:
# route add default gw <ip> # route add default gw 192.168.1.1
192.168.1.1 ar fi un exemplu.
Încărcarea configurației
Pentru a testa setările fără a reporni,rulați,ca root /etc/rc.d/network restart.Încercaţi să verificați gateway-ul,serverul de DNS, ISP-ul și alte site-uri de internet, în această ordine, pentru a detecta orice probleme de conexiune,ca în acest exemplu:
$ ping google.com
Setări suplimentare
Activare/Dezactivare interfață rețea
Puteți activa/dezactiva interfața de rețea cu comanda:
# ifconfig <interface> up/down
Firewall
Puteți instala și configura un firewall pentru mai multă protecție,vezi Firewall.
Setare Wireless
Vedeți Wireless pentru mai multe informații.
Laptopuri,'ifplugd'
Puteți instala un daemon care să configureze automat rețeaua atunci când cablul de la rețea este introdus și să o deconfigureze atunci când cablul este scos.Este folositor pentru laptopuri cu placa de rețea onboard.Instalarea sa este destul de simplă:
# pacman -S ifplugd
În mod implicit este configurat să funcționeze pe eth0.Pornirea se face cu:
# /etc/rc.d/ifplugd start
și se adaugă la DAEMONS /etc/rc.conf.
Conectarea a doua cabluri ethernet
Puteți instala pachetul ifenslave pentru a conecta două cabluri ethernet,cu o singură adresă IP.După instalare,trebuie să editați fiecare din următoarele fișiere: /etc/conf.d/bonding:
bond_bond0="eth0 eth1" BOND_INTERFACES=(bond0)
/etc/modprobe.d/modprobe.conf:
options bonding miimon=100
/etc/rc.conf:
MODULES=(... bonding ...) bond0="bond0 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255" INTERFACES=(bond0)
Pentru a activa noile porturi reporniți rețeaua cu:
#/etc/rc.d/network restart
Aliasuri IP
Pentru un IP și o placă de rețea:
# nano /etc/rc.conf
eth0="eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo eth0)
Două IP-uri și o placă de rețea:
# nano /etc/rc.conf
eth0="eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" eth0_0="eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo eth0 eth0_0)
Un IP si 2 plăci de rețea:
# pacman -S ifenslave # nano /etc/rc.conf
bond0="bond0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo bond0) MODULES=(... bonding ...)
Două IP-uri și 2 plăci de rețea:
# pacman -S ifenslave # nano /etc/rc.conf
bond0="bond0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255" bond01="bond0:1 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" INTERFACES=(lo bond0 bond01) MODULES=(... bonding ...)
Modificare MAC
Acest lucru este util atunci când ISP-ul cere accesul la unul din computerele dumneavoastră pentru a vă identifica,dar doriți să realizați conexiunea pe mai multe calculatoare făra a rula ifconfig de fiecare dată.Adăugați ifconfig la opțiunile de configurare a plăcii. Pentru placa ethernet:
eth0="eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 hw ether
01:23:45:67:89:ab"
Aceasta nu va funcționa dacă nu obțineți adresa IP pentru serverul DHCP.În schimb puteți crea un daemon care va stabili adresa MAC si va rula inaintea daemonului de retea. Creați fișierul /etc/rc.d/set-hw-addr cu următorul conținut:
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions<br>
case "$1" in
start)
stat_busy 'Setting MAC address'
if ifconfig eth0 hw ether '''01:23:45:67:89:ab''' # your new MAC address
then
stat_done
else
stat_fail
fi
;;
stop)
stat_busy 'Restoring original MAC address'
if ifconfig eth0 hw ether '''00:11:22:33:44:55''' # your old MAC address
then
stat_done
else
stat_fail
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
iar la daemons:
DAEMONS=(... set-hw-addr network ...)
Probleme posibile și rezolvarea lor
DHCP eșuează la boot
În primul rând verificați toți pașii pe care computerul îi execută din momentul boot-ării pentru a afla care din ei nu a reușit.Acești pași sunt:
1.detectarea dispozitivului de rețea și încărcarea driverului respectiv
2.pornirea interfeței de rețea
3.apelare dhcp
1.Pentru a verifica controlerul ethernet executați comanda lspci -v.Aceasta vă va arata ce modul de kernel conține driverul plăcii de rețea.De exemplu:
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0) ... Kernel driver in use: atl1 Kernel modules: atl1
Verificați apoi dacă driverul e încărcat cu comanda: dmesg | grep <module name> . Cum ar fi:
$ dmesg |grep atl1 ... atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex
2.verificați dmesg pentru interfața asociată dispozitivului de rețea prin intermediul(ca root) ifconfig <interface> up.Verificați rezultatul cu ifconfig -a.De exemplu:
$ ifconfig -a
eth0 Link encap:Ethernet ...
inet6 addr: f.../64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
3.Pentru a fi siguri, eliberați interfața de rețea cu dhcpcd --release,apoi incercați să o relansați cu dhcpcd.Dacă totul funcționează ,va arăta în felul următor:
$ dhcpcd --release eth0 dhcpcd: dhcpcd not running $ dhcpcd eth0 dhcpcd: version 5.1.1 starting dhcpcd: eth0: broadcasting for a lease ... dhcpcd: eth0: leased 192.168.1.70 for 86400 seconds
Acum cu ifconfig <interface> ar trebui să aveți și adresa de inet.
Daca dhcp nu funcționează la boot, introduceți următoarele in /etc/rc.local:
dhcpcd -k eth0 dhcpcd -nd eth0
Vezi [1] pentru mai multe informații.Pentru majoritatea pachetul dhclient din [extra] funcționează când dhcpcd eșuează.
Înlocuirea computerului
Cele mai multe ISP-uri au modemul configurat sa recunoască doar un singur PC,prin adresa MAC a interfeței de rețea.Odată ce un modem a fost "învățat" să recunoască acel PC,nu va răspunde la o schimbare de MAC.Astfel,dacă veți încerca să schimbați PC-ul cu altul (sau un router), PC-ul nou (sau router-ul) nu va lucra cu modemul , deoarece acesta are o adresă MAC diferită.Pentru aceasta modemul trebuie resetat.Imediat după resetarea modemului și intrarea sa în mod on-line,trebuie pornit si PC-ul pentru obținerea unei noi adrese DHCP.Dacă această metodă nu funcționează va trebui să clonați adresa MAC a primului PC.A se vedea #Modificare MAC.