Réseau

De Banane Atomic
Révision datée du 20 octobre 2019 à 19:30 par Nicolas (discussion | contributions) (→‎IP statique avec systemd-networkd)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Réseau

La suite d'outils "net-tools" est remplacé par "iproute2" : guide de transition
net-tools iproute2
adresses ip ifconfig ip a
addresses MAC ip link show
table de routage route ip route
cache ARP arp ip neigh

DHCP

Bash.svg
# listez les noms des périphériques réseau
ls /sys/class/net

# activez le service DHCP pour le périphériques réseau enp3s0
dhcpcd enp3s0

# activez au démarrage le service DHCP pour le périphériques réseau enp3s0
systemctl enable dhcpcd@enp3s0

Disable ipv6

/etc/dhcpcd.conf
noipv6rs
noipv6

Fallback

/etc/dhcpcd.conf
# define static profile
profile static_eth0
static ip_address=192.168.0.x/24
static routers=192.168.0.y
static domain_name_servers=192.168.0.y

# fallback to static profile on eth0
interface eth0
fallback static_eth0
Ne semble pas marcher

IP statique avec systemd-networkd

/etc/systemd/network/10-static-ethernet.network
[Match]
Name=enp3s0

[Network]
Address=192.168.0.1/24
Gateway=192.168.0.254
# disable ipv6
LinkLocalAddressing=ipv4
IPv6AcceptRA=no
Bash.svg
# activer l'ip statique au démarrage
sudo systemctl enable systemd-networkd.service

# désactiver DHCP au démarrage
sudo systemctl disable dhcpcd@enp3s0

Routage

Bash.svg
# show routing table
ip route

# add new route	
ip route add 192.168.0.0/24 dev eth0

# add default route	
ip route add default via 192.168.0.254

# change existing default route	
ip route chg default via 192.168.0.254

# delete default route
ip route del default

Wifi

Installation

Bash.svg
# outils de connexion
pacman -S wireless_tools

# pour les réseaux encryptés avec une clé WPA
pacman -S wpa_supplicant

Connexion

Bash.svg
# activer l'interface wlan0
ip link set wlan0 up
# désactiver l'interface wlan0
ip link set wlan0 down

# lister les points d'accès (avec sudo)
iwlist wlan0 scan | less

# connexion sans clé
iwconfig wlan0 essid "MonESSID"

# obtention d'une adresse ip
dhcpcd wlan0

Manual setup

Pilote

Bash.svg
# identifier la carte wifi
lspci | grep -i net

Normalement udev charge automatiquement le pilote de la carte wifi.

Bash.svg
# tester l'existance de l'interface wlan0
ip link

Wifi

Normes

802.11 Bande de fréquence Débit théorique maximal Portée Congestion Largeur canal MIMO (Multiple-Input Multiple-Output)
a 5 GHz 54 Mbps Faible Faible 20 MHz Non
b 2,4 GHz 11 Mbps Correcte Elevée 20 MHz Non
g 2,4 GHz 54 Mbps Correcte Elevée 20 MHz Non
n 2,4 GHz et 5 GHz De 72 à 450 Mbps Bonne Elevée et faible 20 ou 40 MHz Oui
ac 5 GHz De 433 à 1300 Mbps Bonne Faible 40 ou 80 MHz Oui

Sécurité

WEP Utilisation d'une clé de 26 caractères hexadécimaux.
Ne permet pas l'utilisation du WiFi n mais seulement du WiFi b/g
WPA-PSK (TKIP) Utilisation d'une clé d'au moins 8 caractères (alphanumérique et caractères spéciaux).
Ce mode ne permet pas l'utilisation du WiFi n mais seulement du WiFi b/g
WPA2-PSK (AES) Utilisation d'une clé d'au moins 8 caractères (alphanumérique et caractères spéciaux).

Obtenir le nom du PC depuis son IP

Dos.svg
host 192.168.0.x
# host est installé avec le paquet bind-tools

nbtstat -a 192.168.0.x

WOL

Client

Bash.svg
wol -i 192.168.0.255 AA:AA:AA:AA:AA:AA
Utilisez l'adresse IP de broadcast et non celle de la machine cible

Service

Pas de WOL entre sous-réseaux (VPN par exemple)
Bash.svg
# installer ethtool si besoin
# lister les interfaces: ls /sys/class/net
sudo ethtool [interface]
# Supports Wake-on: pumbg
# Wake-on: d (disabled)

# Wake-on doit être à g (magic packet activity)
sudo ethtool -s [interface] wol g

# test d'écoute du port 9 avec netcat
sudo nc --listen --udp --local-port=9 --hexdump
sudo nc -l -u -p 9 -x

Rendre la modification permanente

/etc/systemd/system/wol@.service
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target

[Service]
ExecStart=/usr/bin/ethtool -s %i wol g
Type=oneshot

[Install]
WantedBy=multi-user.target
Bash.svg
systemctl start wol@enp3s0.service
systemctl enable wol@enp3s0.service

IPv6

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

Forme contractée
xxxx:xxxx:x:xxxx::yy
xxxx:xxxx:000x:xxxx:0000:0000:0000:00yy

Mask
x:x:x:x::0/112 → x:x:x:x:0:0:0:0 - x:x:x:x:0:0:0:ffff
x:x:x:x::0/96  → x:x:x:x:0:0:0:0 - x:x:x:x:0:0:ffff:ffff
x:x:x:x::0/80  → x:x:x:x:0:0:0:0 - x:x:x:x:0:ffff:ffff:ffff
x:x:x:x::0/80  → x:x:x:x:0:0:0:0 - x:x:x:x:0:ffff:ffff:ffff
x:x:x:x::0/64  → x:x:x:x:0:0:0:0 - x:x:x:x:ffff:ffff:ffff:ffff

traceroute IPv6 pour obtenir l'IPv6 à partir de l'url.

NAT Loopback / hairpinning

Fonctionnalité qui permet:

  1. depuis un périphérique en LAN (ex: mon pc)
  2. d'accéder à un autre périphérique sur le même LAN (ex: mon serveur web)
  3. en utilisant l'url externe du routeur (ex: http://www.mon-serveur.fr)

Sans le NAT Loopback on se retrouve sur le site web d'administration du routeur au lieu du site web de mon serveur.

Obtenir une adresse depuis une IP

Calcul de masques et de ranges d'IP

IP Calculator

DNS

/etc/resolv.conf
# adresse ip du serveur DNS
nameserver 192.168.0.X