État du réseau

Comment se renseigner sur les interfaces réseau des serveurs.

Informations sur les interfaces réseau

Lister les interfaces

La commande ip link liste toutes les interfaces réseau disponibles sur le système :

# ip link
# ip link show

Exemple :

# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 42:24:ab:cd:ef:01 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 24:ab:cd:ef:01:42 brd ff:ff:ff:ff:ff:ff

Autre exemple :

# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:42:42:52:d1 brd ff:ff:ff:ff:ff:ff
altname enp11s0

Informations sur les interfaces

La commande ip addr donne plus de précision sur une interface :

# ip a
# ip addr
# ip addr show [int]

Exemple : L’étendue scope link par rapport à scope global signifie que l’adresse ne peut être utilisée que pour les échanges sur l’Ethernet local.

# ip addr show eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ab:cd:ef:01:42:24 brd ff:ff:ff:ff:ff:ff
inet 192.0.2.2/24 brd 192.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::4242:42ff:aabb:abcd/64 scope link
valid_lft forever preferred_lft forever

Autre exemple :

# ip addr show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:99:55:dd brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.1.111/24 brd 192.168.1.255 scope global dynamic noprefixroute ens192
valid_lft 1406sec preferred_lft 1406sec
inet6 fe80::20c:29ff:bbaa:4242/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Statistiques réseau des interfaces

La commande ip -s link permet d’afficher les statistiques réseaux :

# ip -s link
# ip -s link show <int>

Exemple :

# ip -s link show eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether ab:cd:ef:01:42:24 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
225292033849 129264087 0 0 0 0
TX: bytes packets errors dropped carrier collsns
76759525930 27902081 0 0 0 0

Autre exemple :

# ip -s link show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:52:d1 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
1638090859 1172198 0 0 0 4323
TX: bytes packets errors dropped carrier collsns
76791033 857254 0 0 0 0
altname enp11s0

Connectivité

La commande ping permet de tester la connectivité entre 2 hosts :

# ping -c3 @IP
# ping6 @IPV6

Pour faire un mutilcast en IPV6, il faut préciser l’interface %<Interface> :

# ping6 @IPV6%<Interface>

Exemple :

# ping6 fe80::20c:aabb:ccdd:ffff%ens192
PING fe80::20c:aabb:ccdd:ffff%ens192(fe80::20c:aabb:ccdd:ffff%ens192) 56 data bytes
64 bytes from fe80::20c:aabb:ccdd:ffff%ens192: icmp_seq=1 ttl=64 time=0.095 ms
64 bytes from fe80::20c:aabb:ccdd:ffff%ens192: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from fe80::20c:aabb:ccdd:ffff%ens192: icmp_seq=3 ttl=64 time=0.127 ms

Informations sur le routage

La commande ip route permet d’afficher les informations sur le routage :

# ip route
# ip -6 route

Les commandes traceroute et tracepath permettent de tracer le chemin emprunté par le trafic réseau pour atteindre un hôte distant via plusieurs routeurs :

# tracepath google.com
# tracepath6 google.com
# traceroute google.com

Informations sur les ports

Les services/daemons écoutent généralement sur les ports standard alors que les clients utilisent un port aléatoire.

La liste des ports standard sont répertoriés dans /etc/services

Commande ss

Extrait de l’aide ss :

Option Explication
-A inet Affiche les connexions actives (pas les sockets) pour les adresses inet
-a Affiche tous les sockets (d’écoute et connectés)
-e Show detailed information.
-l N’affiche que les sockets d’écoute
-n Affiche le numéro des interfaces et des ports plutôt que leur nom
-o Show timer information.
-p Affiche le processus qui utilise les sockets.
-r Resolve hostnames.
-t Affiche les sockets TCP
-u Affiche les sockets UDP
-x Display Unix domain sockets.
-4 Display only IPv4 socket connections.
-6 Display only IPv6 socket connections.

Exemple

La commande ss permet d’afficher les statistiques des sockets (et remplacera netstatà terme).

# ss -ta

State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:sunrpc *:*
LISTEN 0 128 *:ssh *:*
LISTEN 0 100 127.0.0.1:smtp :
LISTEN 0 128 *:36889 *:*
ESTAB 0 0 172.22.142.42:ssh 172.22.254.254:59392
LISTEN 0 128 :::sunrpc :::*
LISTEN 0 128 :::ssh :::*
LISTEN 0 100 ::1:smtp :::*
LISTEN 0 128 :::34946 :::*

Le résultat renvoie :

  • *:ssh : port utilisé pour SSH et écoute sur toutes les adresses IPv4
    • l’astérisque * : pour IPv4 = toutes
  • 127.0.0.1:smtp : port utilisé pour SMTP et écoute sur l’interface de loopback 127.0.0.1 (IPv4)
  • 172.22.142.42:ssh : connexion SSH établie se trouvant sur l’interface 172.22.142.42 et provenant d’un système dont l’adresse est 172.25.254.254
  • :::ssh : port utilisé pour SSH et écoute sur toutes les adresses IPv6. La syntaxe (::) représente toutes les interfaces IPv6.
    • le triple ::: : pour IPv6 = toutes
  • ::1:smtp : port utilisé pour SMTP et écoute sur l’interface de loopback ::1 (IPv6)

/!\ Résumé des commandes

Commandes :

# ip link		 		// liste toutes les interfaces réseau
# ip link show [int]
# ip a [int]
# ip addr [int]
# ip addr show [int]
# ip -s link
# ip -s link show <int>
# ip route
# ip -6 route
# ping -c3 @IP
# ping6 @IPV6
# ping6 @IPV6%<Interface>

# tracepath google.com
# tracepath6 google.com
# traceroute google.com

# ss -ta
# ss -A inet // Affiche les connexions actives (pas les sockets) pour les adresses inet
# ss -a // Affiche tous les sockets (d’écoute et connectés)
# ss -l // N’affiche que les sockets d’écoute
# ss -n // Affiche le numéro des interfaces et des ports plutôt que leur nom
# ss -p // Affiche le processus qui utilise les sockets
# ss -t // Affiche les sockets TCP
# ss -u // Affiche les sockets UDP
# ss -e // Show detailed information
# ss -o // Show timer information
# ss -r // Resolve hostnames
# ss -x // Display Unix domain sockets
# ss -4 // Display only IPv4 socket connections
# ss -6 // Display only IPv6 socket connections.

Fichiers :

/etc/services  // noms des ports standard

Cas pratique

Localisation du nom de l’interface réseau associé à l’adresse Ethernet 00:0c:29:a9:52:d1 :

[aline@server01 ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:52:d1 brd ff:ff:ff:ff:ff:ff
altname enp11s0

Affichage de l’adresse IP active et le masque de sous-réseau de toutes les interfaces :

[aline@server01 ~]$ ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
ens192 UP 192.168.1.111/24 fe80::20c:29ff:fea9:52d1/64

Affichage des statistiques de l’interface ens192 :

[aline@server01 ~]$ ip -s link show ens192
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:52:d1 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
1638433865 1173890 0 0 0 4355
TX: bytes packets errors dropped carrier collsns
77294334 859003 0 0 0 0
altname enp11s0

Affichage des informations de routage :

[aline@server01 ~]$ ip route
default via 192.168.1.1 dev ens192 proto dhcp src 192.168.1.111 metric 100
192.168.1.0/24 dev ens192 proto kernel scope link src 192.168.1.111 metric 100

Vérification que le routeur est accessible, son adresse est 192.168.1.1 :

[aline@server01 ~]$ ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.235 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.489 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.409 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2041ms
rtt min/avg/max/mdev = 0.235/0.377/0.489/0.106 ms

Affichage de tous les sauts entre le système local et une autre machine du réseau, ici ayant comme ip 192.168.0.109 :

[aline@server01 ~]$ tracepath Redhat1-Test3.my.domain.org
1?: [LOCALHOST] 0.008ms pmtu 65536
1: Redhat.my.domain.org 0.102ms reached
1: Redhat.my.domain.org 0.090ms reached
2: 192.168.1.1 0.602ms reached
Resume: pmtu 65536 hops 1 back 1

Affichage des sockets TCP qui écoutent sur le système local.

[aline@server01 ~]$ ss -lt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 128 [::]:sunrpc [::]:*
LISTEN 0 128 [::]:ssh [::]:*

Documentation

MAN ip-link(8)
MAN ip-address(8)
MAN ip-route(8)
MAN ip(8)
MAN ping(8)
MAN tracepath(8)
MAN traceroute(8)
MAN ss(8)
MAN netstat(8)

> Partager <