web-dev-qa-db-fra.com

Configurer un routage permanent (Ubuntu 13.04)

J'ai 2 connexions: wlan0 (gw: 192.168.1.1) et eth0 (gw: 192.168.2.1).
Ma connexion par défaut est wlan0 , mais je voulais que certains sites Web se chargent via mon eth0 , j'ai donc mis en place routage pour ces sites/adresses IP comme ceci:

route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

Cela fonctionne cependant n'est pas permanent (disparaît après le redémarrage). J'ai essayé de mettre ce code dans /etc/network/interfaces comme ceci:

up route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

mais lorsque je redémarre Ubuntu, il démarre sans réseau (il se bloque). J'ai aussi mis ces lignes dans ce fichier:

auto eth0
address 192.168.2.125
gateway 192.168.2.1
netmask 255.255.255.0

mais toujours le système démarre sans réseau.

Actuellement, j’ai mis la commande route dans /etc/rc.local, cela fonctionne, mais ce n’est pas permanent, car lorsque je redémarre/reconnecte mon eth0 (pour une raison quelconque ), le routage disparaît.

Quelques notes:
J'ai une longue liste d'adresses IP à router.
Mon routeur auquel je me suis connecté eth0 est défini sur DHCP.
J'ai essayé de connecter eth0 de manière statique et DHCP.

Merci pour ton aide!

12
Azamat

Sur mon système, cela fonctionnait quand j'ai créé un script dans le dossier /etc/network/if-up.d/ appelé script avec des autorisations d'exécution 755:

#ls -la /etc/network/if-up.d/script
-rwxr-xr-x 1 root root   46 Okt 15 11:46 script

Là, vous pouvez ajouter une commande à exécuter lorsque la connexion est établie, dans votre cas:

#cat /etc/network/if-up.d/script
#!/bin/bash
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Adding additional routes on connection
route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
route add ...
route add ...

Vous n'avez pas besoin d'ajouter quelque chose dans /etc/network/interfaces en plus de auto eth0 et iface eth0 inet dhcp ou de ce que vous avez là. NetworkManager appelle les scripts de ce répertoire par exec run-parts /etc/network/if-up.d dans le script /etc/NetworkManager/dispatcher.d/01ifupdown. Vous pouvez tester ceci en (dans mon cas):

# run-parts --test /etc/network/if-up.d
/etc/network/if-up.d/000resolvconf
/etc/network/if-up.d/avahi-autoipd
/etc/network/if-up.d/avahi-daemon
/etc/network/if-up.d/ethtool
/etc/network/if-up.d/ip
/etc/network/if-up.d/ntpdate
/etc/network/if-up.d/openssh-server
/etc/network/if-up.d/openvpn
/etc/network/if-up.d/script <---- your script here
/etc/network/if-up.d/upstart
/etc/network/if-up.d/wpasupplicant
9
chaos

La syntaxe pour ajouter des itinéraires à vos interfaces est la suivante:

up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

Vous n'avez pas besoin d'ajouter l'appareil à la fin.

Exemple de fichier d'interface:

auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

Basé sur les informations de: Comment définir des routes statiques dans Ubuntu Server?

7
NGRhodes