
現在、異なるネットワークに2つのネットワークカードが設定されているワークステーションがあります。
現在の設定は次のとおりです。eth0
:LAN
eth1:外部インターネット
外部インターネットにアクセスするために、eth1にデフォルトゲートウェイを設定しました。また、eth0のLANのデフォルトゲートウェイを設定するパスもあります。問題なくインターネットを閲覧し、ローカルLANにアクセスできます。私が経験している問題は、LAN上の他のシステムからUbuntuシステムにアクセスしようとしたときにパケットがeth0に入るがeth1に出ることです。 LANサブネットへのすべてのトラフィックがeth1を無視するようにルールを設定するにはどうすればよいですか?
答え1
2番目の設定として基本ゲートウェイを使用すると、eth0
本質的にインターネット全体にアクセスできると主張しますeth0
。この誤った主張は実際には真実ではないため、問題を引き起こす可能性があります。
明らかに、デフォルトゲートウェイパスはルーティングテーブルのデフォルトゲートウェイパスの後ろにeth0
あります。eth1
ルーティングテーブルエントリは主に特異性(たとえばネットマスクの長さの短縮)に基づいてソートされ、2番目はメトリック値に基づいてソートされます。定義によれば、デフォルトゲートウェイパスのネットマスクの長さがある/0
ため、メトリック値のみがソート順序に影響を与える可能性があります。
複数のネットワークインターフェイスがあるたびにルーティングテーブル設定は、ネットワークの実際のトポロジを反映する必要があります。。インターフェイスを介してすべてのインターネットにアクセスできない場合は、デフォルトのeth0
ゲートウェイエントリを設定することはお勧めできません。システムは各ネットワークインターフェイスから直接接続できるシステムを含むルートエントリを自動的に生成する必要があるため、LANに複数のネットワークセグメントが含まれていない場合は何もする必要はありません。
実際には、インターネットにアクセスできるインターフェイスに対してのみデフォルトゲートウェイエントリを設定する必要があります。自分のLANにのみ接続されているインターフェイスのデフォルトゲートウェイエントリをそのままにすることは完全に正当です。未設定。
LANに複数のネットワークセグメントが含まれている場合は、そのセグメントにより具体的なルートを追加する必要があるかもしれません。例:eth0
ネットワークセグメントに接続されていて、このネットワークセグメントの外側にルータを介して到達できる192.168.1.0/24
他のLANネットワークセグメントがある場合は、次のルートを設定する必要があります。192.168.2.0/24
192.168.1.1
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
または、route
次のように現在使用されていないコマンドを使用します。
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
デフォルトでは、特定のルーター/ゲートウェイシステムを使用して、到達可能なネットワークセグメント(またはネットワークセグメントの組み合わせ)を識別します。ゲートウェイシステム自体は直接アクセスできる必要があります。通常、ルーターにパケットを送信するとルーターが決定するため、親ルーティング(「このルーターに移動し、そこから別のルーターに...」)を指定することはできません。セルフルーティングテーブル)次のパケットで何が起こるべきか。
LANが多数のネットワークセグメント(おそらく異なるルーター/ゲートウェイを介して接続可能)で構成されている場合は、すべての部分への接続方法を指定するために複数のパスエントリを作成する必要があります。デフォルトでは、これがルーティングテーブルの実際の用途です。 NICが1つしかないシステムは、単純なパフォーマンス低下のケースです。
答え2
LAN側にネットワークルータがない場合は、次のコマンドを使用してルータを作成します。
/sbin/route add -net 192.168.1.0/24 192.168.1.1 dev eth0
LAN アドレスが 192.168.1.1 から 192.168.1.255 で、192.168.1.1 がルータの IP アドレスであると仮定します。ネットマスクは255.255.255.0です。これらのアドレスが異なる場合は変更する必要があります。