web-dev-qa-db-ja.com

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

コメントアウトすると、ネットワークマネージャーとインターネットアクセスは取得できますが、希望するルートは取得できません。

6
Milan

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-upupdownpost-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がネットワークを立ち上げるときには、デフォルトのルートが必要です。