MANIPULATION DE LA TABLE DE ROUTAGE IP par G.Haberer, A.Peuch, P.Saadé Table des matières 1. Introduction........................................................................ 2 1.1. le but...................................................................... 2 1.2. caractéritiques.............................................................. 2 2. Installation et manipulation de IProute............................................ 2 2.1. Installation.................................................................. 2 2.2. Fichiers importants........................................................ 2 2.3. Commandes................................................................ 2 3. Méthode pour le FireWall.......................................................... 3 3.1. Principe.................................................................... 3 3.2. script...................................................................... 3 3.3. Automatisation au démarrage.............................................. 5 Dernière mise à jour le 3 mars 2004
1. Introduction 1.1. le but. Par simplicité, les machines de notre réseau ont toutes leur adresse IP qui commence par 172.16 et la même gateway (passerelle) qui est en fait un firewall. Nous nous chargons ensuite de partager les machines sur deux connexions ADSL. 1.2. caractéritiques. Les interfaces réseau du firewall seront celles-ci: eth0 sera du coté Réseau Martin IP: 172.16.1.1 NETMASK: 255.255.0.0 GATEWAY: 172.16.100.1 (2ème accès ADSL) eth2 mènera vers le routeur internet IP: 172.19.1.91 NETMASK: 255.255.0.0 GATEWAY: 172.19.1.1 (1er accès ADSL) eth1 est inutilisé pour l instant mais pourrait mener à une machine en DMZ (demilitarized zone). 2.1. Installation. On installe iproute par la commande: # apt-get install iproute 2.2. Fichiers importants. Ils se situent dans /etc/iproute2/ Celui qui nous sera utile est rt tables : # less /etc/iproute2/rt tables # reserved values 255 local 254 main 253 default 0 unspec # local 1 inr.ruhep 2.3. Commandes. 2. Installation et manipulation de IProute 2.3.1. Commandes de Listing. Permet d afficher les différentes tables et règles en vigueur: La table locale # ip route list table local broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 local 172.19.1.91 dev eth1 proto kernel scope host src 172.19.1.91 broadcast 172.19.0.0 dev eth1 proto kernel scope link src 172.19.1.91 broadcast 172.16.0.0 dev eth0 proto kernel scope link src 172.16.1.3 broadcast 172.16.255.255 dev eth0 proto kernel scope link src 172.16.1.3 broadcast 172.19.255.255 dev eth1 proto kernel scope link src 172.19.1.91 broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 local 172.16.1.3 dev eth0 proto kernel scope host src 172.16.1.3 2003-2004 http://rzomt.free.fr 2/5
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 La table principale (commande équivalente à ip route ls) # ip route list table main 172.19.0.0/16 dev eth1 proto kernel scope link src 172.19.1.91 172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.1.3 default via 172.19.1.1 dev eth1 default via 172.16.100.1 dev eth0 La table default est vide Règles de routage: # ip rule ls 0: from all lookup local 32766: from all lookup main 32767: from all lookup default 2.3.2. commandes de création. Ajout d une route: # ip route add default via ip_de_redirection dev interface_utilisée table nom_table Ajout d une règle à une table préexistante : # ip rule add from plage_ip_source table nom_table Tout ce qui aura comme source plage ip source sera considéré comme dépendant de la table nom table, et prendra donc la route définie auparavant. Il sera redirigé vers l interface interface utilisée pour être envoyé à l adresse ip de redirection. 3.1. Principe. 3. Méthode pour le FireWall On veut rediriger les paquets des machines des domaines: 172.16.1.0/24 172.16.3.0/24 172.16.7.0/24 172.16.10.0/24 172.16.11.0/24 172.16.30.0/24 172.16.40.0/24 172.16.60.0/24 172.16.80.0/24 172.16.95.0/24 172.16.155.0/24 de eth0 vers eth1 en direction de la passerelle 172.19.1.1 On veut rediriger les machines des domaines restant de eth0 vers eth0 vers la passerelle 172.16.100.1 3.2. script. On lancera ce script au démarrage de la machine pour vider les informations déjà existantes et inscrire les nouvelles. Il s appelera iproute.sh. #!/bin/bash 2003-2004 http://rzomt.free.fr 3/5
#IPROUTE2 #à ne décommenter que pour la première fois, lors de #la création des tables GOODIP et BADIP #echo "195 GOODIP" >> /etc/iproute2/rt_tables #echo "200 BADIP" >> /etc/iproute2/rt_tables # on purge les règles précedantes ip rule del priority 100 from 172.16.1.1 table BADIP ip rule del priority 101 from 172.19.1.91 table GOODIP ip rule del priority 102 from 172.16.1.0/24 table GOODIP ip rule del priority 103 from 172.16.3.0/24 table GOODIP ip rule del priority 104 from 172.16.7.0/24 table GOODIP ip rule del priority 105 from 172.16.10.0/24 table GOODIP ip rule del priority 106 from 172.16.11.0/24 table GOODIP ip rule del priority 107 from 172.16.30.0/24 table GOODIP ip rule del priority 108 from 172.16.40.0/24 table GOODIP ip rule del priority 109 from 172.16.60.0/24 table GOODIP ip rule del priority 110 from 172.16.80.0/24 table GOODIP ip rule del priority 111 from 172.16.95.0/24 table GOODIP ip rule del priority 112 from 172.16.155.0/24 table GOODIP ip rule del priority 113 from 172.16.0.0/16 table BADIP # on met les règles en leur donnant une priorité ip rule add priority 100 from 172.16.1.1 table BADIP ip rule add priority 101 from 172.19.1.91 table GOODIP ip rule add priority 102 from 172.16.1.0/24 table GOODIP ip rule add priority 103 from 172.16.3.0/24 table GOODIP ip rule add priority 104 from 172.16.7.0/24 table GOODIP ip rule add priority 105 from 172.16.10.0/24 table GOODIP ip rule add priority 106 from 172.16.11.0/24 table GOODIP ip rule add priority 107 from 172.16.30.0/24 table GOODIP ip rule add priority 108 from 172.16.40.0/24 table GOODIP ip rule add priority 109 from 172.16.60.0/24 table GOODIP ip rule add priority 110 from 172.16.80.0/24 table GOODIP ip rule add priority 111 from 172.16.95.0/24 table GOODIP ip rule add priority 112 from 172.16.155.0/24 table GOODIP ip rule add priority 113 from 172.16.0.0/16 table BADIP #on vide les tables GOODIP et BADIP ip route flush table GOODIP ip route flush table BADIP ###On remplit la table GOODIP #tout ce qui va vers 172.16.0.0/16 part par eth0 ip route add to 172.16.0.0/16 dev eth0 table GOODIP #toutes les autres destinations ayant pour source 172.19.1.91 #partent par eth2 et passent par la passerelle 172.19.1.1 ip route add to default src 172.19.1.91 via 172.19.1.1 dev eth2 table GOODIP ###On remplit la table BADDIP #tout ce qui va vers 172.16.0.0/16 ayant pour source 172.16.1.1 partent par eth0 2003-2004 http://rzomt.free.fr 4/5
ip route add to 172.16.0.0/16 src 172.16.1.1 dev eth0 table BADIP #toutes les autres destinations partent par eth0 et passent par la passerelle 172.16.100.1 ip route add to default via 172.16.100.1 dev eth0 table BADIP #on vide le cache pour appliquer les règles dès maintenant à tout les échanges ip route flush cache 3.3. Automatisation au démarrage. 3.3.1. Mise en place. On copie le script dans le dossier /etc/init.d/ fwmt2: # cp iproute.sh /etc/init.d/ On programme l automatisation: fwmt2: # cd /etc/init.d/ fwmt2:/etc/init.d# update-rc.d iproute.sh defaults Le message suivant s affichera: Adding system startup for /etc/init.d/iproute.sh... /etc/rc0.d/k20iproute.sh ->../init.d/iproute.sh /etc/rc1.d/k20iproute.sh ->../init.d/iproute.sh /etc/rc6.d/k20iproute.sh ->../init.d/iproute.sh /etc/rc2.d/s20iproute.sh ->../init.d/iproute.sh /etc/rc3.d/s20iproute.sh ->../init.d/iproute.sh /etc/rc4.d/s20iproute.sh ->../init.d/iproute.sh /etc/rc5.d/s20iproute.sh ->../init.d/iproute.sh 3.3.2. Annulation du démarrage automatique. On efface le script de /etc/init.d/: # cd /etc/init.d/ # rm iproute.sh On lance la commande d effacemment: #update-rc.d iproute.sh remove Dernière mise à jour le 3 mars 2004 G.Haberer, A.Peuch, P.Saadé 2003-2004 http://rzomt.free.fr 5/5