Configurarea rețelei

De la ArchWikiRo
(Redirecționat de la Configurare retea)
Salt la: navigare, căutare
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:

Notă: Folosind opțiunea -c 3 vor fi efectuate trei apeluri. Vedeți man ping pentru mai multe informații.
$ 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
Notă: 8.8.8.8 este o adresă statică ușor de reținut. Este adresa serverului principal al companiei Google, așa că poate fi considerat de încredere, iar în general acesta nu este blocat de sisteme de filtrare a conținutului și proxy-uri.

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:

Note:
  • Creați fișierul dacă acesta nu există.
  • Lungimea este limitată la 63 de caractere alfanumerice. Merge folosită și cratima (-), însă un hostname nu poate începe sau să se termine cu aceasta.
  • Să nu adăugați comentarii sau alte rânduri.
  • Să nu folosiți un nume de domeniu.
/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().

Notă: Numele de domain complet calificat (FQDN) ar trebui să fie primul imediat după adresa de IP. Toate numele din partea dreaptă sunt doar alias-uri pentru hostname-ul/numele de domeniu din stânga de tot. Puteți verifica dacă acesta a fost configurat cum trebuie executând hostname --fqdn.
/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.

Notă: Este posibil să aveți o adresă IP statică folosind dhcpcd. Editați-vă pur și simplu fișierul /etc/conf.d/dhcpcd pentru a arăta cam așa (unde x.x.x.x este adresa dumneavoastră de IP dorită):
DHCPCD_ARGS="-q -s x.x.x.x"


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 ...)
Notă: După stabilirea acestor opțiuni,setați firewall-ul, altfel rețeaua nu va funcționa corect.

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
           ...
Notă: Probabil, nu veți găsi aici adresa inet.O veți putea obține de la router în pasul 3

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.

Unelte personale