質問: ubuntu 10.10で永続的なルートを設定する方法 10.0.0で始まるipアドレスにアクセスするときに、ゲートウェイ10.0.1.252を使用するようにワイヤレスネットワークを構成しようとしています。私はinterfacesファイルでそれを行う方法についていくつかの説明に従いましたが、成功しませんでした。これは私の最初の/ etc/network/interfacesファイルの内容です:auto lo iface lo inet loopback 数時間検索して読んだ後、私はそれを次のように見せました:# the loopback network interface auto lo iface lo inet loopback # the primary network interface auto eth1 iface eth1 inet static address 10.0.1.171 netmask 255.255.255.0 broadcast 10.0.1.255 gateway 10.0.1.254 # static route up route add -net 10.0.0.0/24 gw 10.0.1.252 dev eth1 言及された構成は、ネットワークを再起動した後、ubuntuを再起動するまで機能します。 ubuntuを再起動すると、ネットワークマネージャーが失われ、インターネットまたは目的のアドレス10.0.0.xに接続できなくなります。何が間違っているのですか、それとも新しいバージョンのubuntuで永続的なルートを設定する簡単な方法はありますか?有線接続を使用していないため、ワイヤレス接続を構成していることを説明します。更新1:(〜$ ifconfig)eth0 link encap:ethernet hwaddr 00:24:81:64:9a:5c up broadcast multicast mtu:1500 metric:1 rx packets:0 errors:0 dropped:0 overruns:0 frame:0 tx packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 rx bytes:0 (0.0 b) tx bytes:0 (0.0 b) interrupt:17 eth1 link encap:ethernet hwaddr 00:21:00:d8:25:45 inet addr:10.0.1.171 bcast:10.0.1.255 mask:255.255.255.0 inet6 addr: fe80::221:ff:fed8:2545/64 scope:link up broadcast running multicast mtu:1500 metric:1 rx packets:0 errors:0 dropped:0 overruns:0 frame:0 tx packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 rx bytes:0 (0.0 b) tx bytes:0 (0.0 b) interrupt:17 lo link encap:local loopback inet addr:127.0.0.1 mask:255.0.0.0 inet6 addr: ::1/128 scope:host up loopback running mtu:16436 metric:1 rx packets:284 errors:0 dropped:0 overruns:0 frame:0 tx packets:284 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 rx bytes:21280 (21.2 kb) tx bytes:21280 (21.2 kb) 更新2:(〜$ route -n)kernel ip routing table destination gateway genmask flags metric ref use iface 10.0.0.0 10.0.1.252 255.255.255.0 ug 0 0 0 eth1 10.0.1.0 0.0.0.0 255.255.255.0 u 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 u 1000 0 0 eth1 0.0.0.0 10.0.1.254 0.0.0.0 ug 100 0 0 eth1 pdate 3:このコードに問題があることに気づきました:iface eth1 inet static address 10.0.1.171 netmask 255.255.255.0 broadcast 10.0.1.255 gateway 10.0.1.254 コメントアウトすると、ネットワークマネージャーとインターネットアクセスは取得できますが、希望するルートは取得できません。
回答: ifupdownを介して(つまり、/etc/network/interfacesで)ネットワークを構成し、手動でネットワークを開始したときに機能するが、再起動後には機能しない場合、1つの可能性は、セットアップがネットワークを正しく起動していることです。他のシステムコンポーネントはネットワークを再構成します。明らかな容疑者はnetworkmanagerです。 /etc/networkmanager/nm-system-settings.confの[ifupdown]の下にmanaged=falseがあることを確認してください。 (これは、ubuntu 10.04では少なくともデフォルトですが、10.10で変更されたか、以前のnetwork managerの実験で変更した可能性があります。)network managerを使い続ける場合は、追加のルートを追加するように指示できます。 ubuntu 10.04以降(他のディストリビューションではnetwork managerが同じように設定されていない可能性があります)、network managerは/etc/network/if-*.d/でifupdownスクリプトを実行します。これらのスクリプトの役割は、pre-upのup、down、post-downおよび/etc/network/interfacesディレクティブと同様です(network managerは実行しません)。 network managerがこのインターフェースを管理できるように、eth1 from/etc/network/interfaces`に関するすべての言及をコメントアウトしてください。スクリプトは interfaces(5)man page に記載されています。これらは、開始または停止されている接続に関する情報を含む環境で実行されます。特に、$ifaceはインターフェース名です。したがって、次のスクリプトを/etc/network/if-up.d/zzzz-milan-wireless-routeに入れます。#!/bin/sh if [ "$iface" = "eth1" ]; then route add -net 10.0.0.0/24 gw 10.0.1.252 dev eth1 fi 実行可能にします:chmod 755 /etc/network/if-up.d/zzzz-milan-wireless-route。次回network managerがネットワークを立ち上げるときには、デフォルトのルートが必要です。