GNU/Linux et le réseau

Transcription

GNU/Linux et le réseau
GNU/Linux et le réseau
Cédric Blancher
[email protected] / [email protected]
—
Install Party, ENS Cachan
11 novembre 2003
Introduction
1
GNU/Linux est une bête de réseau
I Nombre de périphériques impressionnant
I La plupart des couches physiques et MAC
I Nombreuses fonctionnalité avancées
I Nombreuses applications supportées
Cédric Blancher
Introduction
2
Un Linux sans support réseau ?
➥ Pourquoi faire ?
Cédric Blancher
Plan
3
Les pilotes réseau
I Pilotes de périphériques physiques
I Pilotes spéciaux
Les fontionnalités avancées
I Routeur avancé
I Tunneling
I Firewalling
I Bridging et VLAN
I Qualité de service
Pour aller plus loin...
Cédric Blancher
Plan
Les pilotes réseau
Les pilotes réseau
I Pilotes de périphériques physiques
I Pilotes spéciaux
Les fontionnalités avancées
I Routeur avancé
I Tunneling
I Firewalling
I Bridging et VLAN
I Qualité de service
Pour aller plus loin...
Cédric Blancher
4
Les pilotes réseau
5
Les pilotes réseau
I Les pilotes de périphériques
➥ Permettent d’accéder aux réseau physiques
I Les pilotes spéciaux
➥ Permettent de construire des liens logiques "exotiques" ;)
Cédric Blancher
Les pilotes réseau
6
Les pilotes de périphériques
I Interfaces ethernet (10/100/1000/10G)
I Token Ring, FDDI
I WAN (X25, Serial, etc.)
I Wireless USB, BlueTooth
I Modems RTC/RNIS/ADSL
Cédric Blancher
Les pilotes réseau
7
Les pilotes USB
I Adaptateurs USB vers Ethernet
I Modems USB (ADSL en particulier)
I Multi-purpose USB Networking Framework : l’USB à tout faire
Cédric Blancher
Les pilotes réseau
8
Les réseaux sans-fil
I 802.11
Wireless Extensions
Outil iwconfig
I BlueTooth
Support BNET
I Infrarouge
Support IrLan
Support PPP sur IrComm
Cédric Blancher
Les pilotes réseau
9
Aggrégat d’interfaces Ethernet
I Module bonding.o
I Outil ifenslave
modprobe bonding
ifconfig bond0 [...]
ifconfig eth0 up
ifenslave bond0 eth0
ifconfig eth1 up
ifenslave bond0 eth1
Cédric Blancher
Les pilotes réseau
10
Diagnostic d’interfaces Ethernet
I Interface MII (mii-diag, mii-tool)
mii-diag eth0
I IOCTL ETHTOOL (ethtool)
ethtool eth0
Cédric Blancher
Les pilotes réseau
11
Traffic shaper simple (voire simplissime)
I Module shaper.o
I Outil shapecfg
modprobe
shapecfg
shapecfg
ifconfig
shaper
attach shaper0 eth0
speed shaper0 64000
shaper0 [...]
➥ Repose sur le routage : utilisable en sortie seulement
Cédric Blancher
Les pilotes réseau
12
Support PPP
I Base des liens RTC, RNIS
I Outil pppd
I Modules PPPoA, PPPoE en espace noyau
I Support multilink
I Excellent outil pour les tunnels
Cédric Blancher
Les pilotes réseau
13
Interface TUN/TAP
I Interface virtuelle point à point
I Mode Ethernet : TAP
I Mode IP : TUN
I Permet à un programme d’injecter des trames via /dev/net/tun
vers tap0/tun0
➥ Excellent outil pour faire des tunnels ou programmer
Cédric Blancher
Plan
Les fonctionnalités
Les pilotes réseau
I Pilotes de périphériques physiques
I Pilotes spéciaux
Les fontionnalités avancées
I Routeur avancé
I Tunneling
I Firewalling
I Bridging et VLAN
I Qualité de service
Pour aller plus loin...
Cédric Blancher
14
Les fonctionnalités
15
Routage avancé
I Option IP Advanced router
I Routage avancé : policy routing (source, fwmark, TOS)
I Equal Cost Multipath : base du partage de charge
I Nécessite le package iproutea
➥ Lire ABSOLUMENT : Linux Advanced Routing and Traffic
Control HOWTOb
a ftp://ftp.inr.ac.ru/ip-routing/
b http://lartc.org/
Cédric Blancher
Les fonctionnalités
16
Exemple de routage avancé : proxy HTTP transparent
I Marquage des paquets HTTP avec Netfilter
iptables -t mangle -A PREROUTING -p tcp --dport 80 \
-j MARK --set-mark 0x1
I Reroutage des paquets marqués vers le proxy
echo 200 www >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table www
ip route add default via $PROXY dev eth0 table www
ip route flush cache
➥ Pour la suite, voir section Firewalling
Cédric Blancher
Les fonctionnalités
17
Tunneling
I Encapsuler pour faire des tunnels
192.168.1.0/24
NetA
192.168.1.1
Tunnel
172.16.1.1
Routeur A
LAN/WAN
172.16.2.1
Routeur B
192.168.2.0/24
Cédric Blancher
192.168.2.1
NetB
Les fonctionnalités
18
Différents types de tunnels
I IPIP : encapsulation IPv4 directement sur IPv4 (Linux specific)
I GRE : IPv4 sur IPv4, mais plus universel
I SIT : IPv6 sur IPv4
I RFC 2473 : IPv6 sur IPv6
I IPSEC avec l’interface native des 2.5/2.6 ou FreeS/WANa
a http://www.freeswan.ca/
Cédric Blancher
Les fonctionnalités
19
Un tunnel GRE vite fait
I Sur le routeur A
modprobe ip_gre
ip tunnel add netb mode gre remote $B local $A ttl 255
ip link set netb up
ip addr add 10.0.0.1 dev netb
ip route add $NETB dev netb
I Sur le routeur B
modprobe ip_gre
ip tunnel add neta mode gre remote $A local $B ttl 255
ip link set neta up
ip addr add 10.0.0.2 dev neta
ip route add $NETA dev neta
Cédric Blancher
Les fonctionnalités
20
IPSEC
I Interface Native
Portage du projet KAME
Repose sur la CryptoAPIa
Fonctionne à l’aide de transformations
Démon Racoon
I Interface FreeS/WAN
Jeu de patches assez lourd
Couche crypto propre et peu évolutive
Fonctionne sur des interfaces
Opportunistic Encryption
a http://www.kerneli.org/
Cédric Blancher
Les fonctionnalités
21
Firewalling : Netfiltera
I Filtrage de paquets
I NAT complet
I Mangling
a http://www.netfilter.org/
Cédric Blancher
Les fonctionnalités
22
Firewalling : Netfilter (suite)
I Netfilter est le framework de filtrage de paquet
I iptables est l’outil pour configurer Netfilter pour IPv4
I Support IPv6 : ip6tables
I Support ARP : arptables a
I Support IPX et DECNET : rien pour le moment ;)
I Support du niveau 2 : ebtables
➥ Outil modulaire et extensible, pleins de fonctionnalités rigolotes
(cf. Patch’o’Matic)
a http://ebtables.sourceforge.net/
Cédric Blancher
Les fonctionnalités
23
Firewalling : Netfilter (suite)
NF_IP_PRE_ROUTING
NF_IP_FORWARD
Routage 1
NF_IP_LOCAL_IN
NF_IP_POST_ROUTING
Routage 2
NF_IP_LOCAL_OUT
Applications locales
Cédric Blancher
Les fonctionnalités
24
Firewalling : fin du proxying transparent
I Redirection alternative full-Netfilter
iptables -t nat -A PREROUTING -p tcp --dport 80 \
-j DNAT --to $PROXY:3128
I Sur le proxy
iptables -t nat -A PREROUTING -p tcp --dport 80 \
-j REDIRECT --to-ports 3128
Cédric Blancher
Les fonctionnalités
25
Firewalling : Netfilter (suite et fin)
I Espace documentation du site officiela
I Iptables Tutorial de Oskar Andreassonb
I Article Linux Mag’ HS12 spécial Firewalls
a http://www.netfilter.org/documentation/
b http://iptables-tutorial.frozentux.net/
Cédric Blancher
Les fonctionnalités
26
Bridging : transformer son Linux en switch (et plus)
I Module bridge.o
I Outil brctl
I Supporte le Spanning Tree (STP)
modprobe bridge
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
Cédric Blancher
Les fonctionnalités
27
Pourquoi que c’est bien un bridge ? Parce que !
I Permet de connecter facilement des réseaux
I Permet de faire des firewalls "transparents"
I Permet de faire des proxies transparents
I Permet de faire des topologies de folie :)
Cédric Blancher
Les fonctionnalités
28
Firewalling transparent
I Les noyaux 2.6 incluent le support firewall sur un bridge
I Pour les noyaux 2.4, utiliser ebtablesa
I Le contenu IP des trames forwardées apparait en FORWARD
I Vous pouvez filter au niveau 2 avec ebtables, même faire du NAT
sur les MACs
➥ C’est pas franchement transparent, mais c’est souple et
franchement sympa
a http://ebtables.sourceforge.net
Cédric Blancher
Les fonctionnalités
29
Exemple de proxy HTTP transparent (Re)
I On utilise le Frame Diverter
divert on eth0 enable
divert on eth0 tcp add dst 80
I Le contenu IP des trames ciblées est remonté à la couche IP
I Hop, y’a plus qu’à rediriger le flux (cf. supra)
Cédric Blancher
Les fonctionnalités
30
Le support des VLANs 802.1q
I C’est quoi un VLAN ?
I C’est quoi 802.1q ?
Trame ethernet
MAC Destination
MAC Source
Type
Data
Checksum
Trame 802.1Q sur ethernet
MAC Destination
MAC Source
Type
802.1Q
Type
Data
Checksum
Res.
Priorité
VLAN ID
➥ Nécessite un switch administrable supportant cette fonctionnalité
Cédric Blancher
Les fonctionnalités
31
Le rapport avec mon GNU/Linux ?
eth0
vlan2
vlan3
vlan4
802.1q
Workgroup Switch
CiscoSystems
Catalyst
VLAN 2
VLAN 3
VLAN 4
Cédric Blancher
Les fonctionnalités
32
Comment on configure le tout ?
I Module 8021q.o
I Outil vconfig
modprobe 8021q
ifconfig eth0 up
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
vconfig add eth0 2
vconfig add eth0 3
vconfig add eth0 4
➥ On a 3 interfaces vlan2, vlan3 et vlan4 : on peut les configurer,
définir du routage, du filtrage, etc.
Cédric Blancher
Les fonctionnalités
33
La Qualité de service
I Section QoS and/or fair queueing
I Limitation de bande passante
I Priorité de flux
I Utilise l’outil tc du package iproute
➥ On pourrait en parler pendant des heures : cf. LARTC
Cédric Blancher
Plan
Pour aller plus loin
Les pilotes réseau
I Pilotes de périphériques physiques
I Pilotes spéciaux
Les fontionnalités avancées
I Routeur avancé
I Tunneling
I Firewalling
I Bridging et VLAN
I Qualité de service
Pour aller plus loin...
Cédric Blancher
34
Pour aller plus loin
35
Nous n’avons vu que les fonctionnalités du noyau. Des applications
peuvent encore étendre nos capacités.
I De nouveaux tunnels : HTTPTunnel, ICMPTunnel, etc.
I Des VPNs : OpenVPN, vtun, PPP sur Stunnel, PPP sur SSH,
etc.
I Du routage dynamique : Quagga (fork de Zebra)
I Haute dispo, partage de charge : KeepAlived, LVS
I FS distants : SMB, NCP, AppleShare, NFS, InterMezzo, Coda,
AFS, LUFS, etc.
Cédric Blancher
Pour aller plus loin
36
Des trucs sympas à venir
I Failover complet pour Netfitler
I Refonte de Netfilter
I Toujours plus de périphériques
I Et pleins d’autres trucs dont je ne suis pas au courant
Cédric Blancher
Spam
37
Cette présentation est basée sur un article du Linux Mag’ HS17
spécial noyau
Cédric Blancher
Fin
38
That’s all folks
➥ Si vous avez des questions, c’est le moment
Cédric Blancher

Documents pareils