Salta el contingut

Comandes de xarxa de Linux

Capa d'enllaç

Mostrar interfícies:

ip link show

Activar/desactivar una interfície:

ip link set eth0 down
ip link set eth0 up

Canviar nom o adreça a la interfície manualment:

ip link set eth0 down
ip link set eth0 address 00:11:22:33:44:55
ip link set eth0 name lan
ip link set eth0 up

Mostrar opcions físiques de la interfície:

ethtool eth0

Mostrar velocitat de la interfície:

ethtool eth0 |grep Speed

Mòdul del kernel que utilitza la interfície:

ethtool -i eth0

Mostrar estadístiques, paquets d'error, col·lisions:

ethtool -S eth0

Vlans

Afegir interfície virtual amb vlan etiquetada 101 a eth0:

ip link add link eth0 name vlan101 type vlan id 101
ip link set vlan101 up

Bonding

ip link set eth1 down
ip link set eth2 down

modprobe -r bonding
modprobe bonding mode=4

# xmit_hash_policy per defecte és 0 (hash amb adreça mac)
# modprobe bonding mode=4 xmit_hash_policy=2

ip link set eth1 master bond0
ip link set eth2 master bond0

ip link set eth1 up 
ip link set eth2 up

ip link set bond0 up

cat /proc/net/bonding/bond0

Provar velocitat de xarxa amb iperf

L'eina tradicional és iperf, amb velocitats superiors a 1Gbps la nova eina amb més opcions iperf3 és millor

#Servidor
iperf -s 
#Client
iperf -c IP_SERVIDOR

Algunes opcions útils:

#Servidor
iperf -s -i 2 -p 5002
#Client
iperf -p 5002 -c IP_SERVIDOR

-t per augmentar la durada de la prova

#Servidor
iperf -s -i 2
#Client
iperf -t 30 -c IP_SERVIDOR

Provar velocitat de xarxa amb netperf

Prova realista amb tcp en ambdues direccions de rendiment.

  • https://github.com/HewlettPackard/netperf

Iniciar netserver en un host i executar script al client:

vi netperf-test.sh

 for i in 1
     do
      netperf -H 10.1.2.102 -t TCP_STREAM -B "outbound" -i 10 -P 0 -v 0 \
        -- -s 256K -S 256K &
      netperf -H 10.1.2.102 -t TCP_MAERTS -B "inbound"  -i 10 -P 0 -v 0 \
        -- -s 256K -S 256K &
     done

S'executarà en segon pla i mostrarà els resultats a la consola quan acabi.

Pots comprovar el rendiment de xarxa en temps real durant la prova utilitzant iftop:

iftop -i eth0

Ponts

Crear pont:

brctl addif br0 usb0

Assignar interfícies al pont:

brctl addif br0 eth0
brctl addif br0 usb0
brctl addif br0 usb1
brctl delif br0 usb1

Per mostrar interfícies membres d'un pont i taula de ports i adreça mac:

brctl show
brctl show br0
brctl showmacs br0

Capturar paquets

tcpdump: eina clàssica per fer captures

tcpdump -w 08232010.pcap -i eth0

tshark: wireshark en línia de comandes, filtres de captura a [https://wiki.wireshark.org/CaptureFilters]

  • [ -i ] Interfície d'entrada
  • [ -w ] Fitxer de sortida
  • [ -r ] Llegir opcions del fitxer
  • [ -c ] limitar paquets capturats
  • [ -a duration:X] segons quan parar la captura
  • [ -Y ] Filtres de Wireshark

Exemples:

tshark -i enp3s0 -w /tmp/out.pcap -c 10
tshark -i enp3s0 -w /tmp/out.pcap -a duration:4
tshark -r /tmp/out.pcap -w /tmp/web.pcap -Y "http"

tshark -i enp3s0 -w /tmp/ping.pcap "host 8.8.8.8"
tshark -i enp3s0 -w /tmp/web.pcap "port 80"

Per mostrar a pantalla els paquets amb versió estesa (-x)

tshark -r /tmp/web.pcap
tshark -r /tmp/web.pcap -x 
tshark -r /tmp/web.pcap -x -Y "frame.number==10"

Capa de Xarxa

Mostrar adreça ip, comanda curta de ip address show:

ip a

Mostrar estadístiques (tx,rx,error,dropped)

ip -statistics a

Adreça ip fixa:

Eliminar totes les adreces d'una interfície (flush):

ip a f dev eth0

Associar una ip a una interfície (no oblidar la màscara):

ip a a 192.168.100.10/24 dev eth0

Es poden associar més d'una ip a una interfície i eliminar una en concret:

ip a a 192.168.100.10/24 dev eth0
ip a a 192.168.200.11/27 dev eth0

ip a d 192.168.200.11/27 dev eth0

Ips dinàmiques:

Alliberar la ip actual:

dhclient -r

Això hauria d'haver alliberat la ip actual i el dimoni hauria d'haver finalitzat. En cas que no puguem demanar una nova ip no ens queda altra que matar aquest procés amb:

killall dhclient

Per demanar una nova ip en qualsevol interfície:

dhclient

I en una interfície en concret:

dhclient eth0

Si vols veure més detall de la concessió d'ip:

dhclient -v eth0
dhclient -v -lf /tmp/eth0.lease
cat /tmp/eth0.lease

Taula ARP

L'ordre tradicional arp ha quedat centralitzada en la utilitat ip amb l'opció ip neigh

Per veure la taula d'arp actual:

ip neigh

Esborrar taula d'arp:

ip neigh flush all

Afegir entrada arp permanent:

ip neigh add 192.168.100.1 lladdr 00:11:22:33:44:55 dev enp3s0

Veure només les entrades reachable:

ip neigh show nud reachable

Encaminament

Veure les rutes amb ip route show:

ip r 

Per eliminar totes les rutes "ip route flush":

ip r f all

En afegir una adreça ip a una interfície, s'afegeix una ruta directa que informa que per anar a la xarxa d'aquesta adreça ip es va directament a través de la interfície sense necessitat de passar per cap router:

$ ip r f all
$ ip a a 172.16.0.10/16 dev eth0
$ ip r s 
172.16.0.10/16  dev eth0 [...]

Afegir porta d'enllaç per defecte:

ip r a default via 192.168.1.1

Eliminar porta d'enllaç per defecte:

ip r d default

Afegir ruta estàtica:

ip r a 192.168.200.0/24 via 192.168.100.1

Activar bit de forwarding perquè treballi com a router:

echo 1 > /proc/sys/net/ipv4/ip_forward

Resolució de noms DNS

Es consulta la resolució al fitxer /etc/hosts, que conté una línia per al nom localhost, es poden afegir línies per resoldre noms sense utilitzar un servidor dns:

$ cat /etc/hosts
127.0.0.1       localhost.localdomain localhost

Per resoldre amb servidors dns linux consulta el contingut del fitxer /etc/resolv.conf

$ cat /etc/resolv.conf 
[...]
nameserver 192.168.1.1

Es consulta la línia que comença amb nameserver seguida de la ip del servidor dns que volem usar. Si en renovar la ip dinàmica el servidor dhcp ofereix un servidor dns se sobreescriu aquest fitxer

Per forçar la resolució de noms a través d'un servidor dns de forma manual:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Emmascarament d'ips

Emmascarar tot el trànsit que surt cap a internet per eth0

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Consultar iptables:

iptables-save
iptables -t filter -L
iptables -t nat -L

Proves de connectivitat

Comprovar respostes protocol ARP:

arping 192.168.100.1

Fer ping indefinidament (per acabar ctrl + C)

ping 8.8.8.8

Limitar nombre de pings

ping -c 2 8.8.8.8

fping: Fer pings a diversos equips d'una xarxa:

fping -g 192.168.100.100 192.168.100.110 -a -q
fping -g 192.168.100.0/24 -a -q

nmap

Sondeig ping:

nmap -sP 192.168.100.0/24
Sondeig de port 22

Traceroute i geolocalitzar ips

traceroute: Eina històrica per descobrir rutes

traceroute 8.8.8.8

mtr: Si vols més informació, estadístiques i detall de geolocalització d'ips

dnf -y install mtr GeoIP GeoIP-GeoLite-data GeoIP-GeoLite-data-extra
mtr -n --report www.gencat.cat
geoiplookup 72.52.92.222

Capa de transport

nmap i sondeig de ports

Sondeig de ports TCP típics:

nmap -sS 192.168.100.1

Sondeig d'un port concret

nmap -sS -p 80 192.168.100.1

Sondeig de rang de ports

nmap -sS -p 8080-8090 192.168.100.1

Sondeig de ports encara que el ping no contesti, afegint l'opció -PN

nmap -sS -PN -p 80 192.168.100.1

Sondeig de port UDP:

nmap -sU -p 53 192.168.100.1

netstat

nombre de ports tcp i udp escoltant amb el programa associat:

netstat -utlnp

Les opcions es poden combinar sense importar l'ordre en què van les lletres, les típiques de netstat són: * -u => ports udp * -t => ports tcp * -p => programa que està usant aquesta connexió i pid (només ho pots veure si ets root) * -n => mostra el número de port * -a => totes les connexions * -l => ports en escolta

Totes les connexions tcp:

netstat -tanp 

provar ports amb netcat