Réseau

De Banane Atomic
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
Bash.svg
# url externe du routeur
curl ipinfo.io

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

Routing

Route

Définit la passerelle permettant d'accéder à un réseau.
Les ip des passerelles appartiennent toujours aux réseaux du routeur, sinon elles ne sont pas accessibles.

Bash.svg
# show main routing table entries
ip route
# show local routing table entries
ip route show table local
# show all routing table entries
ip route show table all

# show where the package would go
ip route get [ip]

# 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

Routing table

Il y a 255 tables. Il est possible de donner un nom à une table:

/etc/iproute2/rt_tables
# reserved values
255	local     # ne doit pas être modifiée à la main, gérée par le noyau
254	main
253	default
0	unspec

# new table
199     mytable

Rule

Set which routing table to use regarding origin or destination

Bash.svg
# list the rules
ip rule
# default rules
# 0:      from all lookup local    # apply local routing table first
# 32766:  from all lookup main     # apply main routing table at the end
# 32767:  from all lookup default  # apply default routing table at the very end

# use the table table-name for traffic from ip
ip rule add from <ip> lookup <table-name>
# delete the above rule
ip rule del from <ip> lookup <table-name>

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/dhcpcd.conf
static domain_name_servers=192.168.0.X 192.168.0.Y
/etc/resolv.conf
# Generated by dhcpcd from [interface].dhcp
nameserver 192.168.0.X
nameserver 192.168.0.Y