web-dev-qa-db-ja.com

ip route addが機能しないのに、ip route addの詳細が少なくなり、変更が機能するのはなぜですか?

Ip route addに問題があります。驚いたことに、ルートを追加してから変更することはできますが、直接追加することはできません。

# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
RTNETLINK answers: No such process

だが:

# ip route add 192.168.0.0/16 dev eth0
# ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101

私のインターフェースファイルは:

iface lo inet loopback
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.xxx
    netmask 255.255.255.192
    network 178.xxx.xxx.xxx
    broadcast 178.xxx.xxx.xxx
    gateway 178.xxx.xxx.xxx
auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.0.0

私は言わなければならない少し迷っています。私は追加してから変更することに問題はありませんが、それが直接ではなく2つのステップで機能する理由を理解しないのは満足のいくものではありません。私は理解せずにマニュアルページを何度も読んでいます。

回答の助けを借りて更新:

eth0eth0:0にゲートウェイができましたが、192.168.0.0/16以外のすべてのトラフィックに178.xxx.xxx.xxxアドレスからのトラフィックとしてマークを付けたいので、ルーティングを追加しましたルール。多分eth0192.168.1.101 ipを使用し、次に178.xxx.xxx.xxx ip on eth0:0を使用すると、ルーティングルールがなくても機能しますが、次のようになります。

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.131
    netmask 255.255.255.192
    network 178.xxx.xxx.128
    broadcast 178.xxx.xxx.191
    gateway 178.xxx.xxx.190
    up /sbin/ip route add default via 178.xxx.xxx.190 dev eth0 table 125
    up /sbin/ip rule add from 178.xxx.xxx.128/26 table 125
    post-down /sbin/ip route del default via 178.xxx.xxx.190 dev eth0 table 125
    post-down /sbin/ip rule del from 178.xxx.xxx.128/26 table 125

auto eth0:0
iface eth0:0 inet static
    address 192.168.1.101
    netmask 255.255.0.0
    gateway 192.168.255.254

rp_filterも無効にしています:

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

ご協力いただきありがとうございます!

7

インターフェースファイルによると、すでにネットワーク192.168.0.0/16にいるので、このネットワークへのゲートウェイは必要ありません。

2
Mathias Weidner

IPセットアップの結果を調整した場合(私は192.168.x.0/24を使用しています):

$ sudo ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101

私は得る

RTNETLINKの回答:そのようなプロセスはありません

だが

$ sudo ip route add 192.168.0.0/16 via 192.168.1.254 src 192.168.1.101

動作します。これは、192.168.255.254がローカルサブネットまたは既知のルート上にないためだと思います。そのため、最初にそこへのルートが必要です。

1
Andrew

他の人がeth0:1のIPが192.168.1.101/16であると述べているので、そのサブネットの静的ルートが既にあることを意味します。 192.168.255.254を指すそのインターフェースのゲートウェイを追加する必要があるようです。

0
HostBits

少し遅れていることは承知していますが、「ルート」の目的を明確にしたいと思います。あなたが言った :

192.168.0.0/16を除くすべてのトラフィックに、178.xxx.xxx.xxxアドレスからのトラフィックとしてマークを付けたい

routeコマンドを使用すると、ソースではなく宛先に基づいてルートを決定できます。使用するゲートウェイに応じてIPを使用するようにサービスを構成する必要があります。 Mathias Weidnerが言ったように、直接接続されているため、ゲートウェイは必要ありません(同じサブネット=ルーティングなし)。

0
Dijkman