J'ai Ubuntu 13.10, Saucy Salamander x64 fonctionnant en tant qu'invité dans VirtualBox (avec Windows 7 en tant qu'hôte).
J'ai écrit ceci /etc/network/interfaces
car je dois ajouter un grand nombre de routes statiques manuelles permanentes permanentes:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
up ip -force -b /etc/network/eth1-routes
eth1-routes
contient plusieurs lignes de la forme:
route add 10.0.0.0/8 via 172.x.x.x dev eth1
où 172.x.x.x
est la passerelle que VBox NAT me donne.
En exécutant netstat -nr
, il apparaît que toutes mes routes manuelles ont été ajoutées avec succès, y compris les routes permettant d’accéder à deux serveurs DNS via 172.x.x.x
.
Cependant, le gestionnaire de réseau indique que les deux périphériques ne sont "pas gérés". Si je règle /etc/NetworkManager/NetworkManager.conf
managed=true
, le gestionnaire de réseau fonctionne à nouveau, mais mes itinéraires sont perdus. Mon compromis actuel est donc de définir managed=false
et de commenter les lignes eth0
dans /etc/network/interfaces
.
Existe-t-il un moyen de gérer un périphérique tout en faisant des routes manuelles comme ci-dessus?
Network Manager ne reconnaît pas les instructions que vous avez écrites dans /etc/network/interfaces
.
Vous pouvez donc ajouter votre script eth1-routes
en tant que script de répartition pour Network Manager dans /etc/network/if-up.d/
. Il sera exécuté chaque fois qu'une interface monte. Peut-être devrez-vous écrire dans votre script une "clause if" pour ajouter les routes uniquement si eth1
apparaît. Comme ça:
if [ "$IFACE" == "eth1" ]; then
route add ...
route add ...
fi
Network Manager gère ses propres routes statiques - ouvrez Network Manager et sélectionnez "connexion filaire 1". Sélectionnez Modifier. sélectionnez l'onglet IPv4. Au bas de cette page se trouve un bouton "Itinéraires". C'est là que vous les ajoutez. Une fois terminé, NM écrit dans un fichier avec les droits root dans son répertoire/etc/NetworkManager/system-connections/appelé "Connexion filaire 1".
Exemple suit
ls -l /etc/NetworkManager/system-connections/
total 4.0K
-rw------- 1 root root 216 Aug 26 10:38 Wired connection 1
Sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1
[802-3-ethernet]
mac-address=A:Real:Mac:Add:re:ss
[connection]
id=Wired connection 1
uuid=df4491fc-0981-4071-82ae-04c7b2d6d9fc
type=802-3-ethernet
[ipv6]
method=auto
[ipv4]
method=auto
route1=10.2.2.0/24,10.1.1.68,1
Où 10.2.2.0 est le réseau de destination et 10.1.1.68 est la passerelle.
Si vous souhaitez ajouter une route à Ubuntu qui continue à redémarrer et n'utilise pas l'interface par défaut comme passerelle, vous souhaiterez peut-être ajouter une instruction de route au fichier de configuration NetworkManager pour l'interface spécifique.
Ajoutez une route au fichier de configuration /etc/NetworkManager/system-connections/"connection name" en ajoutant l’instruction route au fichier de configuration pour (en supposant que IPv4). Le parcours comporte quatre parties. "le premier étant le réseau ou l'adresse IPv4 de destination (ordre d'octet réseau), le second le préfixe réseau ou d'adresse de destination (1 - 32), le troisième étant le saut suivant (ordre d'octets réseau) si any, et le quatrième étant la métrique de route ".
[ipv4]
method=auto
route1=172.16.0.0/16,192.168.3.1,1
Cela équivaut à définir l'itinéraire en utilisant l'instruction de route suivante:
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.3.1
Le nom clé de la route est défini dans le tableau 12 de la documentation destinée aux développeurs NetmorkManager. Veuillez consulter l'URL suivante pour plus d'informations: https://developer.gnome.org/NetworkManager/0.9/ref-settings.html