web-dev-qa-db-ja.com

永続的なルーティングを設定する(Ubuntu 13.04)

2つの接続があります:wlan0(gw:192.168.1.1)およびeth0(gw:192.168.2.1) 。
デフォルトの接続はwlan0ですが、eth0を介していくつかのWebサイトをロードしたかったので、次のようなWebサイト/ IPに routing を設定します。

route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

これは機能しますが、は永続的ではありません(再起動後に消えます)。このようなコードを/etc/network/interfacesに入れようとしました:

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

しかし、Ubuntuを再起動すると、ネットワークなしで起動します(クラッシュします)。また、これらの行をそのファイルに入れます。

auto eth0
address 192.168.2.125
gateway 192.168.2.1
netmask 255.255.255.0

ただし、ネットワークなしでシステムは起動します。

現在、routeコマンドを/etc/rc.localに入れていますが、機能しますが、永続的ではありません。なぜなら、eth0(何らかの理由で)、ルーティングが消えます。

いくつかのメモ:
ルーティングするIPの長いリストがあります。
接続したルーター、eth0はDHCPに設定されています。
eth0静的およびDHCPの両方の方法で接続しようとしました。

助けてくれてありがとう!

12
Azamat

私のシステムでは、実行許可755でscriptというフォルダー/etc/network/if-up.d/にスクリプトを作成すると機能しました。

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

そこで、接続が確立されたときに実行するコマンドを追加できます。

#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 ...

/etc/network/interfacesおよびiface auto eth0またはそこにあるもの以外に、eth0 inet dhcpに何かを追加する必要はありません。 NetworkManagerは、スクリプトexec run-parts /etc/network/if-up.d/etc/NetworkManager/dispatcher.d/01ifupdownによってこのディレクトリのスクリプトを呼び出します。これをテストするには(私の場合):

# 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
10
chaos

インターフェイスにルートを追加するための構文は次のとおりです。

up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

最後にデバイスを追加する必要はありません。

Interfacesファイルの例:

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

buntu Serverで静的ルートを設定する方法 からの情報に基づく

7
NGRhodes