{{tag>Brouillon Réseau}}
= Notes diag réseau
Commande **ip** https://access.redhat.com/sites/default/files/attachments/rh_ip_command_cheatsheet_1214_jcs_print.pdf
Diag
ifstat
ss -s
ss -peaonmi
# sar -n DEV
sar -n ALL
networkctl
networkctl list
ip -4 -o addr
Only up
$ ip link ls up
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
$ ip -0 addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 14:da:e9:a6:da:ca brd ff:ff:ff:ff:ff:ff
3: wlan0: mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 74:2f:68:4b:6c:41 brd ff:ff:ff:ff:ff:ff
# cat /sys/class/net/eth0/speed
1000
# cat /sys/class/net/eth0/duplex
full
Lister toutes les interfaces branchées
# grep 1 /sys/class/net/*/carrier
/sys/class/net/eth0/carrier:1
/sys/class/net/eth1/carrier:1
/sys/class/net/eth2/carrier:1
/sys/class/net/eth3/carrier:1
/sys/class/net/lo/carrier:1
ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: no
Si pas de ''ethtool'', essayer ''mii-tool''
# mii-tool eth0
eth0: no link
On arrête le "network-manager" car nous allons configurer le réseau manuellement
service network-manager stop
Demande d'un bail DHCP (DHCP OFFER)
dhclient eth0
Parfois il faut faire un ''dhclient -r'' avant pour que ça fonctionne.
dhclient -r eth0
dhclient eth0
Si rien ne se passe ''Ctrl + c''. C'est qu'on ne parviens pas à avoir une réponse du serveur DHCP.
Statistic
ip -s link show eth0
== Changer l'adresse ip avec iproute2 (ip)
Effacement de l’ancienne adresse ipv4
ip -4 a del dev eth0
Nous pouvons définir manuellement l'adresse IP :
#ifconfig eth0 192.168.1.12 netmask 255.255.255.0 up
ip addr add 192.168.1.12/24 dev eth0
ip link set eth0 up
== Définir la route / passerelle par défaut
Voir la table de routage
ip r
ip route show table all
#ip r show table all |egrep -v "^unreachable|^local|^broadcast"
Ajouter une route
ip route add default via 192.168.1.1
Supprimer une passerelle par défaut
ip route del 0.0.0.0/0 via 192.168.1.1
Test / diag / debug du routage
ip route get 8.8.8.8
=== Traceroute
Voir :
* tracepath
* https://www.cloudflare.com/fr-fr/learning/network-layer/what-is-mtr/
* https://www.cloudflare.com/learning/network-layer/what-is-mtr/
Voir aussi : https://en.wikipedia.org/wiki/Source_routing
Traceroute avec MTR
$ mtr -c 10 --udp 10.33.133.246 -P 88 -rn
Start: 2023-07-11T16:55:56+0200
HOST: websrv1 Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.230.223.1 0.0% 10 0.2 0.3 0.2 1.0 0.2
2.|-- 10.255.183.12 0.0% 10 0.6 3.1 0.6 11.0 4.3
3.|-- 10.255.29.2 0.0% 10 0.7 1.0 0.6 2.2 0.6
4.|-- 10.154.254.1 0.0% 10 25.4 25.6 25.4 27.1 0.5
5.|-- 10.133.4.178 0.0% 10 25.4 25.6 25.3 26.1 0.3
6.|-- 10.133.4.38 0.0% 10 26.7 26.8 25.7 34.4 2.7
7.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
=== Connaître l'adresse MAC d'origine / permanente
Certains types d’agrégation de liens (bonding) utilise le changement d'adresse MAC. \\
Il peut être utile de retrouver l'@MAC original de la carte.
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eno50
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eno49
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 5c:b9:01:d0:06:d0
Slave queue ID: 0
Slave Interface: eno50
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 5c:b9:01:d0:06:d8
Slave queue ID: 0
# ethtool -P eno50
Permanent address: 5c:b9:01:d0:06:d8
ou (si supporté)
# cat /sys/class/net/eno50/phys_port_id
5cb901d006d8
Alors que l'adresse actuelle définie (spoofé) est :
# cat /sys/class/net/eno50/address
5c:b9:01:d0:06:d0
# ip a show dev eno50
3: eno50: mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 5c:b9:01:d0:06:d0 brd ff:ff:ff:ff:ff:ff
== Exemple conf Debian
''/etc/network/interfaces''
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.56.12
netmask 255.255.255.0
gateway 192.168.56.1
allow-hotplug eth2
iface eth2 inet static
address 10.240.100.101
netmask 255.255.255.0
network 10.240.100.0
broadcast 10.240.100.255
gateway 10.240.100.250
# dns-* options are implemented by the resolvconf package, if installed
dns-search localdomain
dns-nameservers 8.8.8.8 8.8.4.4
#systemctl restart networking
ifdown eth0
ifup eth0
== Exemple conf RedHat
Notes :
* A partir de RHEL9 **keyfile** remplace **ifcfg**
''/etc/sysconfig/network-scripts/ifcfg-eth0''
TYPE=Ethernet
BOOTPROTO=dhcp
#DEFROUTE=no
#PEERDNS=no
IPV6INIT=no
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NM_CONTROLLED=no
''/etc/sysconfig/network-scripts/ifcfg-eth1''
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
HWADDR=00:50:56:c4:8d:ae
NETMASK=255.255.255.0
IPADDR=192.168.10.101
GATEWAY=192.168.10.1
#MTU=1450
#systemctl restart network
ifdown eth0
ifup eth0
== Bonding
ip a |grep bond0
cat /proc/net/bonding/bond0
Suppression agrégation de liens
ip link set dev bond0 down
ip link del dev bond0
== Netplan
''/etc/network/interfaces''
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown
''/etc/netplan/01-netcfg.yaml''
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens192:
dhcp4: no
dhcp6: no
addresses:
- 10.15.65.5/24
gateway4: 10.15.65.254
nameservers:
addresses: [192.168.130.11,192.168.131.75]
ens160:
dhcp4: no
dhcp6: no
addresses:
- 192.168.1.105/24
- 2a01:4588:0:fd::109/64
gateway4: 192.168.1.1
gateway6: 2a01:4580:0:fd::1
nameservers:
addresses:
- 46.18.130.11
- 46.18.131.75
routes:
- to: 192.168.255.0/24
via: 192.168.1.1
Pour vérifier la config
netplan try
# Rien de sera appliqué si --debug
netplan --debug apply
Si OK pour appliquer
netplan apply
netplan generate: Use /etc/netplan to generate the required
configuration for the renderers.
netplan apply: Apply all configuration for the renderers,
restarting them as necessary.
# pour vérifier que la syntaxe était bonne, puis
netplan --debug generate
netplan generate
netplan apply
man 5 netplan
== Network-Manager UI
Liste :
* connman / cmst
* wicd
* nm-tray / network-manager
== Promiscuous mode
ip link set eth0 promisc on
== Autres
Voir :
* ''/etc/resolvconf/resolv.conf.d/head''
== Perte de paquets ?
netstat -s | grep retransmitted
368644 segments retransmitted
netstat -s | grep segments
149840 segments received
150373 segments sent out
161 segments retransmitted
13 bad segments received
== Err
# systemctl restart network
RTNETLINK answers: File exists
Solution
systemctl stop NetworkManager
#ip addr flush dev eth1
#ps -ef |grep -i net