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