Diferencia entre revisiones de «Configuració de la xarxa en Linux»
(No se muestran 80 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
{{Enlaceslinux}} | |||
<div style="float:left; margin: 0 20px 10px 0;">__TOC__</div> | |||
==Cóm funciona la xarxa en Linux== | |||
Linux és un sistema operatiu centrat en la xarxa. Moltes de les funcions que fan els seus programes necessiten d'una gestió de la xarxa inclús per a la comunicació entre processos del propi equip. Linux és un tipus de Unix i Unix va ser el primer sistema en suportar la pila de protocols TCP/IP. | |||
Si pensem en els diferents nivells de TCP/IP, el nivel físic és feina dels NICs, però tots els demés són cosa del programari. L'enllaç de dades (MACs) és gestionat pel kernel, la capa de xarxa (direccions IP) és gestionat pel nucli de Linux i també gestiona la capa de transport, proporcionant ports als programes per a que es comuniquen sense errors. Sols la capa d'aplicació no és responsabilitat del sistema operatiu. | |||
Com que hi ha moltes distribucions de GNU/Linux, la manera de configurar-se no sempre és exactament igual. Però podem distingir entre una '''configuració clàssica''', disponible en les distribucions orientades a servidors i la configuració amb '''Network Manager''' que simplifica el treball en les distribucions per a escriptori. Les dues són prou compatibles i poden estar funcionant al mateix temps, encara que poden col·lisionar. | |||
El primer que necessitem per a que funcione la xarxa en Linux és reconèixer les targetes de xarxa o '''NICs'''. Les targetes solen ser PCI o PCI-E, encara que poden ser USB. És a dir, són dispossitius plug-and.play que són detectats pel kernel i s'assigna un nom. Això és cosa d'una ferramenta dels sistema operatiu anomenat '''[https://wiki.archlinux.org/index.php/Udev_(Espa%C3%B1ol) udev]'''. Els noms poden ser '''eth0, eth1...''' o, més recentment poden tindre '''predictable names''' com ''enp2s0'' que indica la situació física de la targeta o ''eno1'' que indica el nom que el firmware o la BIOS ha donat al dispositiu. | |||
En qualsevol cas, per veure totes les targetes que el kernel ha detectat cal fer: | |||
$ ip link show | |||
Una vegada la targeta és detectada, aquesta té una direcció MAC de fàbrica, el comandament anterior també indica quina és. | |||
Per a que la targeta tinga connexió de nivel de xarxa necessita direccions IP. Segons la configuració tradicional, aquesta es fa en [[#.2Fetc.2Fnetwork.2Finterfaces | /etc/network/interfaces]] i amb Network Manager es fa normalment de forma gràfica. Encara que podem trobar la configuració en '''/etc/NetworkManager/system-connections'''. Per consultar o configurar es pot utilitzar el comandament '''[[#ifconfig|ifconfig]]''' o, preferiblement, '''[[#ip|ip]] addr''' | |||
Una vegada té IP ja es pot comunicar, per resoldre la MAC d'una IP necessita gestionar els protocols ARP i es pot consultar el seu resultat amb el comandament '''[[#arp|arp]]'''. | |||
El programes poden comunicar-se demanant obrir ports amb un port d'una IP remota o local. Això ho fan en cridades al sistema. Es pot consultar els ports oberts amb '''[[#netstat|netstat]]'''. | |||
==Comandes de xarxa== | ==Comandes de xarxa== | ||
Per a un administrador de sistemes, dominar els comandaments de xarxa de Linux és fonamental. Molts servidors i dispositius de xarxa tenen com a sistema operatiu una de les moltes distribucions de Linux. Anem a veure el més comuns i útils. | |||
===ifconfig=== | ===ifconfig=== | ||
{{nota|Vegeu també l'ordre [[#ip|ip]] de ''''Linux Advanced Routing & Traffic Control'''' lartc (http://lartc.org/). Ja que ifconfig es considera obsoleta.}} | |||
Ifconfig és la comanda que permet configurar interfícies de xarxa (NICs). Tot i que ens permet modificar els paràmetres de xarxa, el seu ús més comú és consultar els paràmetres de xarxa executant ifconfig sense paràmetres: | Ifconfig és la comanda que permet configurar interfícies de xarxa (NICs). Tot i que ens permet modificar els paràmetres de xarxa, el seu ús més comú és consultar els paràmetres de xarxa executant ifconfig sense paràmetres: | ||
Línea 40: | Línea 66: | ||
Com podeu observar es mostren diferents blocs que segueixen la nomenclatura de dispositius de xarxa (eth0,lo,vmnet...). Cada bloc correspon a un dispositiu de xarxa ja sigui físic o virtual. | Com podeu observar es mostren diferents blocs que segueixen la nomenclatura de dispositius de xarxa (eth0,lo,vmnet...). Cada bloc correspon a un dispositiu de xarxa ja sigui físic o virtual. | ||
Cóm mostrar només la informació d'una NIC: | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ ifconfig eth0 | $ ifconfig eth0 | ||
eth0 Link encap:Ethernet HWaddr 00:30:1B:B7:CD:B6 | eth0 Link encap:Ethernet HWaddr 00:30:1B:B7:CD:B6 | ||
Línea 52: | Línea 79: | ||
RX bytes:11958414 (11.4 MiB) TX bytes:3243289 (3.0 MiB) | RX bytes:11958414 (11.4 MiB) TX bytes:3243289 (3.0 MiB) | ||
Interrupt:209 | Interrupt:209 | ||
</div> | |||
Ifconfig ens proporciona la següent informació: | Ifconfig ens proporciona la següent informació: | ||
Línea 69: | Línea 96: | ||
'''Exemples:''' | '''Exemples:''' | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
*Apagar una interfície de xarxa: | *Apagar una interfície de xarxa: | ||
$ ifconfig eth0 down | $ ifconfig eth0 down | ||
# És equivalent a ifdown eth0 | |||
*Encendre una interfície de xarxa: | *Encendre una interfície de xarxa: | ||
$ ifconfig eth0 up | $ ifconfig eth0 up | ||
# És equivalent a ifup eth0 | |||
''' | '''Configurar una targeta de xarxa amb ip estàtica''' | ||
$ sudo ifconfig eth0 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255 | $ sudo ifconfig eth0 192.168.0.15 netmask 255.255.255.0 broadcast 192.168.0.255 | ||
{{nota|Amb ifconfig no es pot configurar la interfície de xarxa amb dhcp, ni es pot establir el gateway. El gateway s'estableix amb la comanda [[#route|route]] o mitjançant un paràmetre al fitxer '''/etc/network/interfaces'''.}} | |||
''' | ''' Mode promiscu ''' | ||
El [http://ca.wikipedia.org/wiki/Mode_promiscu | mode promiscu] és aquell en el qual un ordinado connectat a una xarxa compartida, tant la basada en cable de coure com la basada en tecnologia sense fils, captura tot el trànsit que circula. Aquest mode està molt relacionat amb els [[Sniffer|sniffers]] que es basen en aquesta mode per realitzar la seva tasca. | |||
En el mode promiscu, una màquina intermèdia captura tots els paquets, que normalment deixalleria, incloent-hi els paquets destinats a ell mateix i a la resta de les màquines. Resulta a destacar que les topologies i maquinari que es facin servir per comunicar les xarxes, influeix en el seu funcionament, ja que les xarxes en bus, xarxes en anell, així com totes les xarxes que obliguin a que un paquet circuli per un mitjà compartit, al qual tots tenen accés, les modes promiscus capturaran encara més paquets que si estan en una xarxa amb topologia en arbre. | |||
*'''Establir el mode promiscu:''' | |||
*Establir el mode promiscu: | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ ifconfig eth0 promisc | $ ifconfig eth0 promisc | ||
$ ifconfig eth0 | $ ifconfig eth0 | ||
Línea 107: | Línea 127: | ||
RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb) | RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb) | ||
Interrupt:9 Base address:0x5000 | Interrupt:9 Base address:0x5000 | ||
</div> | |||
*'''Treure el mode promiscu''' | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ ifconfig eth0 -promisc | $ ifconfig eth0 -promisc | ||
$ ifconfig eth0 | $ ifconfig eth0 | ||
Línea 121: | Línea 142: | ||
RX bytes:13262810 (12.6 MiB) TX bytes:3501026 (3.3 MiB) | RX bytes:13262810 (12.6 MiB) TX bytes:3501026 (3.3 MiB) | ||
Interrupt:209 | Interrupt:209 | ||
</div> | |||
''' Activar/desactivar ARP ''' | |||
Consulteu també [[ARP]]. | Consulteu també [[ARP]]. | ||
Línea 128: | Línea 150: | ||
*Treure arp | *Treure arp | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ ifconfig eth0 -arp | $ ifconfig eth0 -arp | ||
$ ifconfig eth0 | $ ifconfig eth0 | ||
Línea 138: | Línea 161: | ||
RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb) | RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb) | ||
Interrupt:9 Base address:0x5000 | Interrupt:9 Base address:0x5000 | ||
</div> | |||
*Afegir arp | *Afegir arp | ||
$ ifconfig eth0 arp | $ ifconfig eth0 arp | ||
'''IP aliasing''' | |||
Permet configurar una targeta de xarxa amb múltiples IPs. Per exemple: | Permet configurar una targeta de xarxa amb múltiples IPs. Per exemple: | ||
Línea 153: | Línea 176: | ||
ifconfig eth0:4 192.168.0.6 broadcast 192.168.0.255 netmask 255.255.255.0 | ifconfig eth0:4 192.168.0.6 broadcast 192.168.0.255 netmask 255.255.255.0 | ||
Pot ser molt útil per afegir-nos a una xarxa si necessitem configurar un switch, router o qualsevol altre dispositiu que de fàbrica esta configurat amb una IP d'una xarxa diferent a la nostra. | Pot ser molt útil per afegir-nos a una xarxa si necessitem configurar un switch, router o qualsevol altre dispositiu que de fàbrica esta configurat amb una IP d'una xarxa diferent a la nostra. [http://es.gentoo-wiki.com/HOWTO_IP_Aliasing Més informació] | ||
</div> | |||
{{nota|NOTA IMPORTANT: TOTS els canvis realitzats amb ifconfig no són canvis permanents. Al reiniciar l'ordinador es restableixen els paràmetres establerts als fitxers de configuració (P.ex. en sistemes Debian el fitxer /etc/network/interfaces). }} | |||
===iwconfig=== | ===iwconfig=== | ||
Línea 180: | Línea 186: | ||
Aquesta comanda ens permet obtindre informació de les interfícies de xarxa que siguin wireless: | Aquesta comanda ens permet obtindre informació de les interfícies de xarxa que siguin wireless: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ iwconfig | $ iwconfig | ||
lo no wireless extensions. | lo no wireless extensions. | ||
Línea 197: | Línea 204: | ||
sit0 no wireless extensions. | sit0 no wireless extensions. | ||
</div> | |||
És un clon de la comanda ifconfig però adequada als paràmetres de les xarxes wireless. | És un clon de la comanda ifconfig però adequada als paràmetres de les xarxes wireless. | ||
===ifup=== | ===ifup=== | ||
Línea 221: | Línea 223: | ||
Pot donar aquest error inclús quan la targeta existeix però no esta al fitxer interfícies. | Pot donar aquest error inclús quan la targeta existeix però no esta al fitxer interfícies. | ||
Cal tenir en compte | Cal tenir en compte el funcionament d'udev que assigna noms d'interfícies de xarxa segons la MAC en casos especials com: | ||
*'''Discs durs extraibles''': El mateix sistema operatiu funcionant en diferents màquines idèntiques però que cada targeta de xarxa té la seva MAC | *'''Discs durs extraibles''': El mateix sistema operatiu funcionant en diferents màquines idèntiques però que cada targeta de xarxa té la seva MAC | ||
Línea 240: | Línea 242: | ||
$ sudo ifup eth0 | $ sudo ifup eth0 | ||
ifup: interface eth0 already configured | ifup: interface eth0 already configured | ||
Amb el paràmetre -a podem arrancar totes les interfícies del sistema al mateix temps: | Amb el paràmetre -a podem arrancar totes les interfícies del sistema al mateix temps: | ||
Línea 246: | Línea 247: | ||
sudo ifup -a | sudo ifup -a | ||
''' Script Hooks. Fitxers .d de configuració de la xarxa ''' | |||
Hi ha 4 tipus de fitxers Hook Script: | Hi ha 4 tipus de fitxers Hook Script: | ||
Línea 258: | Línea 259: | ||
Hi ha una sèrie de variables que podeu utilitzar als scripts: | Hi ha una sèrie de variables que podeu utilitzar als scripts: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
<pre class="brush:bash"># Don't bother to restart sshd when lo is configured. | <pre class="brush:bash"># Don't bother to restart sshd when lo is configured. | ||
if [ "$IFACE" = lo ]; then | if [ "$IFACE" = lo ]; then | ||
Línea 274: | Línea 275: | ||
exit 0 | exit 0 | ||
fi</pre> | fi</pre> | ||
</div> | |||
===ifdown=== | ===ifdown=== | ||
Línea 289: | Línea 291: | ||
$ sudo ifdown -a | $ sudo ifdown -a | ||
{{nota|Cal parar molta atenció a no aturar les interfícies de xarxa en servidors remots al quals ens connectem via SSH. Aquesta comanda ens impediria l'accés a la màquina i per tant obligaria a desplaçar-nos fins al DATACENTER per solucionar l'error.}} | |||
===ping=== | ===ping=== | ||
És una de les ferramentes més utilitzades, ja que permet saber si hi ha connexió bidireccional entre dos nodes d'una xarxa a partir de la IP. | |||
$ ping 192.168.5.3 | |||
===arp=== | ===arp=== | ||
Sense opcions mostra una llista amb les MACs resoltes per ARP que manté en cache. | |||
===arping=== | ===arping=== | ||
[http://en.wikipedia.org/wiki/Arping Arping] és una comanda molt similar a ping però que utilitza el [http://en.wikipedia.org/wiki/Address_Resolution_Protocol protocol ARP] en comptes del [http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]. Com a conseqüència aquesta comanda només es pot utilitzar entre màquines de la mateixa xarxa local. Igual que ping envia un paquet ARP REQUEST. Exemple: | [http://en.wikipedia.org/wiki/Arping Arping] és una comanda molt similar a ping però que utilitza el [http://en.wikipedia.org/wiki/Address_Resolution_Protocol protocol ARP] en comptes del [http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol ICMP]. Com a conseqüència aquesta comanda només es pot utilitzar entre màquines de la mateixa xarxa local. Igual que ping envia un paquet ARP REQUEST. Exemple: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ arping -c 4 192.168.0.10 | $ arping -c 4 192.168.0.10 | ||
WARNING: interface is ignored: Operation not permitted | WARNING: interface is ignored: Operation not permitted | ||
Línea 313: | Línea 317: | ||
Received 4 response(s) | Received 4 response(s) | ||
''' Provocar arp-replys ''' | |||
Primer cal assignar-se una IP (ho podeu fer per [[IP Aliasing]]): | Primer cal assignar-se una IP (ho podeu fer per [[IP Aliasing]]): | ||
Línea 348: | Línea 342: | ||
06:02:52.620954 arp reply 192.168.99.35 is-at 0:80:c8:f8:4a:51 (0:80:c8:f8:4a:51) | 06:02:52.620954 arp reply 192.168.99.35 is-at 0:80:c8:f8:4a:51 (0:80:c8:f8:4a:51) | ||
''' Provocar arp-requests ''' | |||
$ sudo arping -q -c 3 -U -I eth0 192.168.99.35 | $ sudo arping -q -c 3 -U -I eth0 192.168.99.35 | ||
Línea 357: | Línea 351: | ||
$ sudp tcpdump -c 3 -nni eth0 arp | $ sudp tcpdump -c 3 -nni eth0 arp | ||
''' Detectar duplicats ''' | |||
$ sudo arping -D -I eth0 192.168.99.147; echo $? | $ sudo arping -D -I eth0 192.168.99.147; echo $? | ||
</div> | |||
===dhclient=== | ===dhclient=== | ||
Si la targeta està configurada per a funcionar en DHCP, aquest comandament força el descobriment [[DHCP]] com a client. | |||
$ sudo dhclient -v eth0 | |||
Aquest exemple fa que la targeta eth0 intente configurar-se per DHCP i mostre el procés per pantalla. | |||
===ip=== | ===ip=== | ||
ip és l'eina de nova generació pensada per substituir eines ("obsoletes") com [[ifconfig]] o [[route]]. Es proporcionada per | ip és l'eina de nova generació pensada per substituir eines ("obsoletes") com [[#ifconfig|ifconfig]] o [[#route|route]]. Es proporcionada per '''LARTC''' ([[Linux Advanced Routing and Traffic Control]]) | ||
Ordres que substitueix i millora: | Ordres que substitueix i millora: | ||
Línea 444: | Línea 424: | ||
Dona una ip a una targeta de xarxa. | Dona una ip a una targeta de xarxa. | ||
[http://acacha.org/mediawiki/index.php/Ordre_ip | [http://acacha.org/mediawiki/index.php/Ordre_ip font amb més informació] | ||
[http://lintut.com/how-to-use-linux-ip-command/#disqus_thread] | |||
===traceroute=== | ===traceroute=== | ||
[http://en.wikipedia.org/wiki/Traceroute Traceroute] és una comanda que s'utilitza per determinar quina ruta segueixen els paquets IP (per quins gateways o routers passen) per tal d'arribar a una màquina concreta. Exemple: | [http://en.wikipedia.org/wiki/Traceroute Traceroute] és una comanda que s'utilitza per determinar quina ruta segueixen els paquets IP (per quins gateways o routers passen) per tal d'arribar a una màquina concreta. Exemple: | ||
Línea 492: | Línea 448: | ||
Amb l'opció -n no s'intenta resoldre les IPs a noms de màquina. Els 3 últims camps són els temps del viatge d'anada i tornada de les tres proves que realitza traceroute per cada TTL. | Amb l'opció -n no s'intenta resoldre les IPs a noms de màquina. Els 3 últims camps són els temps del viatge d'anada i tornada de les tres proves que realitza traceroute per cada TTL. | ||
{{ | {{nota|Si no hi ha resposta en 5 segons, aleshores es mostra un '''*'''}} | ||
Els asteriscs són màquines de la ruta que per protecció o errors de protocol no es poden mostrar. | Els asteriscs són màquines de la ruta que per protecció o errors de protocol no es poden mostrar. | ||
'''NOTA:''' sovint els asterisc es poden solucionar executant traceroute com a superusuari | '''NOTA:''' sovint els asterisc es poden solucionar executant traceroute com a superusuari. | ||
Hi ha algunes utilitats relacionades amb traceroute que poden ser interessants: | |||
*http://www.mapulator.com/: Utilitza traceroute junt amb Google Maps per tal de dibuixar una ruta física entre dues màquines en un mapa de Google. | |||
*http://www.mapulator.com/: Utilitza traceroute junt amb Google Maps per tal de dibuixar una ruta física entre dues màquines en un mapa de Google. | |||
*http://paris-traceroute.net/download.htm | *http://paris-traceroute.net/download.htm | ||
Línea 537: | Línea 469: | ||
És a dir és fa un traceroute amb [[IPv6]]. Es necessita connectivitat IPv6. | És a dir és fa un traceroute amb [[IPv6]]. Es necessita connectivitat IPv6. | ||
Vegeu també [[tracert]]. | Vegeu també [[#tracert|tracert]]. | ||
===tracepath=== | ===tracepath=== | ||
Línea 609: | Línea 491: | ||
===dig=== | ===dig=== | ||
Informa de la petició DNS per trobar un nom en Internet. És molt útil per saber si estem utilitzant un DNS correcte o per probar un DNS al configurar-lo. | |||
===nslookup=== | ===nslookup=== | ||
Paregut a Dig, encara que no tant potent. | |||
===host=== | ===host=== | ||
Un altra alternativa a dig. | |||
===dnstracer=== | ===dnstracer=== | ||
Línea 640: | Línea 512: | ||
===ipcalc=== | ===ipcalc=== | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
[http://jodies.de/ipcalc Ipcalc] és una eina que donada una ip i la seva màscara calcula les IPs de boradcast, xarxa, Cisco wildcard Mask, el rang de màquines, el tipus de xarxa i altres informacions interessants. | [http://jodies.de/ipcalc Ipcalc] és una eina que donada una ip i la seva màscara calcula les IPs de boradcast, xarxa, Cisco wildcard Mask, el rang de màquines, el tipus de xarxa i altres informacions interessants. | ||
Línea 657: | Línea 529: | ||
Si no s'especifica cap màscara, s'utilitza la màscara per defecte (255.255.255.0 o 24 en notació CIDR). | Si no s'especifica cap màscara, s'utilitza la màscara per defecte (255.255.255.0 o 24 en notació CIDR). | ||
La sortida per pantalla és amb colors. Els colors ens permeten per exemple identificar els primers bits que corresponent a cada tipus de xarxa (A,B,C) | La sortida per pantalla és amb colors. Els colors ens permeten per exemple identificar els primers bits que corresponent a cada tipus de xarxa (A,B,C). | ||
$ ipcalc 192.168.0.1/24 | |||
$ ipcalc 192.168.0.1/24 | |||
És equivalent a ipcalc 192.168.0.1 | És equivalent a ipcalc 192.168.0.1 | ||
Línea 759: | Línea 628: | ||
:*'''Path:''' /usr/bin/ipcalc (podeu trobar el camí de la comanda executant which ipcalc) | :*'''Path:''' /usr/bin/ipcalc (podeu trobar el camí de la comanda executant which ipcalc) | ||
:*'''Manual''': [http://www.die.net/doc/linux/man/man1/ipcalc.1.html man ipcalc] | :*'''Manual''': [http://www.die.net/doc/linux/man/man1/ipcalc.1.html man ipcalc] | ||
</div> | |||
=== sipcalc === | === sipcalc === | ||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
[[Sipcalc]] és com [[ipcalc]] un calculador de (sub)xarxes IP que té dos parts: | [[Sipcalc]] és com [[ipcalc]] un calculador de (sub)xarxes IP que té dos parts: | ||
Línea 858: | Línea 728: | ||
'''Recursos''': | '''Recursos''': | ||
:*http://www.cyberciti.biz/tips/perform-simple-manipulation-of-ip-addresse.html | :*http://www.cyberciti.biz/tips/perform-simple-manipulation-of-ip-addresse.html | ||
</div> | |||
=== | ===[[tcpdump]]=== | ||
===whois=== | ===whois=== | ||
Línea 877: | Línea 742: | ||
Podeu consultar aquestes comandes a la pàgina [[Xarxes_Linux_Wireless#Comandes | Xarxes Linux Wireless]] d'aquesta wiki. | Podeu consultar aquestes comandes a la pàgina [[Xarxes_Linux_Wireless#Comandes | Xarxes Linux Wireless]] d'aquesta wiki. | ||
=== | ===[[IPtables]]=== | ||
===[[ncat]] ,nc o netcat=== | |||
===ethtool=== | ===ethtool=== | ||
Consulteu l'article [[ethtool]]. | Consulteu l'article [[ethtool]]. | ||
==Fitxers de configuració== | ==Fitxers de configuració== | ||
===/etc/ | === Configuració de la xarxa en /etc/netplan/ === | ||
A partir de Ubuntu 18.04, aquesta és la configuració per defecte. Netplan és més modern i milloara la configuració de les targetes amb múltiples direccions IP, entre altres coses. Netplan es basa en fitxers de configuració en format '''.yalm'''. | |||
<pre class="code"> | |||
network: | |||
version: 2 | |||
renderer: networkd | |||
ethernets: | |||
ens33: | |||
dhcp4: yes | |||
dhcp6: yes | |||
</pre> | |||
L'anterior exemple configura la targeta ens33 per a obtindre per DHCP tant la ipv4 com la ipv6. | |||
Per aplicar els canvis fets als fitxers poden executar: | |||
sudo netplan apply | |||
Si volem IPs estàtiques, podem escriure: | |||
<pre class="code"> | |||
network: | |||
version: 2 | |||
renderer: networkd | |||
ethernets: | |||
ens33: | |||
dhcp4: no | |||
dhcp6: no | |||
addresses: [192.168.1.2/24] | |||
gateway4: 192.168.1.1 | |||
nameservers: | |||
addresses: [8.8.8.8,8.8.4.4] | |||
</pre> | |||
O: | |||
<pre class="code"> | |||
network: | |||
version: 2 | |||
renderer: networkd | |||
ethernets: | |||
ens33: | |||
dhcp4: no | |||
dhcp6: no | |||
addresses: | |||
- 192.168.1.2/24 | |||
gateway4: 192.168.1.1 | |||
nameservers: | |||
addresses: | |||
- 8.8.8.8 | |||
- 8.8.4.4 | |||
</pre> | |||
Si necessitem escriure més d'una direcció s'han de separar per comes o amb guió i salt de línia. | |||
= | Per a especificar distintes rutes estàtiques: | ||
<pre class="code"> | |||
network: | |||
version: 2 | |||
renderer: networkd | |||
ethernets: | |||
enp3s0: | |||
addresses: | |||
- 9.0.0.9/24 | |||
- 10.0.0.10/24 | |||
- 11.0.0.11/24 | |||
#gateway4: # unset, since we configure routes below | |||
routes: | |||
- to: 0.0.0.0/0 | |||
via: 9.0.0.1 | |||
metric: 100 | |||
- to: 0.0.0.0/0 | |||
via: 10.0.0.1 | |||
metric: 100 | |||
- to: 0.0.0.0/0 | |||
via: 11.0.0.1 | |||
metric: 100 | |||
</pre> | |||
Tal vegada volem que tinga una IP extra a banda de la que li donen per DHCP: | |||
<pre class="code"> | |||
network: | |||
version: 2 | |||
ethernets: | |||
eth0: | |||
dhcp4: true | |||
addresses: [192.168.1.2/24] | |||
</pre> | |||
I pot ser que necessitem que arreplegue la direcció IP de dues targetes de xarxa, però que un porta d'enllaç tinga més prioritat. | |||
<pre class="code"> | |||
network: | |||
version: 2 | |||
ethernets: | |||
enred: | |||
dhcp4: yes | |||
dhcp4-overrides: | |||
route-metric: 100 # Més prioritat | |||
engreen: | |||
dhcp4: yes | |||
dhcp4-overrides: | |||
route-metric: 200 # Menys prioritat | |||
</pre> | |||
[https://netplan.io/examples Exemples] | |||
=== Configuració de la xarxa. Carpeta /etc/network === | === Configuració de la xarxa. Carpeta /etc/network === | ||
==== /etc/network/interfaces ==== | |||
{{nota|Aquesta part es considera obsoleta en Ubuntu 18.04, encara que funciona per a moltes necessitats retro-compatibles. Actualment cal utilitzar Netplan.}} | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
Fitxer de configuració de les interfícies de xarxa (NICs) en sistemes Debian. Aquest és el fitxer principal de configuració. Guarda la configuració de les interfícies de xarxa. Aquest fitxer és llegit per les comandes ifup i ifdown quan s'activen les interfícies de xarxa (ja sigui explícitament o en l'arrencada del sistema) | Fitxer de configuració de les interfícies de xarxa (NICs) en sistemes Debian. Aquest és el fitxer principal de configuració. Guarda la configuració de les interfícies de xarxa. Aquest fitxer és llegit per les comandes ifup i ifdown quan s'activen les interfícies de xarxa (ja sigui explícitament o en l'arrencada del sistema) | ||
Línea 954: | Línea 874: | ||
iface eth0 inet dhcp | iface eth0 inet dhcp | ||
auto wlan0 | |||
auto wlan0 | |||
iface wlan0 inet dhcp | iface wlan0 inet dhcp | ||
Línea 973: | Línea 887: | ||
broadcast 192.168.1.255 | broadcast 192.168.1.255 | ||
gateway 192.168.1.1 | gateway 192.168.1.1 | ||
dns-nameservers 192.168.1.1 | |||
Es pot utilitzar per automatitzar tasques abans i després d'activar les interfícies. Per això cal utilitzar les opcions pre-up o post-up: | Es pot utilitzar per automatitzar tasques abans i després d'activar les interfícies. Per això cal utilitzar les opcions pre-up o post-up: | ||
Línea 984: | Línea 899: | ||
En aquest cas quan demanem una ip per dhcp sempre ens donara la següent MAC. | En aquest cas quan demanem una ip per dhcp sempre ens donara la següent MAC. | ||
Podeu trobar exemples de configuració al fitxer comprimit '''/usr/share/doc/ifupdown/examples/network-interfaces.gz''': | Podeu trobar exemples de configuració al fitxer comprimit '''/usr/share/doc/ifupdown/examples/network-interfaces.gz''': | ||
Línea 1116: | Línea 1029: | ||
run-parts: executing /etc/network/if-up.d/uml-utilities | run-parts: executing /etc/network/if-up.d/uml-utilities | ||
run-parts: executing /etc/network/if-up.d/wpasupplicant | run-parts: executing /etc/network/if-up.d/wpasupplicant | ||
</div> | |||
===/etc/init.d/networking=== | ===/etc/init.d/networking=== | ||
Línea 1139: | Línea 1053: | ||
En aquest cas, les opcions restart i force-reload són equivalents. | En aquest cas, les opcions restart i force-reload són equivalents. | ||
{{nota|restart està obsolet, cal fer stop i start en els Debian moderns}} | |||
===/etc/sysctl.conf=== | |||
Controla paràmetres del kernel: | |||
$ cat /etc/sysctl.conf | |||
El podem utilitzar per activar ip_forwarding: | |||
... | |||
# Uncomment the next line to enable packet forwarding for IPv4 | |||
#net.ipv4.ip_forward=1 | |||
... | |||
. | |||
Consulteu l'article [[Capa_de_xarxa#Routers]]. | |||
===/etc/protocols=== | |||
Aquest fitxer guarda els noms de protocols de TRANPORT utilitzats (o que suporta) aquest sistema. | |||
= | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | ||
$ cat /etc/protocols | |||
# Internet (IP) protocols | |||
# | |||
# Updated from http://www.iana.org/assignments/protocol-numbers and other | |||
# sources. | |||
# New protocols will be added on request if they have been officially | |||
# assigned by IANA and are not historical. | |||
# If you need a huge list of used numbers please install the nmap package. | |||
ip 0 IP # internet protocol, pseudo protocol number | |||
# | #hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] | ||
# | icmp 1 ICMP # internet control message protocol | ||
igmp 2 IGMP # Internet Group Management | |||
ggp 3 GGP # gateway-gateway protocol | |||
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP) | |||
st 5 ST # ST datagram mode | |||
tcp 6 TCP # transmission control protocol | |||
egp 8 EGP # exterior gateway protocol | |||
igp 9 IGP # any private interior gateway (Cisco) | |||
pup 12 PUP # PARC universal packet protocol | |||
udp 17 UDP # user datagram protocol | |||
hmp 20 HMP # host monitoring protocol | |||
xns-idp 22 XNS-IDP # Xerox NS IDP | |||
rdp 27 RDP # "reliable datagram" protocol | |||
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] | |||
xtp 36 XTP # Xpress Transfer Protocol | |||
ddp 37 DDP # Datagram Delivery Protocol | |||
idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport | |||
ipv6 41 IPv6 # Internet Protocol, version 6 | |||
ipv6-route 43 IPv6-Route # Routing Header for IPv6 | |||
ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 | |||
idrp 45 IDRP # Inter-Domain Routing Protocol | |||
rsvp 46 RSVP # Reservation Protocol | |||
gre 47 GRE # General Routing Encapsulation | |||
esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] | |||
ah 51 IPSEC-AH # Authentication Header [RFC2402] | |||
skip 57 SKIP # SKIP | |||
ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 | |||
ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 | |||
ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 | |||
rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) | |||
vmtp 81 VMTP # Versatile Message Transport | |||
eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) | |||
ospf 89 OSPFIGP # Open Shortest Path First IGP | |||
ax.25 93 AX.25 # AX.25 frames | |||
ipip 94 IPIP # IP-within-IP Encapsulation Protocol | |||
etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] | |||
encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] | |||
# 99 # any private encryption scheme | |||
pim 103 PIM # Protocol Independent Multicast | |||
ipcomp 108 IPCOMP # IP Payload Compression Protocol | |||
vrrp 112 VRRP # Virtual Router Redundancy Protocol | |||
l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] | |||
isis 124 ISIS # IS-IS over IPv4 | |||
sctp 132 SCTP # Stream Control Transmission Protocol | |||
fc 133 FC # Fibre Channel | |||
</div> | |||
# | |||
===/etc/services=== | |||
# | Conté una llista dels noms de serveis reconeguts pel sistema (protocols a nivell aplicació). | ||
Un extracte del fitxer: | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
tcpmux 1/tcp # TCP port service multiplexer | |||
echo 7/tcp | |||
echo 7/udp | |||
discard 9/tcp sink null | |||
discard 9/udp sink null | |||
systat 11/tcp users | |||
daytime 13/tcp | |||
daytime 13/udp | |||
netstat 15/tcp | |||
qotd 17/tcp quote | |||
tcp | msp 18/tcp # message send protocol | ||
msp 18/udp | |||
chargen 19/tcp ttytst source | |||
chargen 19/udp ttytst source | |||
udp | ftp-data 20/tcp | ||
ftp 21/tcp | |||
fsp 21/udp fspd | |||
ssh 22/tcp # SSH Remote Login Protocol | |||
ssh 22/udp | |||
telnet 23/tcp | |||
smtp 25/tcp mail | |||
time 37/tcp timserver | |||
time 37/udp timserver | |||
rlp 39/udp resource # resource location | |||
nameserver 42/tcp name # IEN 116 | |||
whois 43/tcp nicname | |||
tacacs 49/tcp # Login Host Protocol (TACACS) | |||
tacacs 49/udp | |||
re-mail-ck 50/tcp # Remote Mail Checking Protocol | |||
re-mail-ck 50/udp | |||
domain 53/tcp nameserver # name-domain server | |||
domain 53/udp nameserver | |||
mtp 57/tcp # deprecated | |||
tacacs-ds 65/tcp # TACACS-Database Service | |||
tacacs-ds 65/udp | |||
bootps 67/tcp # BOOTP server | |||
bootps 67/udp | |||
bootpc 68/tcp # BOOTP client | |||
bootpc 68/udp | |||
tftp 69/udp | |||
gopher 70/tcp # Internet Gopher | |||
gopher 70/udp | |||
rje 77/tcp netrjs | |||
finger 79/tcp | |||
www 80/tcp http # WorldWideWeb HTTP | |||
www 80/udp # HyperText Transfer Protocol | |||
</div> | |||
Una de les utilitats d'aquest fitxer és consultar el port per defecte d'un protocol. Per exemple, si volem saber quin port utilitza el protocol smtp podem escriure: | |||
$ cat /etc/services | grep smtp | |||
smtp 25/tcp mail | |||
ssmtp 465/tcp smtps # SMTP over SSL | |||
També es pot utilitzar al revés per conèixer el protocol més usual per a un port donat: | |||
$ cat /etc/services | grep 80 | |||
www 80/tcp http # WorldWideWeb HTTP | |||
www 80/udp # HyperText Transfer Protocol | |||
............... | |||
Cal tenir en compte que totes les aplicacions de xarxa (com nmap o netstat) utilitzant la informació d'aquest fitxer per traduir ports en serveis. Per exemple: | |||
$ netstat -a | |||
Active Internet connections (servers and established) | |||
Proto Recv-Q Send-Q Local Address Foreign Address State | |||
tcp 0 0 localhost:2208 *:* LISTEN | |||
tcp 0 0 *:ldap *:* LISTEN | |||
tcp 0 0 localhost:47301 *:* LISTEN | |||
tcp 0 0 localhost:mysql *:* LISTEN | |||
tcp 0 0 *:11211 *:* LISTEN | |||
tcp 0 0 localhost:ipp *:* LISTEN | |||
tcp 0 0 localhost:postgresql *:* LISTEN | |||
tcp 0 0 *:smtp *:* LISTEN | |||
Els serveis als quals apareix el número de port són serveis que no apareixen al fitxer '''/etc/services'''. Els protocols que apareixen amb el seu nom (ipp,ldap,mysql,smtp...) són serveis que apareixen al fitxer '''/etc/protocols'''. | |||
===/etc/host.conf=== | |||
Conté la manera per defecte de resoldre els noms i si es permeten més d'una IP en el fitxer hosts | |||
===/etc/hosts=== | |||
Conté una llista de noms i IPs coneguts per la màquina, de manera que no fa falta utilitzar un servei [[DNS]] | |||
===/etc/hosts.allow i /etc/hosts.deny=== | |||
Amb aquests fitxers es pot crear una llista ACL (Access Control List) de les màquines que poden (o no poden) accedir al nostre host. | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ cat /etc/hosts.allow | |||
# /etc/hosts.allow: list of hosts that are allowed to access the system. | |||
# See the manual pages hosts_access(5), hosts_options(5) | |||
# and /usr/doc/netbase/portmapper.txt.gz | |||
# | |||
# Example: ALL: LOCAL @some_netgroup | |||
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu | |||
# | |||
# If you're going to protect the portmapper use the name "portmap" for the | |||
# daemon name. Remember that you can only use the keyword "ALL" and IP | |||
# addresses (NOT host or domain names) for the portmapper, as well as for | |||
# rpc.mountd (the NFS mount daemon). See portmap(8), rpc.mountd(8) and | |||
# /usr/share/doc/portmap/portmapper.txt.gz for further information. | |||
# | |||
$ cat /etc/ | $ cat /etc/hosts.deny | ||
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system. | |||
# See the manual pages hosts_access(5), hosts_options(5) | |||
# and /usr/doc/netbase/portmapper.txt.gz | |||
# | |||
# Example: ALL: some.host.name, .some.domain | |||
# ALL EXCEPT in.fingerd: other.host.name, .other.domain | |||
# | |||
# If you're going to protect the portmapper use the name "portmap" for the | |||
# daemon name. Remember that you can only use the keyword "ALL" and IP | |||
# addresses (NOT host or domain names) for the portmapper. See portmap(8) | |||
# and /usr/doc/portmap/portmapper.txt.gz for further information. | |||
# | |||
# The PARANOID wildcard matches any host whose name does not match its | |||
# address. | |||
# You may wish to enable this to ensure any programs that don't | |||
# validate looked up hostnames still leave understandable logs. In past | |||
# versions of Debian this has been the default. | |||
# ALL: PARANOID | |||
</diV> | |||
===/etc/resolv.conf=== | |||
Llista dels DNS als que demanar els noms de domini. [https://wiki.archlinux.org/index.php/Resolv.conf_(Espa%C3%B1ol)] | |||
===Fitxer /etc/ethers=== | |||
Es pot utilitzar aquest fitxer per no haver d'utilitzar la mac cada cop que es fa un wakeonlan: | |||
$ cat /etc/ethers | |||
08:00:20:00:61:CA nommaquina | |||
*[http://linux.die.net/man/5/ethers man ethers] | |||
===/etc/networks=== | |||
Fitxer opcional (sovint no el tenim). Similar al fitxer '''/etc/hosts''' però per especificar xarxes. Exemple | |||
loopback 127.0.0.0 | |||
localdomain 10.0.0.0 | |||
===/etc/hostname=== | |||
Conté el nom de la màquina: | |||
$ cat /etc/hostname | |||
casa-linux | |||
La comanda hostname ens proporciona el nom de la màquina. | |||
===/ | ===/proc/net/arp=== | ||
Aquest fitxer conté la taula del [http://en.wikipedia.org/wiki/Address_Resolution_Protocol protocol ARP (Adress Resolution Protocol)]. Aquest protocol és l'encarregat de transformar IPs en MACs i és el que ens permet treballar amb IPs al nivell d'enllaç (xarxa àrea local). | |||
$ cat /proc/net/arp | |||
IP address HW type Flags HW address Mask Device | |||
10.0.2.101 0x1 0x2 00:11:09:CE:25:8E * eth0 | |||
192.168.0.240 0x1 0x2 00:12:17:FC:98:87 * eth1 | |||
10.0.2.1 0x1 0x2 00:50:7F:1F:2C:A3 * eth0 | |||
10.0.2.107 0x1 0x2 00:11:09:CE:26:3E * eth0 | |||
10.0.3.234 0x1 0x2 00:14:22:09:AA:3F * eth0 | |||
Ens dóna el mateix resultat que la comanda arp (encara que la comanda arp no està sempre instal·lada) | |||
'''NOTA:''' No s'ha d'editar aquest fitxer directament. Cal utilitzar la comanda arp NOTA1: Només conté les MACS dels nodes (pcs o dispositius de xarxa) amb els quals s'ha establert alguna comunicació. | |||
El podem utilitzar per obtenir les MACS de tots els dispositius d'una xarxa d'àrea local. Per això primer utilitzem nmap | |||
sudo nmap 192.168.0.1-255 | |||
i després consultem la taula arp amb | |||
$ cat /proc/net/arp | |||
o la comanda | |||
=== | $ arp | ||
===/etc/udev/rules.d/70-persistent-net.rules=== | |||
El gestor de dispositius de xarxa és udev i substitueix la funció del fitxer /etc/iftab. Veieu el següent exemple d'un disc dur en rack que és connecta a diferents màquines, totes iguals però cadascuna amb una adreça de xarxa amb una MAC diferent: | |||
$ cat /etc/ | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | ||
$ cat /etc/udev/rules.d/70-persistent-net.rules | |||
# This file maintains persistent names for network interfaces. | |||
# See udev(7) for syntax. | |||
# | |||
# Entries are automatically added by the 75-persistent-net-generator.rules | |||
# file; however you are also free to add your own entries. | |||
* | # PCI device 0x10ec:0x8167 (r8169) | ||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:3a:e6", NAME="eth0" | |||
=== | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:a2:fc", NAME="eth1" | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:a3:8d", NAME="eth2" | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:55", NAME="eth3" | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:04", NAME="eth4" | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:11", NAME="eth5" | |||
# PCI device 0x10ec:0x8167 (r8169) | |||
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:0c", NAME="eth6" | |||
</div> | |||
==== Canviar el nom d'una interfície de xarxa ==== | |||
Es pot fer modificant el fitxer ''/etc/udev/rules.d/70-persistent-net.rules'': | |||
===/etc/udev/rules.d/75-persistent-net-generator.rules=== | |||
$ cat /etc/udev/rules.d/75-persistent-net-generator.rules | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
# these rules generate rules for persistent network device naming | |||
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \ | |||
===/etc/ | NAME!="?*", DRIVERS=="?*", GOTO="persistent_net_generator_do" | ||
$ cat | |||
GOTO="persistent_net_generator_end" | |||
LABEL="persistent_net_generator_do" | |||
# | # build device description string to add a comment the generated rule | ||
SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($attr{driver})" | |||
=== | SUBSYSTEMS=="usb", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($attr{driver})" | ||
SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" | |||
SUBSYSTEMS=="xen", ENV{COMMENT}="Xen virtual device" | |||
ENV{COMMENT}=="", ENV{COMMENT}="$env{SUBSYSTEM} device ($attr{driver})" | |||
$ | |||
IMPORT{program}="write_net_rules $attr{address}" | |||
ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" | |||
LABEL="persistent_net_generator_end" | |||
</div> | |||
===/etc/udev/rules.d/85-ifupdown.rules=== | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | |||
$ /etc/udev/rules.d/85-ifupdown.rules | |||
# This file causes network devices to be brought up or down as a result | |||
# of hardware being added or removed, including that which isn't ordinarily | |||
# removable. | |||
# See udev(7) for syntax. | |||
SUBSYSTEM=="net", DRIVERS=="?*", GOTO="net_start" | |||
GOTO="net_end" | |||
LABEL="net_start" | |||
# Bring devices up and down only if they're marked auto. | |||
# Use start-stop-daemon so we don't wait on dhcp | |||
ACTION=="add", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}" | |||
ACTION=="remove", RUN+="/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}" | |||
LABEL="net_end" | |||
</div> | |||
===/proc/net/route=== | |||
Conté la taula de rutes de la màquina. Aquest fitxer és molt similar al fitxer '''/proc/net/arp''' però per a la comanda route. | |||
===/etc/nscd.conf=== | |||
És el fitxer de configuració del servei NSCD (Name Service Cache Daemon) en tots els sistemes. | |||
===/etc/ | ===/etc/nsswitch.conf=== | ||
===/etc/network/options=== | |||
A Debian s'utilitza (és llegeix els continguts a l'executar l'init script [[Xarxes_Linux#.2Fetc.2Finit.d.2Fnetworking | /etc/init.d/networking/restart]]) per configurar les opciones d'arrancada de les targetes de xarxa. Exemple: | |||
$ cat /etc/network/options | |||
ip_forward=no | |||
spoofprotect=yes | |||
syncookies=no | |||
''''Recursos''': | |||
*http://openskills.info/infobox.php?ID=1099 | |||
===/proc/sys/net/ipv4=== | |||
La carpeta proc conté el pseudo sistema de fitxers (realment aquest sistema de fitxers només existeix en memòria) que s'utilitza com una interfície per accedir a les estructures de dades del kernel de Linux. Majoritariament és de només lectura, però en alguns casos es poden modificar algunes variables. La informació del protocol IP es guarda a la carpeta: | |||
/proc/sys/net/ipv4 | |||
====/proc/sys/net/ipv4/ip_forward==== | |||
Indica si la màquina fa o no les funcions d'[[Capa_de_xarxa#Routers|Encaminador]]. | |||
===/proc/sys/net/ipv6=== | |||
Equivalent a l'anterior però per a la versió 6 del protocol IP. | |||
===/etc/NetworkManager/=== | |||
''' | Directori on està la configuració de '''NetworkManager''' en cas de que estiga instal·lat. Es tracta del administrador de la configuració de la xarxa quant el Linu té GUI. | ||
=== | ===/etc/bind=== | ||
Veieu la secció Configuració de bind de l'article sobre [[DNS]]. | |||
===/etc/bind/named.conf=== | |||
Veieu la secció '''/etc/bind/named.conf''' de l'article sobre [[DNS]]. | |||
===/etc/bind/named.conf.local=== | |||
Veieu la secció '''/etc/bind/named.conf.local''' de l'article sobre [[DNS]]. | |||
===/etc/bind/named.conf.options=== | |||
Veieu la secció '''/etc/bind/named.conf.options''' de l'article sobre [[DNS]]. | |||
= How-Tos = | |||
== Configurar múltiples IPs en una targeta estàticament == | |||
Com que en la configuració de la xarxa estan convivint els métodes clàsics amb els nous, el fitxer /etc/network/interfaces ha quedat en mig i es permeten varies configuracions. | |||
La primera, la tradicional, és crear targetes virtuals o '''alias''' amb els noms <nic>:<n>, per exemple eth0:0, eth0:1: | |||
<pre class="code"> | |||
auto eth0 | |||
allow-hotplug eth0 | |||
iface eth0 inet static | |||
address 192.168.1.42 | |||
netmask 255.255.255.0 | |||
gateway 192.168.1.1 | |||
auto eth0:0 | |||
allow-hotplug eth0:0 | |||
iface eth0:0 inet static | |||
address 192.168.1.43 | |||
netmask 255.255.255.0 | |||
auto eth0:1 | |||
allow-hotplug eth0:1 | |||
iface eth0:1 inet static | |||
address 192.168.1.44 | |||
netmask 255.255.255.0 | |||
</pre> | |||
No obstant, aquesta configuració no les crea de la mateixa manera que faria '''id addr add''' on no fa falta que tinga diferent nom. | |||
Aquesta solució pot funcionar: | |||
<pre class="code"> | |||
auto eth0 | |||
allow-hotplug eth0 | |||
iface eth0 inet static | |||
address 192.168.1.42 | |||
netmask 255.255.255.0 | |||
gateway 192.168.1.1 | |||
iface eth0 inet static | |||
address 192.168.1.43 | |||
netmask 255.255.255.0 | |||
iface eth0 inet static | |||
address 192.168.1.44 | |||
netmask 255.255.255.0 | |||
</pre> | |||
El problema és que falla amb algunes targetes de xarxa i no és fàcil de llegir. | |||
La solució proposada per Debian és la següent: | |||
<pre class="code"> | |||
auto eth0 | |||
allow-hotplug eth0 | |||
iface eth0 inet static | |||
address 192.168.1.42 | |||
netmask 255.255.255.0 | |||
gateway 192.168.1.1 | |||
up ip addr add 192.168.1.43/24 dev $IFACE label $IFACE:0 | |||
down ip addr del 192.168.1.43/24 dev $IFACE label $IFACE:0 | |||
up ip addr add 192.168.1.44/24 dev $IFACE label $IFACE:1 | |||
down ip addr del 192.168.1.44/24 dev $IFACE label $IFACE:1 | |||
up ip addr add 10.10.10.14/24 dev $IFACE label $IFACE:2 | |||
down ip addr del 10.10.10.14/24 dev $IFACE label $IFACE:2 | |||
</pre> | |||
En la que es defineix la configuració bàsica i a continuació el que ha de fer al arrancar la targeta que és donar-li 3 ip addicionals i el que ha de fer al apagar-la. | |||
== | =Troubleshooting= | ||
==Test de la xarxa== | |||
La següent bateria de comandes pot ser útil per tal de testejar el funcionament de la xarxa | |||
$ | $ping yahoo.com # verificar la conexión a Internet | ||
$traceroute yahoo.com # rastrear paquetes IP | |||
$ifconfig # verificar la configuración del | |||
# anfitrión (host) | |||
$route -n # verificar la configuración de la ruta | |||
$dig [@dns-server.com] host.dom [{a|mx|any}] |less | |||
# verificar registros host.dom DNS [@ dns-server.com] para | |||
# un registro {a|mx|any} | |||
$ichains -L -n |less # verificar filtrado de paquetes (kernel 2.2) | |||
$iptables -L -n |less # verificar filtrado de paquetes (kernel 2.4) | |||
$netstat -a # mostrar todos los puertos abiertos | |||
$netstat -l --inet # mostrar los puertos en escucha | |||
$netstat -ln --tcp # mostrar puertos tcp en escucha (numérico) | |||
$ | |||
$ | |||
= Enllaços = | |||
http://arstechnica.com/gadgets/2016/04/the-ars-guide-to-building-a-linux-router-from-scratch/ | |||
https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/ | |||
https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface | |||
Revisión actual - 20:05 22 feb 2019
Relacionat: Sistemes operatius, Linux, Gestió de memòria, Gestió de E/S, Processos en Linux, Comandos del shell, Scripts Bash, Drivers en Linux, Configuració de la xarxa en Linux, Instal·lar en Linux
Cóm funciona la xarxa en Linux
Linux és un sistema operatiu centrat en la xarxa. Moltes de les funcions que fan els seus programes necessiten d'una gestió de la xarxa inclús per a la comunicació entre processos del propi equip. Linux és un tipus de Unix i Unix va ser el primer sistema en suportar la pila de protocols TCP/IP.
Si pensem en els diferents nivells de TCP/IP, el nivel físic és feina dels NICs, però tots els demés són cosa del programari. L'enllaç de dades (MACs) és gestionat pel kernel, la capa de xarxa (direccions IP) és gestionat pel nucli de Linux i també gestiona la capa de transport, proporcionant ports als programes per a que es comuniquen sense errors. Sols la capa d'aplicació no és responsabilitat del sistema operatiu.
Com que hi ha moltes distribucions de GNU/Linux, la manera de configurar-se no sempre és exactament igual. Però podem distingir entre una configuració clàssica, disponible en les distribucions orientades a servidors i la configuració amb Network Manager que simplifica el treball en les distribucions per a escriptori. Les dues són prou compatibles i poden estar funcionant al mateix temps, encara que poden col·lisionar.
El primer que necessitem per a que funcione la xarxa en Linux és reconèixer les targetes de xarxa o NICs. Les targetes solen ser PCI o PCI-E, encara que poden ser USB. És a dir, són dispossitius plug-and.play que són detectats pel kernel i s'assigna un nom. Això és cosa d'una ferramenta dels sistema operatiu anomenat udev. Els noms poden ser eth0, eth1... o, més recentment poden tindre predictable names com enp2s0 que indica la situació física de la targeta o eno1 que indica el nom que el firmware o la BIOS ha donat al dispositiu.
En qualsevol cas, per veure totes les targetes que el kernel ha detectat cal fer:
$ ip link show
Una vegada la targeta és detectada, aquesta té una direcció MAC de fàbrica, el comandament anterior també indica quina és.
Per a que la targeta tinga connexió de nivel de xarxa necessita direccions IP. Segons la configuració tradicional, aquesta es fa en /etc/network/interfaces i amb Network Manager es fa normalment de forma gràfica. Encara que podem trobar la configuració en /etc/NetworkManager/system-connections. Per consultar o configurar es pot utilitzar el comandament ifconfig o, preferiblement, ip addr
Una vegada té IP ja es pot comunicar, per resoldre la MAC d'una IP necessita gestionar els protocols ARP i es pot consultar el seu resultat amb el comandament arp.
El programes poden comunicar-se demanant obrir ports amb un port d'una IP remota o local. Això ho fan en cridades al sistema. Es pot consultar els ports oberts amb netstat.
Comandes de xarxa
Per a un administrador de sistemes, dominar els comandaments de xarxa de Linux és fonamental. Molts servidors i dispositius de xarxa tenen com a sistema operatiu una de les moltes distribucions de Linux. Anem a veure el més comuns i útils.
ifconfig
Ifconfig és la comanda que permet configurar interfícies de xarxa (NICs). Tot i que ens permet modificar els paràmetres de xarxa, el seu ús més comú és consultar els paràmetres de xarxa executant ifconfig sense paràmetres:
Com podeu observar es mostren diferents blocs que segueixen la nomenclatura de dispositius de xarxa (eth0,lo,vmnet...). Cada bloc correspon a un dispositiu de xarxa ja sigui físic o virtual.
Cóm mostrar només la informació d'una NIC:
Ifconfig ens proporciona la següent informació:
- HWaddr: MAC del dispositiu (Ex. 00:30:1B:B7:CD:B6)
- inet addr: La adreça IP del dispositiu (Ex. 192.168.1.33)
- Bcast: La adreça de difusió de la subxarxa (Ex. 192.168.1.255)
- Mask: La mascara de la subxarxa 255.255.255.0.
- inet6 addr: La adreça IPv6 (ex.fe80::230:1bff:feb7:cdb6/64)
- Scope: L'àmbit d'actuació de la interfície. Host (loopback)/Link (xarxes LAN nivell enllaç).
- Estadístiques de transmissió/recepció:
o RX packets:16929 errors:0 dropped:0 overruns:0 frame:0 o TX packets:18758 errors:0 dropped:0 overruns:0 carrier:0 o collisions:0 txqueuelen:1000 o RX bytes:11958414 (11.4 MiB) TX bytes:3243289 (3.0 MiB)
Exemples:
iwconfig
Aquesta comanda ens permet obtindre informació de les interfícies de xarxa que siguin wireless:
És un clon de la comanda ifconfig però adequada als paràmetres de les xarxes wireless.
ifup
Arranca una interfície de xarxa:
$ sudo ifup eth0
La configuració de la interfície de xarxa serà segons l'establert al fitxer /etc/network/interfaces.
Si la interfície no apareix al fitxer interfaces la comanda ens donarà el següent error:
$ sudo ifup eth4 Ignoring unknown interface eth4=eth4.
Pot donar aquest error inclús quan la targeta existeix però no esta al fitxer interfícies.
Cal tenir en compte el funcionament d'udev que assigna noms d'interfícies de xarxa segons la MAC en casos especials com:
- Discs durs extraibles: El mateix sistema operatiu funcionant en diferents màquines idèntiques però que cada targeta de xarxa té la seva MAC
- Màquines virtuals: Cal també tenir en compte el tema de la MAC
- Imatges de disc: Si utilitzem eines com partimage o Ghost, tindrem sistemes iguals però cadascú un altre cop amb la seva MAC.
Per exemple en el cas dels discs durs extraibles, udev ens assignarà una ethX on x es diferent per a cada màquina segons la seva MAC. Pot ser que aquesta ethX no estigui al fitxer interfaces!!!. Si passa això hi han dos possibilitats:
- No tenir Network-Manager: Per exemple amb Ubuntu Server. Aleshores la targeta de xarxa no es configurarà durant l'arrancada del sistema
- Tenir Network-Manager: Aleshores network manager s'encarregarà de configurar la interfície de xarxa.
Per a tenir més informació sobre com udev i xarxa, consulteu l'apartat:
#.2Fetc.2Fudev.2Frules.d.2F70-persistent-net.rules
Si la interfície ja esta configurada ens avisarà:
$ sudo ifup eth0 ifup: interface eth0 already configured
Amb el paràmetre -a podem arrancar totes les interfícies del sistema al mateix temps:
sudo ifup -a
Script Hooks. Fitxers .d de configuració de la xarxa
Hi ha 4 tipus de fitxers Hook Script:
- /etc/network/if-down.d: S'executa després d'aturar (ifdown) qualsevol interfície de xarxa
- /etc/network/if-post-down.d: S'executa abans d'aturar (ifdown) qualsevol interfície de xarxa
- /etc/network/if-pre-up.d: S'executa abans d'activar (ifup) qualsevol interfície de xarxa
- /etc/network/if-up.d/: S'executa després d'activar (ifup) qualsevol interfície de xarxa
Fixeu-vos que s'indica qualsevol interfície de xarxa, incloent la lo. Heu de tenir en compte que si indiqueu un script de post-up s'executarà tans cops com interfícies tingueu.
Hi ha una sèrie de variables que podeu utilitzar als scripts:
ifdown
Atura una interfície de xarxa:
sudo ifdown eth0
És una dreçera de la comanda equivalent amb ifconfig:
sudo ifconfig eth0 down
Amb el paràmetre -a podem apagar totes les interfícies de xarxa al mateix temps
$ sudo ifdown -a
ping
És una de les ferramentes més utilitzades, ja que permet saber si hi ha connexió bidireccional entre dos nodes d'una xarxa a partir de la IP.
$ ping 192.168.5.3
arp
Sense opcions mostra una llista amb les MACs resoltes per ARP que manté en cache.
arping
Arping és una comanda molt similar a ping però que utilitza el protocol ARP en comptes del ICMP. Com a conseqüència aquesta comanda només es pot utilitzar entre màquines de la mateixa xarxa local. Igual que ping envia un paquet ARP REQUEST. Exemple:
dhclient
Si la targeta està configurada per a funcionar en DHCP, aquest comandament força el descobriment DHCP com a client.
$ sudo dhclient -v eth0
Aquest exemple fa que la targeta eth0 intente configurar-se per DHCP i mostre el procés per pantalla.
ip
ip és l'eina de nova generació pensada per substituir eines ("obsoletes") com ifconfig o route. Es proporcionada per LARTC (Linux Advanced Routing and Traffic Control)
Ordres que substitueix i millora:
purpose | legacy "net-tools" | iproute2 |
---|---|---|
Address and link configuration | ifconfig | ip addr, ip link |
Routing tables | route | ip route |
Neighbors | arp | ip neigh |
VLAN | vconfig | ip link |
Tunnels | iptunnel | ip tunnel |
Multicast | ipmaddr | ip maddr |
Statistics | netstat | ss |
Exemples:
$ sudo ip link show eth0
Mostra dades sobre la interficie.
$ sudo ip link set eth0 promisc on
Entrar en mode promiscu
$ sudo ip link set dev eth0 up
Activar una interficie de xarxa.
$ sudo ip route add dev eth0 to 192.168.10.0/24 via 192.168.1.20
Afegir una entrada en la taula de rutes.
$ sudo ip route show cache
Mostrar la caché de rutes.
$ sudo ip monitor all
Monitoritza totes targetes de xarxa.
$ sudo ip addr add 192.168.100.1/24 brd 192.168.100.255 dev eth0
Dona una ip a una targeta de xarxa.
traceroute
Traceroute és una comanda que s'utilitza per determinar quina ruta segueixen els paquets IP (per quins gateways o routers passen) per tal d'arribar a una màquina concreta. Exemple:
$ traceroute www.google.es traceroute: Warning: www.google.es has multiple addresses; using 216.239.59.99 traceroute to www.l.google.com (216.239.59.99), 30 hops max, 40 byte packets 1 192.168.1.1 (192.168.1.1) 0.713 ms 0.482 ms 0.455 ms 2 192.168.153.1 (192.168.153.1) 50.780 ms 51.935 ms 49.973 ms 3 97.Red-81-46-52.staticIP.rima-tde.net (81.46.52.97) 55.980 ms 218.281 ms 51.631 ms 4 * * * 5 * * * 6 P12-0-grtlontl2.red.telefonica-wholesale.net (213.140.43.146) 99.036 ms 97.985 ms 98.048 ms 7 72.14.198.9 (72.14.198.9) 98.103 ms 99.954 ms 98.049 ms 8 66.249.95.107 (66.249.95.107) 109.915 ms 109.821 ms 108.130 ms 9 72.14.232.241 (72.14.232.241) 107.947 ms 64.233.174.185 (64.233.174.185) 108.198 ms 126.053 ms 10 216.239.49.126 (216.239.49.126) 111.904 ms 112.058 ms 111.769 ms 11 216.239.59.99 (216.239.59.99) 110.163 ms 107.823 ms 108.138 ms
Amb l'opció -n no s'intenta resoldre les IPs a noms de màquina. Els 3 últims camps són els temps del viatge d'anada i tornada de les tres proves que realitza traceroute per cada TTL.
Els asteriscs són màquines de la ruta que per protecció o errors de protocol no es poden mostrar.
NOTA: sovint els asterisc es poden solucionar executant traceroute com a superusuari.
Hi ha algunes utilitats relacionades amb traceroute que poden ser interessants:
- http://www.mapulator.com/: Utilitza traceroute junt amb Google Maps per tal de dibuixar una ruta física entre dues màquines en un mapa de Google.
- http://paris-traceroute.net/download.htm
L'ordre:
$ traceroute6
és equivalent a:
$ traceroute -6
És a dir és fa un traceroute amb IPv6. Es necessita connectivitat IPv6.
Vegeu també tracert.
tracepath
És una versió més senzilla de traceroute:
$ tracepath www.google.es 1: 192.168.1.33 (192.168.1.33) 0.135ms pmtu 1500 1: 192.168.1.1 (192.168.1.1) 0.898ms 2: 192.168.1.1 (192.168.1.1) asymm 1 0.943ms pmtu 1492 3: 97.Red-81-46-52.staticIP.rima-tde.net (81.46.52.97) 91.871ms 4: 33.Red-81-46-5.staticIP.rima-tde.net (81.46.5.33) asymm 5 105.926ms 5: 84.16.8.125 (84.16.8.125) asymm 6 103.997ms 6: P12-0-grtlontl2.red.telefonica-wholesale.net (213.140.43.146) 137.995ms .....................
- Paquet: iputils-tracepath
- Path: /usr/sbin/tracepath (podeu trobar el camí de la comanda executant which tracepath)
- Manual: man tracepath
dig
Informa de la petició DNS per trobar un nom en Internet. És molt útil per saber si estem utilitzant un DNS correcte o per probar un DNS al configurar-lo.
nslookup
Paregut a Dig, encara que no tant potent.
host
Un altra alternativa a dig.
dnstracer
- Paquet: dnstracer
- Path: /usr/bin/dnstracer (podeu trobar el camí de la comanda executant which dnstracer)
- Manual: man dnstracer
nmap
Consulteu nmap
ipcalc
sipcalc
tcpdump
whois
- Paquet: whois
- Path: /usr/bin/whois (podeu trobar el camí de la comanda executant which whois)
- Manual: man whois
Comandes wireless
Podeu consultar aquestes comandes a la pàgina Xarxes Linux Wireless d'aquesta wiki.
IPtables
ncat ,nc o netcat
ethtool
Consulteu l'article ethtool.
Fitxers de configuració
Configuració de la xarxa en /etc/netplan/
A partir de Ubuntu 18.04, aquesta és la configuració per defecte. Netplan és més modern i milloara la configuració de les targetes amb múltiples direccions IP, entre altres coses. Netplan es basa en fitxers de configuració en format .yalm.
network: version: 2 renderer: networkd ethernets: ens33: dhcp4: yes dhcp6: yes
L'anterior exemple configura la targeta ens33 per a obtindre per DHCP tant la ipv4 com la ipv6.
Per aplicar els canvis fets als fitxers poden executar:
sudo netplan apply
Si volem IPs estàtiques, podem escriure:
network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: [192.168.1.2/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8,8.8.4.4]
O:
network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no dhcp6: no addresses: - 192.168.1.2/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
Si necessitem escriure més d'una direcció s'han de separar per comes o amb guió i salt de línia.
Per a especificar distintes rutes estàtiques:
network: version: 2 renderer: networkd ethernets: enp3s0: addresses: - 9.0.0.9/24 - 10.0.0.10/24 - 11.0.0.11/24 #gateway4: # unset, since we configure routes below routes: - to: 0.0.0.0/0 via: 9.0.0.1 metric: 100 - to: 0.0.0.0/0 via: 10.0.0.1 metric: 100 - to: 0.0.0.0/0 via: 11.0.0.1 metric: 100
Tal vegada volem que tinga una IP extra a banda de la que li donen per DHCP:
network: version: 2 ethernets: eth0: dhcp4: true addresses: [192.168.1.2/24]
I pot ser que necessitem que arreplegue la direcció IP de dues targetes de xarxa, però que un porta d'enllaç tinga més prioritat.
network: version: 2 ethernets: enred: dhcp4: yes dhcp4-overrides: route-metric: 100 # Més prioritat engreen: dhcp4: yes dhcp4-overrides: route-metric: 200 # Menys prioritat
Configuració de la xarxa. Carpeta /etc/network
/etc/network/interfaces
/etc/init.d/networking
Aquest fitxer és un script estàndard de configuració de serveis System V. Permet controlar el servei de xarxa. Les opcions són les estàndard de SystemV:
Arrancar la xarxa:
sudo /etc/init.d/networking start
Apagar la xarxa:
sudo /etc/init.d/networking stop
Apagar i arrancar la xarxa (reiniciar) la xarxa:
sudo /etc/init.d/networking restart
Apagar i arrancar la xarxa (reiniciar) la xarxa:
sudo /etc/init.d/networking force-reload
En aquest cas, les opcions restart i force-reload són equivalents.
/etc/sysctl.conf
Controla paràmetres del kernel:
$ cat /etc/sysctl.conf
El podem utilitzar per activar ip_forwarding:
... # Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 ...
Consulteu l'article Capa_de_xarxa#Routers.
/etc/protocols
Aquest fitxer guarda els noms de protocols de TRANPORT utilitzats (o que suporta) aquest sistema.
/etc/services
Conté una llista dels noms de serveis reconeguts pel sistema (protocols a nivell aplicació).
Un extracte del fitxer:
Una de les utilitats d'aquest fitxer és consultar el port per defecte d'un protocol. Per exemple, si volem saber quin port utilitza el protocol smtp podem escriure:
$ cat /etc/services | grep smtp smtp 25/tcp mail ssmtp 465/tcp smtps # SMTP over SSL
També es pot utilitzar al revés per conèixer el protocol més usual per a un port donat:
$ cat /etc/services | grep 80 www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol ...............
Cal tenir en compte que totes les aplicacions de xarxa (com nmap o netstat) utilitzant la informació d'aquest fitxer per traduir ports en serveis. Per exemple:
$ netstat -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:2208 *:* LISTEN tcp 0 0 *:ldap *:* LISTEN tcp 0 0 localhost:47301 *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN tcp 0 0 *:11211 *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 localhost:postgresql *:* LISTEN tcp 0 0 *:smtp *:* LISTEN
Els serveis als quals apareix el número de port són serveis que no apareixen al fitxer /etc/services. Els protocols que apareixen amb el seu nom (ipp,ldap,mysql,smtp...) són serveis que apareixen al fitxer /etc/protocols.
/etc/host.conf
Conté la manera per defecte de resoldre els noms i si es permeten més d'una IP en el fitxer hosts
/etc/hosts
Conté una llista de noms i IPs coneguts per la màquina, de manera que no fa falta utilitzar un servei DNS
/etc/hosts.allow i /etc/hosts.deny
Amb aquests fitxers es pot crear una llista ACL (Access Control List) de les màquines que poden (o no poden) accedir al nostre host.
/etc/resolv.conf
Llista dels DNS als que demanar els noms de domini. [2]
Fitxer /etc/ethers
Es pot utilitzar aquest fitxer per no haver d'utilitzar la mac cada cop que es fa un wakeonlan:
$ cat /etc/ethers 08:00:20:00:61:CA nommaquina
/etc/networks
Fitxer opcional (sovint no el tenim). Similar al fitxer /etc/hosts però per especificar xarxes. Exemple
loopback 127.0.0.0 localdomain 10.0.0.0
/etc/hostname
Conté el nom de la màquina:
$ cat /etc/hostname casa-linux
La comanda hostname ens proporciona el nom de la màquina.
/proc/net/arp
Aquest fitxer conté la taula del protocol ARP (Adress Resolution Protocol). Aquest protocol és l'encarregat de transformar IPs en MACs i és el que ens permet treballar amb IPs al nivell d'enllaç (xarxa àrea local).
$ cat /proc/net/arp IP address HW type Flags HW address Mask Device 10.0.2.101 0x1 0x2 00:11:09:CE:25:8E * eth0 192.168.0.240 0x1 0x2 00:12:17:FC:98:87 * eth1 10.0.2.1 0x1 0x2 00:50:7F:1F:2C:A3 * eth0 10.0.2.107 0x1 0x2 00:11:09:CE:26:3E * eth0 10.0.3.234 0x1 0x2 00:14:22:09:AA:3F * eth0
Ens dóna el mateix resultat que la comanda arp (encara que la comanda arp no està sempre instal·lada)
NOTA: No s'ha d'editar aquest fitxer directament. Cal utilitzar la comanda arp NOTA1: Només conté les MACS dels nodes (pcs o dispositius de xarxa) amb els quals s'ha establert alguna comunicació.
El podem utilitzar per obtenir les MACS de tots els dispositius d'una xarxa d'àrea local. Per això primer utilitzem nmap
sudo nmap 192.168.0.1-255
i després consultem la taula arp amb
$ cat /proc/net/arp
o la comanda
$ arp
/etc/udev/rules.d/70-persistent-net.rules
El gestor de dispositius de xarxa és udev i substitueix la funció del fitxer /etc/iftab. Veieu el següent exemple d'un disc dur en rack que és connecta a diferents màquines, totes iguals però cadascuna amb una adreça de xarxa amb una MAC diferent:
Canviar el nom d'una interfície de xarxa
Es pot fer modificant el fitxer /etc/udev/rules.d/70-persistent-net.rules:
/etc/udev/rules.d/75-persistent-net-generator.rules
$ cat /etc/udev/rules.d/75-persistent-net-generator.rules
/etc/udev/rules.d/85-ifupdown.rules
/proc/net/route
Conté la taula de rutes de la màquina. Aquest fitxer és molt similar al fitxer /proc/net/arp però per a la comanda route.
/etc/nscd.conf
És el fitxer de configuració del servei NSCD (Name Service Cache Daemon) en tots els sistemes.
/etc/nsswitch.conf
/etc/network/options
A Debian s'utilitza (és llegeix els continguts a l'executar l'init script /etc/init.d/networking/restart) per configurar les opciones d'arrancada de les targetes de xarxa. Exemple:
$ cat /etc/network/options ip_forward=no spoofprotect=yes syncookies=no
'Recursos:
/proc/sys/net/ipv4
La carpeta proc conté el pseudo sistema de fitxers (realment aquest sistema de fitxers només existeix en memòria) que s'utilitza com una interfície per accedir a les estructures de dades del kernel de Linux. Majoritariament és de només lectura, però en alguns casos es poden modificar algunes variables. La informació del protocol IP es guarda a la carpeta:
/proc/sys/net/ipv4
/proc/sys/net/ipv4/ip_forward
Indica si la màquina fa o no les funcions d'Encaminador.
/proc/sys/net/ipv6
Equivalent a l'anterior però per a la versió 6 del protocol IP.
/etc/NetworkManager/
Directori on està la configuració de NetworkManager en cas de que estiga instal·lat. Es tracta del administrador de la configuració de la xarxa quant el Linu té GUI.
/etc/bind
Veieu la secció Configuració de bind de l'article sobre DNS.
/etc/bind/named.conf
Veieu la secció /etc/bind/named.conf de l'article sobre DNS.
/etc/bind/named.conf.local
Veieu la secció /etc/bind/named.conf.local de l'article sobre DNS.
/etc/bind/named.conf.options
Veieu la secció /etc/bind/named.conf.options de l'article sobre DNS.
How-Tos
Configurar múltiples IPs en una targeta estàticament
Com que en la configuració de la xarxa estan convivint els métodes clàsics amb els nous, el fitxer /etc/network/interfaces ha quedat en mig i es permeten varies configuracions.
La primera, la tradicional, és crear targetes virtuals o alias amb els noms <nic>:<n>, per exemple eth0:0, eth0:1:
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42 netmask 255.255.255.0 gateway 192.168.1.1 auto eth0:0 allow-hotplug eth0:0 iface eth0:0 inet static address 192.168.1.43 netmask 255.255.255.0 auto eth0:1 allow-hotplug eth0:1 iface eth0:1 inet static address 192.168.1.44 netmask 255.255.255.0
No obstant, aquesta configuració no les crea de la mateixa manera que faria id addr add on no fa falta que tinga diferent nom.
Aquesta solució pot funcionar:
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42 netmask 255.255.255.0 gateway 192.168.1.1 iface eth0 inet static address 192.168.1.43 netmask 255.255.255.0 iface eth0 inet static address 192.168.1.44 netmask 255.255.255.0
El problema és que falla amb algunes targetes de xarxa i no és fàcil de llegir. La solució proposada per Debian és la següent:
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42 netmask 255.255.255.0 gateway 192.168.1.1 up ip addr add 192.168.1.43/24 dev $IFACE label $IFACE:0 down ip addr del 192.168.1.43/24 dev $IFACE label $IFACE:0 up ip addr add 192.168.1.44/24 dev $IFACE label $IFACE:1 down ip addr del 192.168.1.44/24 dev $IFACE label $IFACE:1 up ip addr add 10.10.10.14/24 dev $IFACE label $IFACE:2 down ip addr del 10.10.10.14/24 dev $IFACE label $IFACE:2
En la que es defineix la configuració bàsica i a continuació el que ha de fer al arrancar la targeta que és donar-li 3 ip addicionals i el que ha de fer al apagar-la.
Troubleshooting
Test de la xarxa
La següent bateria de comandes pot ser útil per tal de testejar el funcionament de la xarxa
$ping yahoo.com # verificar la conexión a Internet $traceroute yahoo.com # rastrear paquetes IP $ifconfig # verificar la configuración del # anfitrión (host) $route -n # verificar la configuración de la ruta $dig [@dns-server.com] host.dom [{a|mx|any}] |less # verificar registros host.dom DNS [@ dns-server.com] para # un registro {a|mx|any} $ichains -L -n |less # verificar filtrado de paquetes (kernel 2.2) $iptables -L -n |less # verificar filtrado de paquetes (kernel 2.4) $netstat -a # mostrar todos los puertos abiertos $netstat -l --inet # mostrar los puertos en escucha $netstat -ln --tcp # mostrar puertos tcp en escucha (numérico)
Enllaços
http://arstechnica.com/gadgets/2016/04/the-ars-guide-to-building-a-linux-router-from-scratch/
https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface