永続的なルートを追加する最良の方法は何ですか?


11

再起動後に削除されないルートを追加する必要があります。私はそれを行うこれらの2つの方法を読みました:

up route add -net 172.X.X.0/24 gw 172.X.X.X dev ethXファイルに 追加 /etc/network/interfaces

または

/etc/network/if-up.d/routeファイルを作成します。

#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX

そしてそれを実行可能にします:

chmod +x /etc/network/if-up.d/route

だから私は混乱しています。それを行う最良の方法は何ですか?


1
Linuxシステムに集中しているように見えますか?(私たちはAIX、HPUX、Irix、Solarisなどを持っています...)サイトにあります。
ジェフシャラー

LinuxのDebianシステム上にあるとは明言しなかったので、申し訳ありません。思い出させてくれてありがとう。
Pozinux

回答:


14

あなたが言った/etc/network/interfacesので、それはDebianシステムです...

名前付きルーティングテーブルを作成します。例として、以下の「mgmt」という名前を使用しました。

echo '200 mgmt' >> /etc/iproute2/rt_tables

上記では、カーネルは多くのルーティングテーブルをサポートし、0〜255の番号が付けられた一意の整数によってこれらを参照しています。テーブルには名前mgmtも定義されています。

以下に、/etc/iproute2/rt_tablesいくつかの番号が予約されていることを示すデフォルトを見てください。この200の答えの選択は任意です。まだ使用されていない任意の番号を使用できます(1-252)。

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#

以下では、Debian 7/8インターフェースファイルでeth0およびを定義していeth1ます。eth1172ネットワークです。eth0DHCPも使用できます。172.16.100.10は、割り当てるIPアドレスeth1です。172.16.100.1ルーターのIPアドレスです。

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The production network interface
auto eth0
allow-hotplug eth0
# iface eth0 inet dhcp 
# Remove the stanzas below if using DHCP.
iface eth0 inet static
  address 10.10.10.140
  netmask 255.255.255.0
  gateway 10.10.10.1

# The management network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
  address 172.16.100.10
  netmask 255.255.255.0
  post-up ip route add 172.16.100.0/24 dev eth1 src 172.16.100.10 table mgmt
  post-up ip route add default via 172.16.100.1 dev eth1 table mgmt
  post-up ip rule add from 172.16.100.10/32 table mgmt
  post-up ip rule add to 172.16.100.10/32 table mgmt

ネットワークを再起動または再起動します。

更新-ELに関する解説

私はあなたが「RHELにも不思議に思っている」とコメントで気づきました。Enterprise Linux( "EL"-RHEL / CentOS / et al)では、上記の名前付きルーティングテーブルを作成します。

EL /etc/sysconfig/networkファイル:

NETWORKING=yes
HOSTNAME=host.sld.tld
GATEWAY=10.10.10.1

/etc/sysconfig/network-scripts/ifcfg-eth0静的構成を使用するEL ファイル(NetworkManagerなし、以下の例では「HWADDR」と「UUID」を指定しない)は次のとおりです。

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=10.10.10.140
NETMASK=255.255.255.0
NETWORK=10.10.10.0
BROADCAST=10.10.10.255

EL /etc/sysconfig/network-scripts/ifcfg-eth1ファイル(NetworkManagerなし、以下の例では「HWADDR」と「UUID」を指定しない)が続きます。

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=172.16.100.10
NETMASK=255.255.255.0
NETWORK=172.16.100.0
BROADCAST=172.16.100.255

EL /etc/sysconfig/network-scripts/route-eth1ファイル:

172.16.100.0/24 dev eth1 table mgmt
default via 172.16.100.1 dev eth1 table mgmt

EL /etc/sysconfig/network-scripts/rule-eth1ファイル:

from 172.16.100.0/24 lookup mgmt

0

Debianベースのディストリビューションでは、次のように静的ルートを永続的に追加できます。

 echo "up route add -net 172.X.X.X/24 gw 172.X.X.X dev ethX" | sudo tee --append /etc/network/interfaces

RHELベースのディストリビューション:

echo "172.X.X.X/24 via 172.X.X.X" | sudo tee --append /etc/sysconfig/network-scripts/route-ethX

3
これsudoは、2つのコマンドの両方で意味がありません。あなたはすでにルートになって>>いるので、うまくいくか、そうでない場合は、>>が元のユーザーとして適用され、だけがechoルートとして実行されます。また、で複数のインターフェイスが定義されている場合、これは一般的に失敗し/etc/network/interfacesます。
roaima 2017年

1
エコー "sth" | sudo teeファイル名
JSBach

これはgcpのdebianインスタンスでは機能しません
Parv Sharma

実際、Debianバージョンに関して、与えられたコマンドは/ etc / network / interfacesファイルで最後に設定されたインターフェースに大きく依存します
Gohu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.