|
|
(No se muestran 78 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=== |
|
| |
|
| Vegeu també l'ordre [[#ip|ip]] de ''''Linux Advanced Routing & Traffic Control'''' lartc (http://lartc.org/).
| | {{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. |
|
| |
|
| Com mostrar només la informació d'una NIC:
| | Cóm mostrar només la informació d'una NIC: |
|
| |
|
| <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> | | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
Línea 70: |
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 |
| '''NOTA:''' É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 |
|
| |
|
| '''NOTA:''' És equivalent a ifup eth0 | | '''Configurar una targeta de xarxa amb ip estàtica''' |
| | |
| ====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'''.}} |
|
| |
|
| '''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 ''' |
|
| |
|
| ===== 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. |
|
| |
|
| El [http://ca.wikipedia.org/wiki/Mode_promiscu | mode promiscu] és aquell en el qual una ordinador a connectada 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 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. |
|
| |
|
| En el mode promiscu, una màquina intermèdia captura tots els paquets, que normalment deixalleria, incloent-hi els paquets destinats a ell mateix ia 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 108: |
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''' |
|
| |
|
| *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 122: |
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 ====
| | ''' Activar/desactivar ARP ''' |
|
| |
|
| Consulteu també [[ARP]]. | | Consulteu també [[ARP]]. |
Línea 129: |
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 139: |
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
| | '''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 154: |
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ó] |
|
| |
|
| En alguns casos el interrupt de ifconfig no mostra la interrupció correcte:
| | </div> |
| | |
| :*http://superuser.com/questions/338780/interrupt-number-confussion
| |
| | |
| Cal consultar el fitxer [[/etc/interrupts]].
| |
| | |
| '''Recursos:'''
| |
| | |
| *http://es.gentoo-wiki.com/HOWTO_IP_Aliasing
| |
| | |
| 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).
| |
| | |
| *'''Paquet:''' net-tools
| |
| *'''Path:''' /sbin/ifconfig (podeu trobar el camí de la comanda executant which ifconfig)
| |
| *'''Manual''': [http://man.he.net/?topic=ifconfig§ion=all man ifconfig]
| |
| | |
| '''Recursos:'''
| |
|
| |
|
| *[http://www.die.net/doc/linux/nag/x-087-2-iface.ifconfig.html All about ifconfig]
| | {{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 181: |
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 198: |
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. |
|
| |
| Podeu trobar més informació a l'apartat iwconfig de l'article d'aquesta wiki sobre [[Xarxes_Linux_Wireless | Xarxes Linux Wireless]].
| |
|
| |
| *'''Paquet:'''wireless-tools
| |
| *'''Path:''' /sbin/iwconfig (podeu trobar el path de la comanda executant which iwconfig)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man8/iwconfig.8.html man iwconfig]
| |
|
| |
|
| ===ifup=== | | ===ifup=== |
Línea 222: |
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 el funcionament el funcionament d'udev que assigna noms d'interfícies de xarxa segons la MAC en casos especials com: | | 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 241: |
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 247: |
Línea 247: |
| sudo ifup -a | | sudo ifup -a |
|
| |
|
| ==== Script Hooks. Fitxers .d de configuració de la xarxa ====
| | ''' 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 259: |
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 275: |
Línea 275: |
| exit 0 | | exit 0 |
| fi</pre> | | fi</pre> |
| | </div> |
|
| |
|
| ===ifdown=== | | ===ifdown=== |
Línea 290: |
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.
| | {{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=== |
|
| |
|
| [[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=== |
|
| |
|
| [[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 314: |
Línea 317: |
| Received 4 response(s) | | Received 4 response(s) |
|
| |
|
| Per instal·lar, cal executar la comanda:
| | ''' Provocar arp-replys ''' |
|
| |
|
| $ [[sudo]] [[apt-get]] install iputils-arping
| | Primer cal assignar-se una IP (ho podeu fer per [[IP Aliasing]]): |
| | |
| El funcionament és molt similar a la comanda ping. El paràmetre c és igual i l'opció per defecte també és il·limitats "pings" que els podem aturar amb la combinació de tetcles Ctrl+C.
| |
| | |
| *'''Paquet:''' iputils-arping
| |
| *'''Path:''' /usr/bin/arping (podeu consultar el path executant which arping)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man8/arping.8.html man arping]
| |
| | |
| ==== Provocar arp-replys ====
| |
| | |
| Primer cal assignar-se una IP (ho podeu fer per [[IP Aliasing]]): | |
|
| |
|
| $ sudo [[ip]] addr add 192.168.9.35 dev wlan0 | | $ sudo [[ip]] addr add 192.168.9.35 dev wlan0 |
Línea 349: |
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 ====
| | ''' 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 358: |
Línea 351: |
| $ sudp tcpdump -c 3 -nni eth0 arp | | $ sudp tcpdump -c 3 -nni eth0 arp |
|
| |
|
| | | ''' Detectar duplicats ''' |
| ==== Detectar duplicats ====
| |
|
| |
|
| $ sudo arping -D -I eth0 192.168.99.147; echo $? | | $ sudo arping -D -I eth0 192.168.99.147; echo $? |
|
| |
|
| ===rarp===
| | </div> |
| | |
| Aquest programa és obsolet (els nous kernels ja no l'utilitzen). Ho podeu comprovar executant:
| |
| | |
| $ rarp -a
| |
| This kernel does not support RARP.
| |
| | |
| *Paquet Debian: net-tools
| |
| *'''Path:''' /usr/sbin/rarp (podeu executar which rarp per conèixer el path de la comanda)
| |
| *'''Manual''': [http://bama.ua.edu/cgi-bin/man-cgi?RARP+7P man rarp]
| |
|
| |
|
| ===dhclient=== | | ===dhclient=== |
|
| |
|
| *'''Paquet:''' net-tools
| | Si la targeta està configurada per a funcionar en DHCP, aquest comandament força el descobriment [[DHCP]] com a client. |
| *'''Path:''' /sbin/dhclient (podeu trobar el camí de la comanda executant which dhclient)
| | $ sudo dhclient -v eth0 |
| *'''Manual''': [http://www.die.net/doc/linux/man/man8/dhclient.8.html man dhclient]
| | Aquest exemple fa que la targeta eth0 intente configurar-se per DHCP i mostre el procés per pantalla. |
| | |
| ===netstat===
| |
| | |
| Consulteu [[netstat]].
| |
|
| |
|
| ===ip=== | | ===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]]) | | 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 445: |
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 | font amb més informació] | | [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=== |
|
| |
| Per instal·lar traceroute:
| |
|
| |
| $ [[sudo]] [[apt-get]] install traceroute
| |
|
| |
| Hi ha diferents implementacions de traceroute. Si executeu:
| |
|
| |
| $ [[whereis]] traceroute
| |
| traceroute: /usr/bin/traceroute /usr/bin/traceroute.db /usr/bin/traceroute6.iputils /usr/bin/traceroute6.db /usr/sbin/traceroute /usr/share/man/man8/traceroute.8.gz
| |
|
| |
| Si busqueu el paquet:
| |
|
| |
| $ [[dpkg]] -S /usr/bin/traceroute
| |
| ...
| |
| dpkg: /usr/bin/traceroute no trobat.
| |
|
| |
| Esteu utilitzant /usr/bin/traceroute.db i l'instal·la el paquet del mateix nom [[traceroute]]. Després s'utilitza [[alternatives]] per indicar la implementació de traceroute que volem utilitzar:
| |
|
| |
| $ [[update-alternatives]] --display traceroute
| |
| traceroute - auto mode
| |
| l'enllaç apunta actualment cap a /usr/bin/traceroute.db
| |
| /usr/bin/traceroute.db - prioritat 100
| |
| esclau traceroute.8.gz: /usr/share/man/man8/traceroute.db.8.gz
| |
| esclau traceroute.sbin: /usr/bin/traceroute.db
| |
| Actualment la «millor» versió és /usr/bin/traceroute.db.
| |
|
| |
|
| [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 493: |
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. |
|
| |
|
| {{important|Si no hi ha resposta en 5 segons, aleshores es mostra un '''*'''}} | | {{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. |
|
| |
|
| $ sudo traceroute www.google.es
| | Hi ha algunes utilitats relacionades amb traceroute que poden ser interessants: |
| Password:
| |
| 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.469 ms 0.496 ms 0.429 ms
| |
| 2 192.168.153.1 (192.168.153.1) 50.701 ms 47.989 ms 48.041 ms
| |
| 3 97.Red-81-46-52.staticIP.rima-tde.net (81.46.52.97) 51.949 ms 52.153 ms 51.969 ms
| |
| 4 33.Red-81-46-5.staticIP.rima-tde.net (81.46.5.33) 63.792 ms 63.746 ms 64.027 ms
| |
| 5 84.16.8.125 (84.16.8.125) 62.078 ms 64.046 ms 64.030 ms
| |
| 6 P12-0-grtlontl2.red.telefonica-wholesale.net (213.140.43.146) 98.030 ms 99.910 ms 98.018 ms
| |
| 7 72.14.198.9 (72.14.198.9) 98.140 ms 97.968 ms 98.028 ms
| |
| 8 66.249.95.107 (66.249.95.107) 109.928 ms 110.080 ms 109.853 ms
| |
| 9 64.233.174.185 (64.233.174.185) 109.930 ms 72.14.232.241 (72.14.232.241) 110.133 ms 109.800 ms
| |
| 10 216.239.49.114 (216.239.49.114) 114.104 ms 114.010 ms 109.848 ms
| |
| 11 216.239.59.99 (216.239.59.99) 110.093 ms 110.094 ms 109.865 ms
| |
|
| |
|
| '''NOTA 2''': Els paquets no sempre segueixen el mateix camí per arribar a un destinatari tal i com podeu comprovar en els nodes 9 i 10 de l'exemple anterior...
| | *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 |
| Actualment molts tallafocs impedeixen els paquets necessaris per tal que funcioni correctament traceroute. Per aquesta raó l'ordre premet provar amb diferents mètodes:
| |
| | |
| :*'''default''': és el mètode tradicional i l'utilitzat per defecte. Aquest mètode el pot executar qualsevol usuari. S'envien paquets UDP amb ports poc probables (per defecte 33434 i es va augmentant). S'esperant missatges "icmp unreach port"
| |
| :*'''icmp''': Opció -I. Si es pot fer un ping a totes les màquines de la ruta, també s'hauria de poder fer aquest tipus de tracerouting.
| |
| :*'''tcp''': Opció -T. Utilitza el port 80
| |
| | |
| 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: | | L'ordre: |
Línea 538: |
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]]. |
| | |
| L'ordre ping també es pot utilitzar per traçar rutes:
| |
| | |
| $ ping -nR www.xtec.cat
| |
| PING xtec.cat (213.176.161.13) 56(124) bytes of data.
| |
| 64 bytes from 213.176.161.13: icmp_seq=1 ttl=251 time=54.3 ms
| |
| NOP
| |
| RR: 192.168.0.46
| |
| 213.176.160.157
| |
| 213.176.160.26
| |
| 213.176.161.1
| |
| 213.176.161.13
| |
| 213.176.160.19
| |
| 213.176.160.153
| |
| 10.19.41.1
| |
| 85.192.120.9
| |
|
| |
| 64 bytes from 213.176.161.13: icmp_seq=2 ttl=251 time=52.9 ms
| |
| NOP (same route)
| |
| 64 bytes from 213.176.161.13: icmp_seq=3 ttl=251 time=53.1 ms
| |
| NOP (same route)
| |
| | |
| *'''Paquet:''' traceroute
| |
| *'''Path:''' /usr/sbin/traceroute (podeu trobar el camí de la comanda executant which traceroute)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man8/traceroute.8.html man traceroute]
| |
| | |
| Una alternativa a traceroute és [[Paketto_Keiretsu#Paratrace Paratrace] de Paketto Keiretsu.
| |
| | |
| ====Com funciona traceroute====
| |
| | |
| Traceroute utilitzar el protocol [[ICMP]]. Hi ha múltiples alternatives a l'hora d'intentar conèixer la ruta, però una de les més senzilles és enviat paquets de [[ping]] amb [[TTL]] ([[Times To Live]]) limitats.
| |
| | |
| Per conèixer la primera màquina d'una ruta enviem un paquet ping amb TTL=1
| |
| | |
| $ ping -t 1 www.google.com
| |
| PING www.l.google.com (209.85.227.105) 56(84) bytes of data.
| |
| From Livebox-D5AC (192.168.111.1) icmp_seq=1 Time to live exceeded
| |
| | |
| Ara ja sabeu que la primera màquina de la ruta és la 192.168.111.1. Si fem el mateix amb un TTL=2 obtindrem el nom de la segona màquina.
| |
| | |
| Podeu anar provant augmentant, fins que el paquet ping retorni.
| |
| | |
| ====mtr. My Traceroute====
| |
| | |
| Un altre traceroute:
| |
| | |
| $ dpkg -S /usr/bin/mtr
| |
| mtr-tiny: /usr/bin/mtr
| |
| | |
| $ mtr www.upc.edu
| |
|
| |
|
| ===tracepath=== | | ===tracepath=== |
Línea 610: |
Línea 491: |
| ===dig=== | | ===dig=== |
|
| |
|
| $ dpkg -S dig | grep bin
| | 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. |
| dnsutils: /usr/bin/dig
| |
| ..............
| |
| | |
| Podeu trobar més exemples a [[Servidor de DNS#Comanda dig |comanda dig]].
| |
| | |
| *'''Paquet:''' dnsutils
| |
| *'''Path:''' /usr/bin/dig (podeu trobar el camí de la comanda executant which dig)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man1/dig.1.html man dig]
| |
|
| |
|
| ===nslookup=== | | ===nslookup=== |
|
| |
|
| *'''Paquet:''' dnsutils
| | Paregut a Dig, encara que no tant potent. |
| *'''Path:''' /usr/bin/dig (podeu trobar el camí de la comanda executant which dig)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man1/nslookup.1.html man dig]
| |
|
| |
|
| ===host=== | | ===host=== |
|
| |
|
| Consulteu [[host]].
| | Un altra alternativa a dig. |
|
| |
|
| ===dnstracer=== | | ===dnstracer=== |
Línea 658: |
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). |
| | |
| [[Image:Ipcalc.jpg]]
| |
| | |
| $ ipcalc 192.168.0.1/24 | | $ ipcalc 192.168.0.1/24 |
|
| |
|
Línea 763: |
Línea 631: |
|
| |
|
| === 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 860: |
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=== | | ===[[tcpdump]]=== |
| | |
| Consulteu l'article [[tcpdump]].
| |
| | |
| *'''Paquet:''' tcpdump
| |
| *'''Path:''' /usr/bin/tcpdump (podeu trobar el camí de la comanda executant which tcpdump)
| |
| *'''Manual''': [http://www.die.net/doc/linux/man/man8/tcpdump.8.html man tcpdump]
| |
|
| |
|
| ===whois=== | | ===whois=== |
Línea 879: |
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=== | | ===[[IPtables]]=== |
|
| |
|
| Consulteu la secció iptables de l'article [[Netfilter/iptables]].
| | ===[[ncat]] ,nc o netcat=== |
| | |
| ===nc (netcat)===
| |
| | |
| Consulteu [[nc (netcat)]].
| |
|
| |
|
| ===ethtool=== | | ===ethtool=== |
|
| |
|
| Consulteu l'article [[ethtool]]. | | Consulteu l'article [[ethtool]]. |
|
| |
| ===mii-tool===
| |
|
| |
| Consulteu [[Ethtool#mii-tool | mii-tool]]
| |
|
| |
| ===mii-diag===
| |
|
| |
| Consulteu [[Ethtool#mii-diag | mii-diag]]
| |
|
| |
|
| ==Fitxers de configuració== | | ==Fitxers de configuració== |
|
| |
|
| ===/etc/modules=== | | === Configuració de la xarxa en /etc/netplan/ === |
| | |
| Aquest fitxer es pot utilitzar per afegir un mòdul al kernel (per exemple de suport a la targeta de xarxa). Els mòduls que apareixen a aquest fitxer es carreguen durant la càrrega del sistema. Exemple de fitxer
| |
| | |
| $ cat /etc/modules
| |
| # /etc/modules: kernel modules to load at boot time.
| |
| #
| |
| # This file contains the names of kernel modules that should be loaded
| |
| # at boot time, one per line. Lines beginning with "#" are ignored.
| |
|
| |
| lp
| |
| psmouse
| |
| sbp2
| |
| sr_mod
| |
|
| |
|
| Els fitxers dels mòduls estan típicament a /lib/modules/. Aquí trobareu una carpeta per a cada versió del kernel (podeu utilitzar uname -r' per conèixer la vostra versió.
| | 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 exemple, seguint les instruccions de la wiki d'Ubuntu (https://wiki.ubuntu.com/HardwareSupportComponentsWiredNetworkCards3Com), per fer funcionar una targeta 3COM 3c509TP Etherlink III, hem d'afegir el mòdul 3c509 al fitxer '''/etc/modules'''. | | Per aplicar els canvis fets als fitxers poden executar: |
|
| |
|
| ===/etc/conf.modules===
| | sudo netplan apply |
|
| |
|
| Mitjançant aquest fitxer podem configurar els paràmetres dels mòduls. Per exemple podem indicar a linux quin driver ha d'utilitzar per a la nostra targeta de xarxa. Exemple:
| | 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. |
|
| |
|
| alias eth0 module_name
| | Per a especificar distintes rutes estàtiques: |
| options module_name option1=value1 option2=value2 ...
| | <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> |
|
| |
|
| Un mòdul proporciona al sistema operatiu (kernel) la informació necessària per controlar una targeta ethernet en particular. Per conèxer els noms dels mòduls (module_name) podeu consultar [aquesta pàgina http://tldp.org/HOWTO/Ethernet-HOWTO-2.html#what-card].
| | 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> |
|
| |
|
| Les línies d'opcions només acostumen a ser necessàries per a antigues targetes ISA (obsoletes i no recomanables). Si es tenen més targetes serà necessari posar més línies al fitxer (eth1, eth2...).
| | 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> |
| | |
|
| |
|
| '''NOTA:''' If you build your own kernel, you have the option of having all the drivers merged with the kernel right then and there, rather than existing as separate files. When this is done, the drivers will detect the hardware at boot up. Options to the drivers are supplied by the kernel command line prior to boot (see BootPrompt Howto for more details). The user chooses what drivers are used during the make config step of building the kernel (again see the kernel howto).
| | [https://netplan.io/examples Exemples] |
|
| |
|
| === Configuració de la xarxa. Carpeta /etc/network === | | === Configuració de la xarxa. Carpeta /etc/network === |
|
| |
|
| Múltiples aplicacions participen en la configuració de la xarxa com podeu veure si executeu:
| | ==== /etc/network/interfaces ==== |
|
| |
|
| $ dpkg -S /etc/network
| | {{nota|Aquesta part es considera obsoleta en Ubuntu 18.04, encara que funciona per a moltes necessitats retro-compatibles. Actualment cal utilitzar Netplan.}} |
| [[avahi]]-autoipd, [[avahi-daemon]], [[wireless-tools]], [[wpasupplicant]], [[netbase]], [[ethtool]], [[dhcp3-client]], [[openssh-server]], [[ifupdown]], [[ntpdate]], [[postfix]], [[openvpn]]:
| |
| /etc/network
| |
|
| |
|
| Per tant cal tenir en compte que la configuració de la xarxa pot esdevenir quelcom complex que varii molt d'una màquina a un altre depenent dels paquets instal·lats.
| | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| | |
| ==== /etc/network/interfaces ====
| |
|
| |
|
| 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 955: |
Línea 873: |
| auto eth0 | | auto eth0 |
| iface eth0 inet dhcp | | iface eth0 inet dhcp |
|
| |
| auto eth1
| |
| iface eth1 inet dhcp
| |
|
| |
| auto ath0
| |
| iface ath0 inet dhcp
| |
| | | |
| auto wlan0 | | auto wlan0 |
Línea 975: |
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 986: |
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 1118: |
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 1141: |
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:''' Cal destacar que no és exactament el mateix executar /etc/init.d/networking start (o stop) que executar ifup. Ho podem comprovar si mirem l'script que conté el fitxer on veurem que s'utilitzen les comandes ifup i ifdown però que a més hi ha controls extres (com per exemple no apagar la xarxa si hi han unitats NFS encara muntades).
| | {{nota|restart està obsolet, cal fer stop i start en els Debian moderns}} |
|
| |
|
| El link '''/etc/rcS.d/S40networking''' és l'encarregat d'iniciar la configuració de xarxa en Sistemes Debian seguint el sistema d' scripts d'inicialització de SystemV.
| |
|
| |
|
| Podeu obtenir més informació sobre serveis i dimonis en Linux a l'article [[Configuració_de_serveis_en_Linux._Daemons | Configuració de serveis en Linux. Daemons]] d'aquesta wiki i concretament sobre els Scripts de control de serveis SystemV.
| | ===/etc/sysctl.conf=== |
|
| |
|
| *'''Paquet que el proporciona:''' netbase
| | Controla paràmetres del kernel: |
|
| |
|
| '''NOTA''': aquest fitxer es completament diferents en una Debian que en una Ubuntu. A Ubuntu es basa en simplement fer primer un '''ifdown -a''' i després un '''ifup -a''' a Debian fa altres coses... | | $ cat /etc/sysctl.conf |
|
| |
|
| ====Fitxer a Ubuntu (Feisty)==== | | 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]]. |
|
| |
|
| $ cat /etc/init.d/networking
| | ===/etc/protocols=== |
| #!/bin/sh -e
| |
| ### BEGIN INIT INFO
| |
| # Provides: networking
| |
| # Required-Start: mountkernfs ifupdown $local_fs
| |
| # Required-Stop: ifupdown $local_fs
| |
| # Default-Start: S
| |
| # Default-Stop: 0 6
| |
| # Short-Description: Raise network interfaces.
| |
| ### END INIT INFO
| |
|
| |
| PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
| |
|
| |
| [ -x /sbin/ifup ] || exit 0
| |
|
| |
| . /lib/lsb/init-functions
| |
|
| |
|
| |
| case "$1" in
| |
| start)
| |
| log_action_begin_msg "Configuring network interfaces"
| |
| type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
| |
| if [ "$VERBOSE" != no ]; then
| |
| '''if ifup -a; then'''
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| else
| |
| if ifup -a >/dev/null 2>&1; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| fi
| |
| type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
| |
| ;;
| |
|
| |
| stop)
| |
| if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
| |
| grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then
| |
| log_warning_msg "not deconfiguring network interfaces: network shares still mounted."
| |
| exit 0
| |
| fi
| |
|
| |
| log_action_begin_msg "Deconfiguring network interfaces"
| |
| if [ "$VERBOSE" != no ]; then
| |
| if ifdown -a --exclude=lo; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| else
| |
| if '''ifdown -a --exclude=lo''' >/dev/null 2>/dev/null; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| fi
| |
| ;;
| |
|
| |
| force-reload|restart)
| |
| log_action_begin_msg "Reconfiguring network interfaces"
| |
| ifdown -a --exclude=lo || true
| |
| if ifup -a --exclude=lo; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| ;;
| |
|
| |
| *)
| |
| echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
| |
| exit 1
| |
| ;;
| |
| esac
| |
|
| |
| exit 0
| |
|
| |
|
| ====Fitxer a Debian Etch====
| | Aquest fitxer guarda els noms de protocols de TRANPORT utilitzats (o que suporta) aquest sistema. |
|
| |
|
| $ cat /etc/init.d/networking | | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| #!/bin/sh -e | | $ cat /etc/protocols |
| ### BEGIN INIT INFO | | # Internet (IP) protocols |
| # Provides: networking | | # |
| # Required-Start: mountkernfs ifupdown $local_fs
| | # Updated from http://www.iana.org/assignments/protocol-numbers and other |
| # Required-Stop: ifupdown $local_fs | | # sources. |
| # Default-Start: S | | # New protocols will be added on request if they have been officially |
| # Default-Stop: 0 6 | | # assigned by IANA and are not historical. |
| # Short-Description: Raise network interfaces.
| | # If you need a huge list of used numbers please install the nmap package. |
| ### END INIT INFO | |
|
| |
| PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
| |
|
| |
| [ -x /sbin/ifup ] || exit 0
| |
|
| |
| . /lib/lsb/init-functions
| |
|
| |
| spoofprotect_rp_filter() {
| |
| [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] || return 1
| |
| RC=0
| |
| for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
| |
| echo 1 > $f || RC=1
| |
| done
| |
| return $RC
| |
| }
| |
| | | |
| spoofprotect() { | | ip 0 IP # internet protocol, pseudo protocol number |
| log_action_begin_msg "Setting up IP spoofing protection" | | #hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] |
| if spoofprotect_rp_filter; then
| | icmp 1 ICMP # internet control message protocol |
| log_action_end_msg 0 "rp_filter" | | igmp 2 IGMP # Internet Group Management |
| else
| | ggp 3 GGP # gateway-gateway protocol |
| log_action_end_msg 1
| | ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP) |
| fi
| | st 5 ST # ST datagram mode |
| } | | tcp 6 TCP # transmission control protocol |
| | | egp 8 EGP # exterior gateway protocol |
| ip_forward() { | | igp 9 IGP # any private interior gateway (Cisco) |
| log_action_begin_msg "Enabling packet forwarding" | | pup 12 PUP # PARC universal packet protocol |
| if echo 1 > /proc/sys/net/ipv4/ip_forward; then
| | udp 17 UDP # user datagram protocol |
| log_action_end_msg 0
| | hmp 20 HMP # host monitoring protocol |
| else
| | xns-idp 22 XNS-IDP # Xerox NS IDP |
| log_action_end_msg 1
| | rdp 27 RDP # "reliable datagram" protocol |
| fi
| | iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] |
| } | | xtp 36 XTP # Xpress Transfer Protocol |
| | | ddp 37 DDP # Datagram Delivery Protocol |
| syncookies() { | | idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport |
| log_action_begin_msg "Enabling TCP SYN cookies" | | ipv6 41 IPv6 # Internet Protocol, version 6 |
| if echo 1 > /proc/sys/net/ipv4/tcp_syncookies; then | | ipv6-route 43 IPv6-Route # Routing Header for IPv6 |
| log_action_end_msg 0
| | ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 |
| else | | idrp 45 IDRP # Inter-Domain Routing Protocol |
| log_action_end_msg 1
| | rsvp 46 RSVP # Reservation Protocol |
| fi | | gre 47 GRE # General Routing Encapsulation |
| }
| | esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] |
| | | ah 51 IPSEC-AH # Authentication Header [RFC2402] |
| doopt() {
| | skip 57 SKIP # SKIP |
| optname=$1 | | ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 |
| default=$2
| | ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 |
| opt=`grep "^$optname=" /etc/network/options || true`
| | ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 |
| if [ -z "$opt" ]; then | | rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB) |
| opt="$optname=$default"
| | vmtp 81 VMTP # Versatile Message Transport |
| fi
| | eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco) |
| optval=${opt#$optname=}
| | ospf 89 OSPFIGP # Open Shortest Path First IGP |
| if [ "$optval" = "yes" ]; then
| | ax.25 93 AX.25 # AX.25 frames |
| eval $optname
| | ipip 94 IPIP # IP-within-IP Encapsulation Protocol |
| fi | | etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] |
| } | | encap 98 ENCAP # Yet Another IP encapsulation [RFC1241] |
| | | # 99 # any private encryption scheme |
| process_options() { | | pim 103 PIM # Protocol Independent Multicast |
| [ -e /etc/network/options ] || return 0
| | ipcomp 108 IPCOMP # IP Payload Compression Protocol |
| log_warning_msg "/etc/network/options is deprecated (see README.Debian of netbase)." | | vrrp 112 VRRP # Virtual Router Redundancy Protocol |
| doopt spoofprotect yes | | l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661] |
| doopt syncookies no
| | isis 124 ISIS # IS-IS over IPv4 |
| doopt ip_forward no
| | sctp 132 SCTP # Stream Control Transmission Protocol |
| } | | fc 133 FC # Fibre Channel |
| | | </div> |
| case "$1" in | |
| start) | |
| process_options
| |
| log_action_begin_msg "Configuring network interfaces"
| |
| if ifup -a; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| ;;
| |
| | |
| stop)
| |
| if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
| |
| grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then
| |
| log_warning_msg "not deconfiguring network interfaces: network shares still mounted."
| |
| exit 0
| |
| fi
| |
| | |
| log_action_begin_msg "Deconfiguring network interfaces"
| |
| if ifdown -a --exclude=lo; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| ;;
| |
|
| |
| force-reload|restart) | |
| process_options
| |
| log_action_begin_msg "Reconfiguring network interfaces"
| |
| ifdown -a --exclude=lo || true
| |
| if ifup -a --exclude=lo; then
| |
| log_action_end_msg $?
| |
| else
| |
| log_action_end_msg $?
| |
| fi
| |
| ;;
| |
| | |
| *) | |
| echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
| |
| exit 1
| |
| ;;
| |
| esac | |
| | |
| exit 0
| |
| | |
| ====Carpetes /etc/sysconfig/network/scripts i /etc/sysconfig/network-scripts====
| |
| | |
| A Open Suse els scripts de post o pre instal·lació de xarxa els trobem a la carpeta '''/etc/sysconfig/network/scripts'''. A Fedora sovint es troben a /etc/sysconfig/network-scripts. El nom d'aquests fitxers segueix la lògica següent:
| |
| | |
| *ifdown i ifup: són links a les comanda ifdown/ifup
| |
| *ifup-xxxx: On xxxx és el nom d'un servei o aplicació Linux. Per tant, l'script ifup-xxxx és l'script que s'executa referent a aquesta aplicació quan s'engega la xarxa. Exemple ifup-ippp.
| |
| *ifdown-xxxx: On xxxx és el nom d'un servei o aplicació Linux. Per tant, l'script ifdown-xxxx és l'script que s'executa referent a aquesta aplicació quan s'apaga la xarxa.
| |
| | |
| ===/etc/init.d/loopback===
| |
| | |
| Igual que '''/etc/init.d/networking''' és un script de control de serveis ( init scripts) de [http://en.wikipedia.org/wiki/System_V UNIX System V]. En aquesta cas s'encarrega de configurar la interfície de loopback. Permet controlar el servei d'interfície de loopback.
| |
| | |
| El link '''/etc/rcS.d/S08loopback''' és l'encarregat d'iniciar la interfície de loopbacken Sistemes Debian seguint el sistema d' scripts d'inicialització de SystemV.
| |
| | |
| Podeu consultar més sobre els serveis i dimonis Linux a l'article [[Configuració de serveis en Linux. Daemons.]]
| |
| | |
| *'''Paquet que el proporciona:''' netbase
| |
| | |
| ===/etc/sysconfig/network===
| |
| | |
| En sistemes RED HAT/Fedora o similars aquest fitxer és el que conté la configuració de xarxa (equivalent del fitxer '''/etc/network/interfaces''' en Sistemes Debian). Un exemple de configuració estàtica seria:
| |
| | |
| NETWORKING=yes | |
| FORWARD_IPV4=false | |
| HOSTNAME=milinux.localdomain | |
| DOMAINAME=localdomain | |
| GATEWAY=10.0.0.1 | |
| GATEWAYDEV=eth0 | |
| IPADDR=10.0.0.120 | |
| NETMASK=255.0.0.0 | |
| NETWORK=10.0.0.0 | |
| BROADCAST=10.255.255.255
| |
| ONBOOT=yes
| |
|
| |
|
| ===/etc/sysctl.conf=== | | ===/etc/services=== |
|
| |
|
| Controla paràmetres del kernel:
| | Conté una llista dels noms de serveis reconeguts pel sistema (protocols a nivell aplicació). |
|
| |
|
| $ cat /etc/sysctl.conf
| | Un extracte del fitxer: |
| | | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| El podem utilitzar per activar ip_forwarding:
| | tcpmux 1/tcp # TCP port service multiplexer |
| | | echo 7/tcp |
| ... | | echo 7/udp |
| # Uncomment the next line to enable packet forwarding for IPv4 | | discard 9/tcp sink null |
| #net.ipv4.ip_forward=1 | | discard 9/udp sink null |
| ... | | systat 11/tcp users |
| | | daytime 13/tcp |
| Consulteu l'article [[Sysctl._Tunning_del_kernel]].
| | daytime 13/udp |
| | | netstat 15/tcp |
| ===Carpeta /etc/sysconfig/networking===
| | qotd 17/tcp quote |
| | | msp 18/tcp # message send protocol |
| En sistemes RED HAT/fedora trobem en aquesta carpeta els perfils de xarxa i/o els fitxers ifcfg-xxx amb la configuració de la xarxa.
| | msp 18/udp |
| | | chargen 19/tcp ttytst source |
| ===Carpeta /etc/sysconfig/network===
| | chargen 19/udp ttytst source |
| | | ftp-data 20/tcp |
| Aquesta carpeta també s'utilitza en sistemes SUSE o derivats (openSuse, Linkat....)
| | ftp 21/tcp |
| | | fsp 21/udp fspd |
| *Sistema: RED HAT
| | ssh 22/tcp # SSH Remote Login Protocol |
| *'''Paquet:''' ?
| | ssh 22/udp |
| | | telnet 23/tcp |
| ===/etc/sysconfig/network/config===
| | smtp 25/tcp mail |
| | | time 37/tcp timserver |
| En sistemes com OpenSUSE hi ha paràmetres generals de configuració de xarxa.
| | time 37/udp timserver |
| | | rlp 39/udp resource # resource location |
| ===Fitxers ifcfg-xxx===
| | nameserver 42/tcp name # IEN 116 |
| | | whois 43/tcp nicname |
| Els sistemes RED HAT, Fedora i Suse guarden la configuració de les interfícies de xarxa als fitxers ifcfg-xxx. Depenent de la distribució, de si s'utilitzen perfils o no i altres temes, aquests fitxers poden estar en diferents localitzacions (carpetes). Les xxxx del nom del fitxer se substitueixen pel nom del dispositiu de xarxa. Per exemple:
| | tacacs 49/tcp # Login Host Protocol (TACACS) |
| | | tacacs 49/udp |
| *loopback: ifcfg-lo | | re-mail-ck 50/tcp # Remote Mail Checking Protocol |
| *eth0: ifcfg-eth0 | | re-mail-ck 50/udp |
| *eth1: ifcfg-eth1 | | domain 53/tcp nameserver # name-domain server |
| | | domain 53/udp nameserver |
| Altres noms són possibles (per exemple utilitzant identificadors ifcfg-eth-id-00\:0c\:29\:d3\:47\:00). Aquests fitxers de configuració contenen parells de valors.
| | mtp 57/tcp # deprecated |
| | | tacacs-ds 65/tcp # TACACS-Database Service |
| A SUSE aquests fitxers es localitzen a la carpeta '''/etc/sysconfig/network'''
| | tacacs-ds 65/udp |
| | | bootps 67/tcp # BOOTP server |
| SUSE també ofereix un fitxer d'exemple (template) de configuració. Podem consultar aquest "template" per conèixer la utilitat de cadascun dels possibles paràmetres. També podem consultar l'entrada de manual de Linux man ifcfg
| | bootps 67/udp |
| | | bootpc 68/tcp # BOOTP client |
| Exemple d'interfície configurada amb DHCP:
| | bootpc 68/udp |
| | | tftp 69/udp |
| BOOTPROTO='dhcp' | | gopher 70/tcp # Internet Gopher |
| BROADCAST= | | gopher 70/udp |
| ETHTOOL_OPTIONS= | | rje 77/tcp netrjs |
| IPADDR= | | finger 79/tcp |
| MTU= | | www 80/tcp http # WorldWideWeb HTTP |
| NAME='AMD PCnet - Fast 79C971' | | www 80/udp # HyperText Transfer Protocol |
| NETMASK='255.255.255.0' | | </div> |
| NETWORK= | | 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: |
| REMOTE_IPADDR= | |
| STARTMODE='auto' | |
| UNIQUE='rBUF.weGuQ9ywYPF'
| |
| USERCONTROL='no'
| |
| _nm_name='bus-pci-0000:00:10.0'
| |
| )
| |
|
| |
|
| Exemple d'interfície amb configuracio estàtica:
| | $ cat /etc/services | grep smtp |
| | smtp 25/tcp mail |
| | ssmtp 465/tcp smtps # SMTP over SSL |
|
| |
|
| DEVICE=eth0
| | També es pot utilitzar al revés per conèixer el protocol més usual per a un port donat: |
| IPADDR=208.164.186.1
| |
| NETMASK=255.255.255.0
| |
| NETWORK=208.164.186.0
| |
| BROADCAST=208.164.186.255
| |
| ONBOOT=yes
| |
| BOOTPROTO=none
| |
| USERCTL=no
| |
|
| |
|
| Configuració de loopback a Open Suse:
| | $ 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: |
|
| |
|
| sergi@linux-ngx8:/etc/sysconfig/network> cat ifcfg-lo | | $ netstat -a |
| # Loopback (lo) configuration | | Active Internet connections (servers and established) |
| IPADDR=127.0.0.1 | | Proto Recv-Q Send-Q Local Address Foreign Address State |
| NETMASK=255.0.0.0 | | tcp 0 0 localhost:2208 *:* LISTEN |
| NETWORK=127.0.0.0 | | tcp 0 0 *:ldap *:* LISTEN |
| BROADCAST=127.255.255.255 | | tcp 0 0 localhost:47301 *:* LISTEN |
| STARTMODE=onboot | | tcp 0 0 localhost:mysql *:* LISTEN |
| USERCONTROL=no | | tcp 0 0 *:11211 *:* LISTEN |
| | tcp 0 0 localhost:ipp *:* LISTEN |
| | tcp 0 0 localhost:postgresql *:* LISTEN |
| | tcp 0 0 *:smtp *:* LISTEN |
|
| |
|
| *'''Manual''': man ifcfg
| | 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/sysconfig/networking/profiles=== | | ===/etc/host.conf=== |
|
| |
|
| Conté els perfils de xarxa de la màquina RED HAT/Fedora. El perfil per defecte és default /etc/sysconfig/networking/profiles/default. Els perfils poden sobrescriure les dades de configuració de xarxa generals (fitxer '''/etc/sysconfig/network'''). | | Conté la manera per defecte de resoldre els noms i si es permeten més d'una IP en el fitxer hosts |
|
| |
|
| ===/etc/protocols=== | | ===/etc/hosts=== |
|
| |
|
| Aquest fitxer guarda els noms de protocols de TRANPORT utilitzats (o que suporta) aquest sistema.
| | Conté una llista de noms i IPs coneguts per la màquina, de manera que no fa falta utilitzar un servei [[DNS]] |
|
| |
|
| $ cat /etc/protocols | | ===/etc/hosts.allow i /etc/hosts.deny=== |
| # Internet (IP) protocols | | |
| | 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 |
| # | | # |
| # Updated from http://www.iana.org/assignments/protocol-numbers and other | | # If you're going to protect the portmapper use the name "portmap" for the |
| # sources. | | # daemon name. Remember that you can only use the keyword "ALL" and IP |
| # New protocols will be added on request if they have been officially | | # addresses (NOT host or domain names) for the portmapper, as well as for |
| # assigned by IANA and are not historical. | | # rpc.mountd (the NFS mount daemon). See portmap(8), rpc.mountd(8) and |
| # If you need a huge list of used numbers please install the nmap package.
| | # /usr/share/doc/portmap/portmapper.txt.gz for further information. |
| | | # |
| ip 0 IP # internet protocol, pseudo protocol number
| | |
| #hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883] | | $ cat /etc/hosts.deny |
| icmp 1 ICMP # internet control message protocol
| | # /etc/hosts.deny: list of hosts that are _not_ allowed to access the system. |
| igmp 2 IGMP # Internet Group Management | | # See the manual pages hosts_access(5), hosts_options(5) |
| ggp 3 GGP # gateway-gateway protocol | | # and /usr/doc/netbase/portmapper.txt.gz |
| ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP) | | # |
| st 5 ST # ST datagram mode
| | # Example: ALL: some.host.name, .some.domain |
| tcp 6 TCP # transmission control protocol | | # ALL EXCEPT in.fingerd: other.host.name, .other.domain |
| egp 8 EGP # exterior gateway protocol | | # |
| igp 9 IGP # any private interior gateway (Cisco) | | # If you're going to protect the portmapper use the name "portmap" for the |
| pup 12 PUP # PARC universal packet protocol | | # daemon name. Remember that you can only use the keyword "ALL" and IP |
| udp 17 UDP # user datagram protocol
| | # addresses (NOT host or domain names) for the portmapper. See portmap(8) |
| hmp 20 HMP # host monitoring protocol
| | # and /usr/doc/portmap/portmapper.txt.gz for further information. |
| xns-idp 22 XNS-IDP # Xerox NS IDP | | # |
| rdp 27 RDP # "reliable datagram" protocol | | # The PARANOID wildcard matches any host whose name does not match its |
| iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905] | | # address. |
| xtp 36 XTP # Xpress Transfer Protocol | | |
| ddp 37 DDP # Datagram Delivery Protocol
| | # You may wish to enable this to ensure any programs that don't |
| idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport
| | # validate looked up hostnames still leave understandable logs. In past |
| ipv6 41 IPv6 # Internet Protocol, version 6
| | # versions of Debian this has been the default. |
| ipv6-route 43 IPv6-Route # Routing Header for IPv6
| | # ALL: PARANOID |
| ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 | | </diV> |
| idrp 45 IDRP # Inter-Domain Routing Protocol | | |
| rsvp 46 RSVP # Reservation Protocol | | ===/etc/resolv.conf=== |
| gre 47 GRE # General Routing Encapsulation | | |
| esp 50 IPSEC-ESP # Encap Security Payload [RFC2406] | | Llista dels DNS als que demanar els noms de domini. [https://wiki.archlinux.org/index.php/Resolv.conf_(Espa%C3%B1ol)] |
| ah 51 IPSEC-AH # Authentication Header [RFC2402] | | |
| skip 57 SKIP # SKIP | | ===Fitxer /etc/ethers=== |
| 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
| |
|
| |
|
| *'''Paquet que el proporciona:''' netbase
| | Es pot utilitzar aquest fitxer per no haver d'utilitzar la mac cada cop que es fa un wakeonlan: |
| *'''Manual''': man protocols
| |
|
| |
|
| ===/etc/services=== | | $ cat /etc/ethers |
| | | 08:00:20:00:61:CA nommaquina |
| Conté una llista dels noms de serveis reconeguts pel sistema (protocols a nivell aplicació).
| | |
| | *[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=== |
|
| |
|
| Un extracte del fitxer:
| | Conté el nom de la màquina: |
|
| |
|
| tcpmux 1/tcp # TCP port service multiplexer | | $ cat /etc/hostname |
| echo 7/tcp
| | casa-linux |
| echo 7/udp
| | |
| discard 9/tcp sink null
| | La comanda hostname ens proporciona el nom de la màquina. |
| discard 9/udp sink null
| | |
| systat 11/tcp users
| | ===/proc/net/arp=== |
| daytime 13/tcp
| | |
| daytime 13/udp
| | 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). |
| netstat 15/tcp
| | |
| qotd 17/tcp quote
| | $ cat /proc/net/arp |
| msp 18/tcp # message send protocol
| | IP address HW type Flags HW address Mask Device |
| msp 18/udp
| | 10.0.2.101 0x1 0x2 00:11:09:CE:25:8E * eth0 |
| chargen 19/tcp ttytst source
| | 192.168.0.240 0x1 0x2 00:12:17:FC:98:87 * eth1 |
| chargen 19/udp ttytst source | | 10.0.2.1 0x1 0x2 00:50:7F:1F:2C:A3 * eth0 |
| ftp-data 20/tcp
| | 10.0.2.107 0x1 0x2 00:11:09:CE:26:3E * eth0 |
| ftp 21/tcp
| | 10.0.3.234 0x1 0x2 00:14:22:09:AA:3F * eth0 |
| 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
| |
|
| |
|
| 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:
| | Ens dóna el mateix resultat que la comanda arp (encara que la comanda arp no està sempre instal·lada) |
|
| |
|
| $ cat /etc/services | grep smtp
| | '''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ó. |
| 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:
| | El podem utilitzar per obtenir les MACS de tots els dispositius d'una xarxa d'àrea local. Per això primer utilitzem nmap |
|
| |
|
| $ cat /etc/services | grep 80 | | sudo nmap 192.168.0.1-255 |
| 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:
| | i després consultem la taula arp amb |
|
| |
|
| $ netstat -a | | $ cat /proc/net/arp |
| 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'''.
| | o la comanda |
|
| |
|
| *'''Paquet que el proporciona:''' netbase
| | $ arp |
| *'''Manual''': man services
| |
|
| |
|
| ===/etc/rpc=== | | ===/etc/udev/rules.d/70-persistent-net.rules=== |
|
| |
|
| Tradueix noms de serveis de programes rpc (remote procedure control) en els seus corresponents números rpc
| | 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/rpc | | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| # This file contains user readable names that can be used in place of rpc | | $ cat /etc/udev/rules.d/70-persistent-net.rules |
| # program numbers. | | # 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" |
| | | |
| portmapper 100000 portmap sunrpc | | # PCI device 0x10ec:0x8167 (r8169) |
| rstatd 100001 rstat rstat_svc rup perfmeter | | SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:a3:8d", NAME="eth2" |
| rusersd 100002 rusers | | |
| nfs 100003 nfsprog | | # PCI device 0x10ec:0x8167 (r8169) |
| ypserv 100004 ypprog | | SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:55", NAME="eth3" |
| ......... | | |
| | | # PCI device 0x10ec:0x8167 (r8169) |
| *'''Paquet que el proporciona:''' netbase | | SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:04", NAME="eth4" |
| *'''Manual''': man rpc
| | |
| | | # PCI device 0x10ec:0x8167 (r8169) |
| ===/etc/host.conf=== | | SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:11", NAME="eth5" |
| | | |
| Vegeu [[Client_DNS#.2Fetc.2Fhosts.conf]]
| | # PCI device 0x10ec:0x8167 (r8169) |
| | | SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:30:05:eb:38:0c", NAME="eth6" |
| ===/etc/hosts=== | | </div> |
| | | |
| Vegeu [[Client_DNS#.2Fetc.2Fhosts]]
| | ==== Canviar el nom d'una interfície de xarxa ==== |
| | |
| ===/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.
| | Es pot fer modificant el fitxer ''/etc/udev/rules.d/70-persistent-net.rules'': |
|
| |
|
| $ cat /etc/hosts.allow
| | ===/etc/udev/rules.d/75-persistent-net-generator.rules=== |
| # /etc/hosts.allow: list of hosts that are allowed to access the system.
| | |
| # See the manual pages hosts_access(5), hosts_options(5)
| | $ cat /etc/udev/rules.d/75-persistent-net-generator.rules |
| # and /usr/doc/netbase/portmapper.txt.gz
| | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| #
| | # these rules generate rules for persistent network device naming |
| # 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/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 | | ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \ |
| # validate looked up hostnames still leave understandable logs. In past
| | NAME!="?*", DRIVERS=="?*", GOTO="persistent_net_generator_do" |
| # versions of Debian this has been the default.
| | |
| # ALL: PARANOID
| | GOTO="persistent_net_generator_end" |
| | | LABEL="persistent_net_generator_do" |
| *'''Manual''': man hosts.allow
| |
| *'''Manual''': man hosts.deny
| |
| | |
| | |
| ===/etc/resolv.conf=== | |
| | |
| Vegeu [[Client_DNS#.2Fetc.2Fresolv.conf]]
| |
| | |
| ===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] | | # 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/networks=== | | ===/etc/udev/rules.d/85-ifupdown.rules=== |
| | | <div class="toccolours mw-collapsible mw-collapsed" style="overflow: hidden;"> |
| Fitxer opcional (sovint no el tenim). Similar al fitxer '''/etc/hosts''' però per especificar xarxes. Exemple
| | $ /etc/udev/rules.d/85-ifupdown.rules |
| | | # This file causes network devices to be brought up or down as a result |
| loopback 127.0.0.0 | | # of hardware being added or removed, including that which isn't ordinarily |
| localdomain 10.0.0.0 | | # removable. |
| | | # See udev(7) for syntax. |
| '''Manual:'''
| | |
| | | SUBSYSTEM=="net", DRIVERS=="?*", GOTO="net_start" |
| *man networks
| | GOTO="net_end" |
| | | |
| ===/etc/hostname=== | | 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> |
|
| |
|
| Conté el nom de la màquina:
| | ===/proc/net/route=== |
|
| |
|
| $ cat /etc/hostname
| | 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. |
| casa-linux
| |
|
| |
|
| La comanda hostname ens proporciona el nom de la màquina.
| | ===/etc/nscd.conf=== |
|
| |
|
| ===/etc/iftab===
| | És el fitxer de configuració del servei NSCD (Name Service Cache Daemon) en tots els sistemes. |
|
| |
|
| Aquest fitxer permetia assignar noms fixes a les interfícies de xarxa. Actualment s'ha substituit per udev,
| | ===/etc/nsswitch.conf=== |
|
| |
|
| $ cat /etc/iftab
| | ===/etc/network/options=== |
| # This file is no longer used and has benn automatically replaced
| |
| # See /etc/udev/rules.d/70-persistent-net.rules for more information
| |
| #
| |
|
| |
| # This file assigns persistent names to network interfaces
| |
| # see iftab(5) for syntax
| |
|
| |
| ##eth0 mac 08:00:27:01:20:85
| |
|
| |
|
| ===/proc/net/arp===
| | 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: |
|
| |
|
| 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 /etc/network/options |
| | ip_forward=no |
| | spoofprotect=yes |
| | syncookies=no |
|
| |
|
| $ cat /proc/net/arp
| | ''''Recursos''': |
| IP address HW type Flags HW address Mask Device
| | *http://openskills.info/infobox.php?ID=1099 |
| 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)
| | ===/proc/sys/net/ipv4=== |
|
| |
|
| '''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ó.
| | 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: |
|
| |
|
| El podem utilitzar per obtenir les MACS de tots els dispositius d'una xarxa d'àrea local. Per això primer utilitzem nmap
| | /proc/sys/net/ipv4 |
|
| |
|
| sudo nmap 192.168.0.1-255
| | ====/proc/sys/net/ipv4/ip_forward==== |
|
| |
|
| i després consultem la taula arp amb
| | Indica si la màquina fa o no les funcions d'[[Capa_de_xarxa#Routers|Encaminador]]. |
|
| |
|
| $ cat /proc/net/arp
| | ===/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]]. |
|
| |
|
| o la comanda
| | ===/etc/bind/named.conf=== |
|
| |
|
| $ arp
| | Veieu la secció '''/etc/bind/named.conf''' de l'article sobre [[DNS]]. |
|
| |
|
| ===/etc/udev/rules.d/70-persistent-net.rules=== | | ===/etc/bind/named.conf.local=== |
|
| |
|
| La gestió del nom de les interfícies de xarxa, abans es feia amb [[ifrename]], però ha estat substituit per udev:
| | Veieu la secció '''/etc/bind/named.conf.local''' de l'article sobre [[DNS]]. |
|
| |
|
| $ sudo apt-get install [[ifrename]]
| | ===/etc/bind/named.conf.options=== |
| S'està llegint la llista de paquets... Fet
| |
| S'està construint l'arbre de dependències
| |
| S'està llegint la informació de l'estat... Fet
| |
| El paquet ifrename no té versió disponible, però un altre paquet
| |
| en fa referència. Això normalment vol dir que el paquet falta,
| |
| s'ha tornat obsolet o només és disponible des d'una altra font.
| |
| '''Tot i que els següents paquets el reemplacen:'''
| |
| '''udev'''
| |
| E: El paquet ifrename no té candidat d'instal·lació
| |
|
| |
|
| Ara 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 (disc dur de l'escola):
| | Veieu la secció '''/etc/bind/named.conf.options''' de l'article sobre [[DNS]]. |
|
| |
|
| {{important|Les adreçes MAC s'han de posar en minúscules o encara millor copiar/pegar de la MAC que apareix amb ifconfig. És case sensitive!}}
| | = How-Tos = |
|
| |
|
| $ cat /etc/udev/rules.d/70-persistent-net.rules
| | == Configurar múltiples IPs en una targeta estàticament == |
| # This file maintains persistent names for network interfaces.
| | |
| # See udev(7) for syntax.
| | 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. |
| #
| |
| # 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"
| |
|
| |
|
| A Debian Etch el fitxer s'anomena /etc/udev/rules.d/z25_persistent-net.rules:
| | 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 |
|
| |
|
| $ cat /etc/udev/rules.d/z25_persistent-net.rules
| | auto eth0:0 |
| # This file was automatically generated by the /lib/udev/write_net_rules
| | allow-hotplug eth0:0 |
| # program, probably run by the persistent-net-generator.rules rules file.
| | iface eth0:0 inet static |
| #
| | address 192.168.1.43 |
| # You can modify it, as long as you keep each rule on a single line.
| | netmask 255.255.255.0 |
|
| |
| # PCI device 0x8086:0x2449 (eepro100)
| |
| SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:c0:a8:f9:7b:87", NAME="eth0"
| |
|
| |
| # PCI device 0x8086:0x2449 (e100)
| |
| SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:c0:a8:f9:7d:3d", NAME="eth0"
| |
|
| |
| # PCI device 0x8086:0x2449 (e100)
| |
| SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:c0:a8:f9:82:10", NAME="eth0"
| |
|
| |
| # PCI device 0x8086:0x2449 (e100)
| |
| SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:c0:a8:f9:89:2e", NAME="eth1"
| |
|
| |
|
| '''NOTA''': Exemple extret de l'aula Linux.
| | auto eth0:1 |
| | allow-hotplug eth0:1 |
| | iface eth0:1 inet static |
| | address 192.168.1.44 |
| | netmask 255.255.255.0 |
| | </pre> |
|
| |
|
| ==== Canviar el nom d'una interfície de xarxa ====
| | No obstant, aquesta configuració no les crea de la mateixa manera que faria '''id addr add''' on no fa falta que tinga diferent nom. |
|
| |
|
| Es pot fer modificant el fitxer [[/etc/udev/rules.d/70-persistent-net.rules]]:
| | 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 |
|
| |
|
| $ cat /etc/udev/rules.d/70-persistent-net.rules
| | iface eth0 inet static |
| ...
| | address 192.168.1.43 |
| # Virtual network (eth0--> intranet)
| | netmask 255.255.255.0 |
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3E:00:AB:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="intranet"
| |
|
| |
| # Virtual network (eth1--> aula1)
| |
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3E:00:AB:01", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="aula1"
| |
|
| |
| # Virtual network (eth2--> aula2)
| |
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3E:00:AB:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="aula2"
| |
|
| |
| # Virtual network (eth3--> aula3)
| |
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3E:00:AB:03", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="aula3"
| |
|
| |
| # Virtual network (eth4--> internet)
| |
| SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3E:00:AB:04", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="internet"
| |
|
| |
|
| Consulteu:
| | 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. |
|
| |
|
| [[Tallafocs_Linux#domU]]
| | =Troubleshooting= |
|
| |
|
| En alguns casos he trobat que només canvia algunes targetes de xarxa:
| | ==Test de la xarxa== |
|
| |
|
| ifconfig abans:
| | La següent bateria de comandes pot ser útil per tal de testejar el funcionament de la xarxa |
|
| |
|
| $ sudo ifconfig -a | | $ping yahoo.com # verificar la conexión a Internet |
| eth1 Link encap:Ethernet HWaddr 00:16:3e:00:ab:01
| | $traceroute yahoo.com # rastrear paquetes IP |
| ...
| | $ifconfig # verificar la configuración del |
| intranet Link encap:Ethernet HWaddr 00:16:3e:00:ab:00
| | # anfitrión (host) |
| inet addr:192.168.0.46 Bcast:192.168.0.255 Mask:255.255.255.0
| | $route -n # verificar la configuración de la ruta |
| inet6 addr: fe80::216:3eff:fe00:ab00/64 Scope:Link
| | $dig [@dns-server.com] host.dom [{a|mx|any}] |less |
| UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
| | # verificar registros host.dom DNS [@ dns-server.com] para |
| RX packets:80 errors:0 dropped:0 overruns:0 frame:0
| | # un registro {a|mx|any} |
| TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
| | $ichains -L -n |less # verificar filtrado de paquetes (kernel 2.2) |
| collisions:0 txqueuelen:1000
| | $iptables -L -n |less # verificar filtrado de paquetes (kernel 2.4) |
| RX bytes:5196 (5.1 K
| | $netstat -a # mostrar todos los puertos abiertos |
| | | $netstat -l --inet # mostrar los puertos en escucha |
| En canvi al executar:
| | $netstat -ln --tcp # mostrar puertos tcp en escucha (numérico) |
| | |
| $ sudo udevadm test /sys/class/net/eth1 | |
| ...
| |
| rename_netif: changing net interface name from 'eth1' to 'aula1'
| |
| udev_event_execute_rules: renamed netif to 'aula1'
| |
| udev_event_execute_rules: changed devpath to '/devices/vif-1/net/aula1'
| |
| udevadm_test: UDEV_LOG=6
| |
| udevadm_test: DEVPATH=/devices/vif-1/net/aula1
| |
| udevadm_test: INTERFACE=aula1
| |
| udevadm_test: IFINDEX=3
| |
| udevadm_test: ACTION=add
| |
| udevadm_test: SUBSYSTEM=net
| |
| udevadm_test: INTERFACE_OLD=eth1
| |
| | |
| Ja li canvia el nom de eth1 a aula1.
| |
| | |
| ===/etc/udev/rules.d/75-persistent-net-generator.rules===
| |
|
| |
| $ cat /etc/udev/rules.d/75-persistent-net-generator.rules | |
| # these rules generate rules for persistent network device naming
| |
|
| |
| ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \
| |
| NAME!="?*", DRIVERS=="?*", GOTO="persistent_net_generator_do"
| |
|
| |
| 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"
| |
| | |
| A Debian Etch:
| |
| | |
| $ cat /etc/udev/rules.d/z45_persistent-net-generator.rules
| |
| # These rules generate rules to keep network interface names unchanged
| |
| # across reboots write them to /etc/udev/rules.d/z25_persistent-net.rules. | |
| #
| |
| # The default name for this file is z45_persistent-net-generator.rules.
| |
| | |
| ACTION!="add", GOTO="persistent_net_generator_end"
| |
| SUBSYSTEM!="net", GOTO="persistent_net_generator_end"
| |
|
| |
| # ignore the interface if a name has already been set
| |
| NAME=="?*", GOTO="persistent_net_generator_end"
| |
|
| |
| # ignore "secondary" raw interfaces of the madwifi driver
| |
| KERNEL=="ath*", ATTRS{type}=="802", GOTO="persistent_net_generator_end"
| |
|
| |
| # provide nice comments for the generated rules
| |
| SUBSYSTEMS=="pci", \
| |
| ENV{COMMENT}="PCI device $attr{vendor}:$attr{device}"
| |
| SUBSYSTEMS=="usb", \
| |
| ENV{COMMENT}="USB device $attr{idVendor}:$attr{idProduct}"
| |
| SUBSYSTEMS=="ieee1394", \
| |
| ENV{COMMENT}="Firewire device $attr{host_id}"
| |
| SUBSYSTEMS=="xen", \
| |
| ENV{COMMENT}="Xen virtual device"
| |
| ENV{COMMENT}=="", \
| |
| ENV{COMMENT}="Unknown $env{SUBSYSTEM} device ($env{DEVPATH})"
| |
| ATTRS{driver}=="?*", \
| |
| ENV{COMMENT}="$env{COMMENT} ($attr{driver})"
| |
|
| |
| # ignore interfaces without a driver link like bridges and VLANs
| |
| KERNEL=="eth*|ath*|wlan*|ra*|sta*", DRIVERS=="?*",\
| |
| IMPORT{program}="write_net_rules $attr{address}"
| |
|
| |
| ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" | |
|
| |
| LABEL="persistent_net_generator_end" | |
| | |
| ===/etc/udev/rules.d/85-ifupdown.rules===
| |
| | |
| $ /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"
| |
| | |
| ===/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.
| |
| | |
| $ cat /proc/net/route
| |
| Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
| |
| vmnet8 00C4A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
| |
| eth0 0001A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
| |
| vmnet1 00FCA8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
| |
| eth0 00000000 0101A8C0 0003 0 0 0 00000000 0 0 0
| |
| | |
| Ens dóna el mateix resultat que la comanda route (el format està però en hexadecimal).
| |
| | |
| '''NOTA:''' No s'ha d'editar aquest fitxer directament. Cal utilitzar 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===
| |
| | |
| Vegeu [[Client_DNS#.2Fetc.2Fnsswitch.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'[[Encaminament|Encaminador]].
| |
| | |
| ===/proc/sys/net/ipv6===
| |
| | |
| Equivalent a l'anterior però per a la versió 6 del protocol IP.
| |
| | |
| =/etc/NetworkManager/dispatcher.d/01ifupdown=
| |
|
| |
| $ cat /etc/NetworkManager/dispatcher.d/01ifupdown | |
| #!/bin/sh -e
| |
| # Script to dispatch NetworkManager events
| |
| #
| |
| # Runs ifupdown scripts when NetworkManager fiddles with interfaces.
| |
|
| |
| if [ -z "$1" ]; then
| |
| echo "$0: called with no interface" 1>&2
| |
| exit 1;
| |
| fi
| |
|
| |
| # Fake ifupdown environment
| |
| export IFACE="$1"
| |
| export LOGICAL="$1" | |
| export ADDRFAM="NetworkManager"
| |
| export METHOD="NetworkManager"
| |
| export VERBOSITY="0"
| |
|
| |
| # Run the right scripts
| |
| case "$2" in
| |
| up)
| |
| export MODE="start"
| |
| export PHASE="up"
| |
| exec run-parts /etc/network/if-up.d
| |
| ;;
| |
| down)
| |
| export MODE="stop"
| |
| export PHASE="down"
| |
| exec run-parts /etc/network/if-down.d
| |
| ;;
| |
| pre-up)
| |
| export MODE="start"
| |
| export PHASE="pre-up"
| |
| exec run-parts /etc/network/if-pre-up.d
| |
| ;;
| |
| post-down)
| |
| export MODE="stop"
| |
| export PHASE="post-down"
| |
| exec run-parts /etc/network/if-post-down.d
| |
| ;;
| |
| *)
| |
| echo "$0: called with unknown action \`$2'" 1>&2
| |
| exit 1
| |
| ;;
| |
| esac
| |
| | |
| Sembla doncs, que amb Netowrk manager els scripts de les carpetes '''/etc/network/if-x.d''' també s'executen.
| |
| ===/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]].
| |
| | |
| =Configuració gràfica de xarxa a Ubuntu=
| |
| | |
| *[[Tutorial pas a pas configuració xarxa en Ubuntu]]
| |
| | |
| =Configuració gràfica de xarxa en sistemes Red Hat / Fedora=
| |
| | |
| $ system-config-network | |
| | |
| Altres configuradors de la xarxa a Red Hat/Fedora són:
| |
| | |
| *netconfig: Obsolet.
| |
| *system-config-network-tui: Versió de text de system-config-network.
| |
| *system-config-network-druid (Menu System tools - Internet configuration wizard): Wizard pas a pas de configuració de la xarxa.
| |
| | |
| Els fitxers de configuració de la resolució de noms són els mateixos que a Debian. El fitxer '''/etc/hosts''' per a la configuració estàtica i el fitxer '''/etc/resolv.conf''' per a la configuració del client de DNS.
| |
| | |
| Red Hat com Ubuntu, també permet configurar diferents perfils d'accés a xarxa. Els perfils es guarden a la carpeta '''/etc/sysconfig/networking/profiles'''. Cada perfil es guarda en una carpeta amb el nom del perfil. Per exemple, si el perfil és casa tenim una carpeta:
| |
| | |
| /etc/sysconfig/networking/profiles/casa
| |
| | |
| amb la informació de xarxa d'aquest perfil. Al carregar Fedora utilitza el perfil default (/etc/sysconfig/networking/profiles/default). Per canviar de perfil podem executar:
| |
|
| |
|
| $ system-config-network-cmd -p profilename --activate.
| | = Enllaços = |
|
| |
|
| '''Recursos:'''
| | http://arstechnica.com/gadgets/2016/04/the-ars-guide-to-building-a-linux-router-from-scratch/ |
|
| |
|
| *http://openskills.info/infobox.php?ID=247
| | https://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/ |
| | |
| =Configuració gràfica de xarxa en sistemes SUSE (OpenSuse, Linkat...)=
| |
| | |
| La configuració gràfica es pot fer mitjançant la eina de Suse YAst, que normalment trobem al Menu Escriptori i busquem la configuració de la targeta de xarxa. Podem accedir al mateix lloc directament des de la línia de comandes:
| |
| | |
| /sbin/yast2 lan
| |
| | |
| =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
| | https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface |
| $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)
| |
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
Vegeu també l'ordre
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
eth0 Link encap:Ethernet HWaddr 00:30:1B:B7:CD:B6
inet addr:192.168.1.33 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16929 errors:0 dropped:0 overruns:0 frame:0
TX packets:18758 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11958414 (11.4 MiB) TX bytes:3243289 (3.0 MiB)
Interrupt:209
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2051 errors:0 dropped:0 overruns:0 frame:0
TX packets:2051 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:598941 (584.9 KiB) TX bytes:598941 (584.9 KiB)
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01
inet addr:192.168.252.1 Bcast:192.168.252.255 Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
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 eth0
eth0 Link encap:Ethernet HWaddr 00:30:1B:B7:CD:B6
inet addr:192.168.1.33 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16929 errors:0 dropped:0 overruns:0 frame:0
TX packets:18758 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:11958414 (11.4 MiB) TX bytes:3243289 (3.0 MiB)
Interrupt:209
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:
- Apagar una interfície de xarxa:
$ ifconfig eth0 down
# És equivalent a ifdown eth0
- Encendre una interfície de xarxa:
$ 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
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 o mitjançant un paràmetre al fitxer
/etc/network/interfaces.
Mode promiscu
El | 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 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:
$ ifconfig eth0 promisc
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:80:C8:F8:4A:51
inet addr:192.168.99.35 Bcast:192.168.99.255 Mask:255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1412 Metric:1
RX packets:190312 errors:0 dropped:0 overruns:0 frame:0
TX packets:86955 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb)
Interrupt:9 Base address:0x5000
$ ifconfig eth0 -promisc
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:30:1B:B7:CD:B6
inet addr:192.168.1.33 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18444 errors:0 dropped:0 overruns:0 frame:0
TX packets:20307 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13262810 (12.6 MiB) TX bytes:3501026 (3.3 MiB)
Interrupt:209
Activar/desactivar ARP
Consulteu també ARP.
$ ifconfig eth0 -arp
$ ifconfig eth0
Link encap:Ethernet HWaddr 00:80:C8:F8:4A:51
inet addr:192.168.99.35 Bcast:192.168.99.255 Mask:255.255.255.0
UP BROADCAST RUNNING NOARP MULTICAST MTU:1412 Metric:1
RX packets:190312 errors:0 dropped:0 overruns:0 frame:0
TX packets:86955 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb)
Interrupt:9 Base address:0x5000
$ ifconfig eth0 arp
IP aliasing
Permet configurar una targeta de xarxa amb múltiples IPs. Per exemple:
ifconfig eth0 192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0
ifconfig eth0:2 192.168.0.4 broadcast 192.168.0.255 netmask 255.255.255.0
ifconfig eth0:3 192.168.0.5 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. Més informació
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
Aquesta comanda ens permet obtindre informació de les interfícies de xarxa que siguin wireless:
$ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 IEEE 802.11g ESSID:"WLAN_8A"
Mode:Managed Frequency:2.427 GHz Access Point: 00:16:38:89:F6:57
Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Power Management:off
Link Quality=95/100 Signal level=-33 dBm Noise level=-91 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
irda0 no wireless extensions.
sit0 no wireless extensions.
É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:
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:
# Don't bother to restart sshd when lo is configured.
if [ "$IFACE" = lo ]; then
exit 0
fi
# Only run from ifup.
if [ "$MODE" != start ]; then
exit 0
fi
# OpenSSH only cares about inet and inet6. Get ye gone, strange people
# still using ipx.
if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != inet6 ]; then
exit 0
fi
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
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
É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:
$ arping -c 4 192.168.0.10
WARNING: interface is ignored: Operation not permitted
ARPING 192.168.0.10 from 192.168.0.7 eth0
Unicast reply from 192.168.0.10 [00:48:54:8D:58:47] 0.663ms
Unicast reply from 192.168.0.10 [00:48:54:8D:58:47] 0.684ms
Unicast reply from 192.168.0.10 [00:48:54:8D:58:47] 0.681ms
Unicast reply from 192.168.0.10 [00:48:54:8D:58:47] 0.671ms
Sent 4 probes (1 broadcast(s))
Received 4 response(s)
Provocar arp-replys
Primer cal assignar-se una IP (ho podeu fer per IP Aliasing):
$ sudo ip addr add 192.168.9.35 dev wlan0
Ara enviar els paquets ARP-REPLY:
$ sudo arping -q -c 3 -A -I wlan0 192.168.99.35
On:
- -q: sortida silenciosa
- -c: número de peticions enviades
- -A (o -U): arping envia peticions arp-request per defecte. Amb aquesta opció envia peticions ARP-REPLY.
- -I device: Permet indicar la interfície de xarxa.
Els podeu observar amb:
$ sudo tcpdump -c 3 -nni wlan0 arp
...
06:02:50.626330 arp reply 192.168.99.35 is-at 0:80:c8:f8:4a:51 (0:80:c8:f8:4a:51)
06:02:51.622727 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
Els podeu observar amb:
$ sudp tcpdump -c 3 -nni eth0 arp
Detectar duplicats
$ sudo arping -D -I eth0 192.168.99.147; echo $?
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:
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.
font amb més informació
[1]
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.
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.
NOTA: sovint els asterisc es poden solucionar executant traceroute com a superusuari.
Hi ha algunes utilitats relacionades amb traceroute que poden ser interessants:
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
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.
$ ipcalc 192.168.0.1
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet
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).
$ ipcalc 192.168.0.1/24
És equivalent a ipcalc 192.168.0.1
$ ipcalc 192.168.0.1/255.255.128.0
Address: 192.168.0.1 11000000.10101000.0 0000000.00000001
Netmask: 255.255.128.0 = 17 11111111.11111111.1 0000000.00000000
Wildcard: 0.0.127.255 00000000.00000000.0 1111111.11111111
=>
Network: 192.168.0.0/17 11000000.10101000.0 0000000.00000000
HostMin: 192.168.0.1 11000000.10101000.0 0000000.00000001
HostMax: 192.168.127.254 11000000.10101000.0 1111111.11111110
Broadcast: 192.168.127.255 11000000.10101000.0 1111111.11111111
Hosts/Net: 32766 Class C, Private Internet
Ipcalc és molt útil per al càlcul de subxarxes. Per fer subnetting, per exemple dividir una xarxa de màscara 24 en 4 subxarxes de màscara 26 podem utilitzar:
$ ipcalc 192.168.0.1/24 26
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet
Subnets after transition from /24 to /26
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111
1.
Network: 192.168.0.0/26 11000000.10101000.00000000.00 000000
HostMin: 192.168.0.1 11000000.10101000.00000000.00 000001
HostMax: 192.168.0.62 11000000.10101000.00000000.00 111110
Broadcast: 192.168.0.63 11000000.10101000.00000000.00 111111
Hosts/Net: 62 Class C, Private Internet
2.
Network: 192.168.0.64/26 11000000.10101000.00000000.01 000000
HostMin: 192.168.0.65 11000000.10101000.00000000.01 000001
HostMax: 192.168.0.126 11000000.10101000.00000000.01 111110
Broadcast: 192.168.0.127 11000000.10101000.00000000.01 111111
Hosts/Net: 62 Class C, Private Internet
3.
Network: 192.168.0.128/26 11000000.10101000.00000000.10 000000
HostMin: 192.168.0.129 11000000.10101000.00000000.10 000001
HostMax: 192.168.0.190 11000000.10101000.00000000.10 111110
Broadcast: 192.168.0.191 11000000.10101000.00000000.10 111111
Hosts/Net: 62 Class C, Private Internet
4.
Network: 192.168.0.192/26 11000000.10101000.00000000.11 000000
HostMin: 192.168.0.193 11000000.10101000.00000000.11 000001
HostMax: 192.168.0.254 11000000.10101000.00000000.11 111110
Broadcast: 192.168.0.255 11000000.10101000.00000000.11 111111
Hosts/Net: 62 Class C, Private Internet
Subnets: 4
Hosts: 248
També es pot utilitzar a l'inrevés, per fer supernetting:
$ ipcalc 192.168.0.1/24 23
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet
Supernet
Netmask: 255.255.254.0 = 23 11111111.11111111.1111111 0.00000000
Wildcard: 0.0.1.255 00000000.00000000.0000000 1.11111111
Network: 192.168.0.0/23 11000000.10101000.0000000 0.00000000
HostMin: 192.168.0.1 11000000.10101000.0000000 0.00000001
HostMax: 192.168.1.254 11000000.10101000.0000000 1.11111110
Broadcast: 192.168.1.255 11000000.10101000.0000000 1.11111111
Hosts/Net: 510 Class C, Private Internet
Vegeu també:
Recursos:
- Paquet: Xarxes_Linux#Paquet_ipcalc ipcalc
- Path: /usr/bin/ipcalc (podeu trobar el camí de la comanda executant which ipcalc)
- Manual: man ipcalc
sipcalc
Sipcalc és com ipcalc un calculador de (sub)xarxes IP que té dos parts:
- Línia de comandes
- Web (cgi)
sipcalc suporta tant xarxes Ipv4 com IPv6.
Un exemple:
$ sipcalc 192.168.204.1/24
-[ipv4 : 192.168.204.1/24] - 0
[CIDR]
Host address - 192.168.204.1
Host address (decimal) - 3232287745
Host address (hex) - C0A8CC01
Network address - 192.168.204.0
Network mask - 255.255.255.0
Network mask (bits) - 24
Network mask (hex) - FFFFFF00
Broadcast address - 192.168.204.255
Cisco wildcard - 0.0.0.255
Addresses in network - 256
Network range - 192.168.204.0 - 192.168.204.255
Usable range - 192.168.204.1 - 192.168.204.254
un exemple IPv6:
$ sipcalc 2a02:f4c0::/29
-[ipv6 : 2a02:f4c0::/29] - 0
[IPV6 INFO]
Expanded Address - 2a02:f4c0:0000:0000:0000:0000:0000:0000
Compressed address - 2a02:f4c0::
Subnet prefix (masked) - 2a02:f4c0:0:0:0:0:0:0/29
Address ID (masked) - 0:0:0:0:0:0:0:0/29
Prefix address - ffff:fff8:0:0:0:0:0:0
Prefix length - 29
Address type - Aggregatable Global Unicast Addresses
Network range - 2a02:f4c0:0000:0000:0000:0000:0000:0000 -
2a02:f4c7:ffff:ffff:ffff:ffff:ffff:ffff
L'ajuda:
$ sipcalc -h
sipcalc 1.1.5
Usage: sipcalc [OPTIONS]... <[ADDRESS]... [INTERFACE]... | [-]>
Global options:
-a, --all All possible information.
-d, --resolve Enable name resolution.
-h, --help Display this help.
-I, --addr-int=INT Added an interface.
-n, --subnets=NUM Display NUM extra subnets (starting from
the current subnet). Will display all subnets
in the current /24 if NUM is 0.
-u, --split-verbose Verbose split.
-v, --version Version information.
-4, --addr-ipv4=ADDR Add an ipv4 address.
-6, --addr-ipv6=ADDR Add an ipv6 address.
IPv4 options:
-b, --cidr-bitmap CIDR bitmap.
-c, --classfull-addr Classfull address information.
-i, --cidr-addr CIDR address information. (default)
-s, --v4split=MASK Split the current network into subnets
of MASK size.
-w, --wildcard Display information for a wildcard
(inverse mask).
-x, --classfull-bitmap Classfull bitmap.
IPv6 options:
-e, --v4inv6 IPv4 compatible IPv6 information.
-r, --v6rev IPv6 reverse DNS output.
-S, --v6split=MASK Split the current network into subnets
of MASK size.
-t, --v6-standard Standard IPv6. (default)
Address must be in the "standard" dotted quad format.
Netmask can be given in three different ways:
- Number of bits [/nn]
- Dotted quad [nnn.nnn.nnn.nnn]
- Hex [0xnnnnnnnn | nnnnnnnn]
Interface must be a valid network interface on the system.
If this options is used an attempt will be made to gain the address
and netmask from the specified interface.
Replacing address/interface with '-' will use stdin for reading further
arguments.
Report bugs to <simon@routemeister.net>.
Recursos:
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.
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
Exemples
Configuració de la xarxa. Carpeta /etc/network
/etc/network/interfaces
Aquesta part es considera obsoleta en Ubuntu 18.04, encara que funciona per a moltes necessitats retro-compatibles. Actualment cal utilitzar Netplan.
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)
Exemple de fitxer interfaces totes configurades per DHCP:
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
Exemple de fitxer interfaces amb configuració estàtica:
$ cat /etc/network/interfaces
auto eth1
iface eth1 inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
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:
També es pot canviar la MAC i que sigui permanent al iniciar la interficie
auto eth0
iface eth0 inet dhcp
...
hwaddress ether 08:09:0a:fa:ba:da
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:
$ sudo gunzip /usr/share/doc/ifupdown/examples/network-interfaces.gz
$ cat /usr/share/doc/ifupdown/examples/network-interfaces
Trobareu exemples de configuració del fitxer /etc/network/interfaces per a xarxes wireless a http://acacha.dyndns.org/mediawiki/index.php/Xarxes_Linux_Wireless#.2Fetc.2Fnetwork.2Finterfaces.
Paràmetre allow-hotplug:
Del manual del fitxer interfaces:
Lines beginning with "allow-" are used to identify interfaces that
should be brought up automatically by various subsytems. This may be
done using a command such as "ifup --allow=hotplug eth0 eth1", which
will only bring up eth0 or eth1 if it is listed in an "allow-hotplug"
line. Note that "allow-auto" and "auto" are synonyms.
Sembla que és una línia per evitar problemes amb udev i dispositius connectables en calent (ethernet USB):
S'utilitza per marcar interfícies per tipologies. A Ubuntu per exemple no pareix al fitxer per defecte i a debian si. A Ubuntu el fitxer:
$ cat /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"
Manual:
Recursos:
Exemples
Rutes estàtiques
Consulteu Rutes_estàtiques#Fitxer_.2Fetc.2Fnetwork.2Finterfaces_i_configuraci.C3.B3_de_rutes_est.C3.A0tiques de l'article rutes estàtiques.
Hooks de configuració de la xarxa
A les carpetes:
$ ls /etc/network/if- --> Tabuleu dos cops
if-down.d/ if-post-down.d/ if-pre-up.d/ if-up.d/
Trobareu hooks de la configuració de la xarxa. Els hooks són scripts que s'executen en moment concrets (esdeveniments), en aquest cas els esdeveniment són:
Un exemple d'ús pot ser afegir rutes estàtiques.
En aquestes carpetes es col·loquen els scripts que volem que s'executin abans o després de l'engegada o aturada de la xarxa. Per exemple, si fem una ullada a la carpeta /etc/network/if-up.d:
$ ls -l /etc/network/if-up.d/
total 16
-rwxr-xr-x 1 root root 3190 2006-10-06 13:34 mountnfs
-rwxr-xr-x 1 root root 551 2006-05-29 04:48 ntpdate
-rwxr-xr-x 1 root root 160 2006-09-18 21:09 ntp-server
-rwxr-xr-x 1 root root 1120 2006-09-10 12:48 postfix
Són scripts que configuren aplicacions després de la configuració de la xarxa:
- mountnfs: Monta els recursos NFS i SAMBA
- ntpdate i ntp-server: Configuren ntp (servei de temps).....
Aquests fitxers, juntament amb les comandes ifup i ifdown les proporciona el paquet ifupdown.
Podem veure el detall del que s'executa al aixecar/apagar una targeta de xarxa amb les comandes:
$ sudo ifdown --verbose eth0
Configuring interface eth0=eth0 (inet)
route del -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.20 dev eth0
run-parts --verbose /etc/network/if-down.d
run-parts: executing /etc/network/if-down.d/avahi-autoipd
run-parts: executing /etc/network/if-down.d/wpasupplicant
ifconfig eth0 down
run-parts --verbose /etc/network/if-post-down.d
run-parts: executing /etc/network/if-post-down.d/avahi-daemon
run-parts: executing /etc/network/if-post-down.d/bridge
run-parts: executing /etc/network/if-post-down.d/wireless-tools
run-parts: executing /etc/network/if-post-down.d/wpasupplicant
run-parts: executing /etc/network/if-post-down.d/z50madwifi
$ sudo ifup --verbose eth0
Configuring interface eth0=eth0 (inet)
run-parts --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/050madwifi
run-parts: executing /etc/network/if-pre-up.d/bridge
run-parts: executing /etc/network/if-pre-up.d/uml-utilities
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.20 dev eth0
run-parts --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/avahi-autoipd
run-parts: executing /etc/network/if-up.d/avahi-daemon
run-parts: executing /etc/network/if-up.d/mountnfs
* Starting portmap daemon...
* Already running.
...done.
* Starting NFS common utilities
...done.
run-parts: executing /etc/network/if-up.d/ntpdate
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/uml-utilities
run-parts: executing /etc/network/if-up.d/wpasupplicant
/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.
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.
$ 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
/etc/services
Conté una llista dels noms de serveis reconeguts pel sistema (protocols a nivell aplicació).
Un extracte del fitxer:
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
msp 18/tcp # message send protocol
msp 18/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
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
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.
$ 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/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
/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:
$ 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"
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
# these rules generate rules for persistent network device naming
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*|ath*|wlan*|ra*|sta*" \
NAME!="?*", DRIVERS=="?*", GOTO="persistent_net_generator_do"
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"
/etc/udev/rules.d/85-ifupdown.rules
$ /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"
/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://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/
https://wiki.debian.org/NetworkConfiguration#Multiple_IP_addresses_on_one_Interface