Network linux commands¶
Link layer¶
Show interfaces:
Enable/disable an interface:
Change name or address to interface manually:
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
Show interface options physical options
Show speed of interface:
Kernel module that use the interface:
Show statistics, error packets, collisions:
Vlans¶
Add virtual interface with tagged vlan 101 to eth0:
Bonding¶
ip link set eth1 down
ip link set eth2 down
modprobe -r bonding
modprobe bonding mode=4
# default xmit_hash_policy is 0 (hash with mac adress)
# 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
Test network speed with iperf¶
Traditional tool is iperf, with speeds greater than 1Gbps new tool with more options iperf3 is better
Some useful options:
-t to increase duration of test
Test network speed with netperf¶
Realistic test with tcp both directions throughput.
- https://github.com/HewlettPackard/netperf
Start netserver on one host and execute script on 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
It will run on background and output to console results when it finishes.
You can check live network throughput during test by using iftop:
Bridges¶
Create bridge:
Assign interfaces to bridge:
To show interfaces members of a bridge and table of ports and mac address:
Capture packets¶
tcpdump: herramienta clásica para hacer capturas
tshark: wireshark in command line, capture filters show [https://wiki.wireshark.org/CaptureFilters]
- [ -i ] Input interface
- [ -w ] Output file
- [ -r ] Read options from file
- [ -c ] limit packets captured
- [ -a duration:X] seconds when stop capture
- [ -Y ] Wireshark filters
Examples:
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"
To show in screen the packets with extended version (-x)
Network Layer¶
Show ip address, short command of ip address show:
Show stats (tx,rx,error,dropped)
Fixed ip address:¶
Delete all address of an interface (flush):
Asociar una ip a una interfaz (no olvidar la máscara):
Se pueden asociar más de una ip a una interfaz y eliminar una en concreto:
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ámicas:¶
Liberar la ip actual:
Esto debería haber liberado la ip actual y el daemon debería haber finalizado. En caso de que no podamos pedir una nueva ip no nos queda otra más que matar ese proceso con:
Para pedir una nueva ip en cualquier interface:
Y en una interface en concreto:
Si quieres ver más detalle de la concesión de ip:
Tabla ARP¶
La orden tradicional arp ha quedado centralizada en la utilidad ip con la opción ip neigh
Para ve la tabla de arp actual:
Borrar tabla de arp:
Añadir entrada arp permanente:
Ver sólo las entradas reachable:
Routing¶
Ver las rutas con ip route show:
Para eliminar todas las rutas "ip route flush":
Al añadir una dirección ip a una interfaz, se añade una ruta directa que informa que para ir a la red de esa dirección ip se va directamente a través de la interfaz sin necesidad de pasar por ningún router:
Añadir puerta de enlace por defecto:
Eliminar puerta de enlace por defecto:
Añadir ruta estática:
Activar bit de forwarding para que trabaje como router:
Resolución de nombres DNS¶
Se consulta la resolución en el fichero /etc/hosts, que contiene una línea para el nombre localhost, se pueden añadir líneas para resolver nombres sin utilizar un servidor dns:
Para resolver con servidores dns linux consulta el contenido del fichero /etc/resolv.conf
Se consulta la línea que empieza con nameserver seguida de la ip del servidor dns que queremos usar. Si al renovar la ip dinámica el servidor dhcp ofrece un servidor dns se sobreescribe este fichero
Para forzar la resolución de nombres a través de un servidor dns de forma manual:
Enmascaramiento de ips¶
Enmascarar todo el tráfico que sale hacia internet por eth0
Consultar iptables:
Pruebas de conectividad¶
Comprabar respuestas protocolo ARP:
Hacer ping indefinidamente (para terminar ctrl + C)
Limitar número de pings
fping: Hacer pings a varios equipos de una red:
nmap
Sondeo ping:
Sondeo de puerto 22Traceroute y geolocalizar ips¶
traceroute: Herramienta histórica para descubrir rutas
mtr: Si quieres más información, estadísticas y detalle de geolocalización de 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 transporte¶
nmap y sondeo de puertos¶
Sondeo de puertos TCP típicos:
Sondeo de un puerto concreto
Sondeo de rango de puertos
Sondeo de puertos aunque el ping no conteste, añadiendo la opción -PN
Sondeo de puerto UDP:
netstat¶
número de puertos tcp y udp escuchando con el programa asociado:
Las opciones se pueden combinar sin importar el orden en que van las letras, las típicas de netstat son: * -u => puertos udp * -t => puertos tcp * -p => programa que está usando esa conexión y pid (sólo lo puedes ver si eres root) * -n => muestra el número de puerto * -a => todas las conexiones * -l => puertos en escucha
Todas las conexiones tcp: