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つのステップで機能する理由を理解しないのは満足のいくものではありません。私は理解せずにマニュアルページを何度も読んでいます。
回答の助けを借りて更新:
eth0
とeth0:0
にゲートウェイができましたが、192.168.0.0/16
以外のすべてのトラフィックに178.xxx.xxx.xxx
アドレスからのトラフィックとしてマークを付けたいので、ルーティングを追加しましたルール。多分eth0
と192.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
ご協力いただきありがとうございます!
インターフェースファイルによると、すでにネットワーク192.168.0.0/16にいるので、このネットワークへのゲートウェイは必要ありません。
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がローカルサブネットまたは既知のルート上にないためだと思います。そのため、最初にそこへのルートが必要です。
他の人がeth0:1のIPが192.168.1.101/16であると述べているので、そのサブネットの静的ルートが既にあることを意味します。 192.168.255.254を指すそのインターフェースのゲートウェイを追加する必要があるようです。
少し遅れていることは承知していますが、「ルート」の目的を明確にしたいと思います。あなたが言った :
192.168.0.0/16を除くすべてのトラフィックに、178.xxx.xxx.xxxアドレスからのトラフィックとしてマークを付けたい
routeコマンドを使用すると、ソースではなく宛先に基づいてルートを決定できます。使用するゲートウェイに応じてIPを使用するようにサービスを構成する必要があります。 Mathias Weidnerが言ったように、直接接続されているため、ゲートウェイは必要ありません(同じサブネット=ルーティングなし)。