ゲートウェイはサブネット上にある必要がありますか?


14

私は/ etc / network / interfaces(debianにあります)で、サブネットの外側にゲートウェイがあるこのようなインターフェースを立ち上げることを検討していました:

iface eth0 inet static
address 10.100.10.99
netmask 255.255.255.0
gateway 10.100.0.1

しかし、「ifup --verbose eth0」はこのエラーメッセージのみを表示します。

ifconfig eth0 10.100.10.99 netmask 255.255.255.0
 route add default gw 10.100.0.1  eth0
SIOCADDRT: No such process
Failed to bring up eth0

もちろん、ネットマスクを255.255.0.0に変更しても問題ありません。

それも可能ですか、それとも問題がある他の何かがありますか?ifupからより多くの情報を取得する方法はありますか?私はインターネット上で、それが機能するはずだと示唆する投稿1つ見る。

回答:


10

この質問にアプローチするもう1つの方法は、ローカルネットワーク上のデフォルトゲートウェイルーターに到達できない場合、どのようにしてパケットを送信するのですか?別のルーターを介して送信する必要があります。

背景として、IPパケットには通常、送信元アドレスと宛先アドレスが含まれていることを覚えておいてください。送信元アドレスと送信先アドレスです。通常、そこに到達する方法を決定するのはルーター次第です。

そのため、ネットワーク外のデフォルトゲートウェイルーターを介してIPパケットを送信する場合、次の2つのいずれかを行う必要があります。

  1. ローカルネットワークルーターは、デフォルトゲートウェイルーターに到達する方法を認識しており、宛先に到達するためにパケットをデフォルトゲートウェイルーター経由で送信する必要があるという考えに同意します。その場合、なぜローカルネットワークルーターをデフォルトゲートウェイとして使用しないのですか?

  2. ローカルネットワークルーターは、宛先に到達するためにパケットが他のルーターを介して送信されるべきであると(デフォルトで)考えています。この場合、別の方法でそれを伝える方法が必要です。この機能は存在し、「ソースルーティング」と呼ばれますが、セキュリティリスクと見なされ、ほとんどのルーターはそれを無視するように構成されています。

最後に、私の経験ではip、ゲートウェイがローカルネットワークインターフェイス経由で直接到達できない場合、Linux iproute()ツールではルートを追加できません。

いくつかのソースルーティングリファレンス:


4

デフォルトゲートウェイは、デバイスのIPアドレスと同じサブネット上にある必要があります。通常、接続しているネットワークのルーターのIPアドレスです。デフォルトルートのウィキペディアページから:

コンピュータネットワーキングでは、ゲートウェイは、別のネットワークへのアクセスポイントとして機能するTCP / IPネットワーク上のノード(ルーター)です。デフォルトゲートウェイは、IPアドレスがルーティングテーブル内の他のルートと一致しない場合にネットワークソフトウェアが使用するコンピューターネットワーク上のノードです。実際には、PCネットワークが接続されているルーターのIPアドレスです。

ホームコンピューティング構成では、ISPは多くの場合、ローカルハードウェアをインターネットに接続し、ゲートウェイとして機能する物理デバイスを提供します。このようなデバイスには、DSLルーターやケーブルルーターが含まれます。

組織システムでは、ゲートウェイは、ワークステーションから別のネットワークセグメントにトラフィックをルーティングするノードです。通常、デフォルトゲートウェイは、内部ネットワークと外部ネットワーク(インターネット)を接続します。このような状況では、ゲートウェイノードはプロキシサーバーおよびファイアウォールとしても機能します。ゲートウェイは、ヘッダーと転送テーブルを使用してパケットの送信先を決定するルーターと、ゲートウェイに出入りするパケットの実際のパスを提供するスイッチの両方にも関連付けられています。

つまり、デフォルトゲートウェイは、ネットワーク内のエントリポイントと出口ポイントを提供します。


しかし、アドレスへの静的ルートがある場合、それがサブネット上にない場合でも、デフォルトゲートウェイにできませんか?(私たちはここで技術を学び、良い習慣から離れています)。
kurtm

静的ルートは、デフォルトゲートウェイではなく、ルートにすることができます(私は理解しています)。
slm

2
デフォルトルートは同じサブネット上になければなりません。デフォルトルートは、すべてのトラフィックをサブネットから別のサブネットに転送する方法です。したがって、10.100.10.99から10.100.0.1にトラフィックを取得しようとする場合、10.100.10.0 / 24から10.100.0.0/24ネットワークに到達するには「ゲートウェイ」が必要です。デフォルトで到達できないため、10.100.0.1をデフォルトゲートウェイにすることはできません。ただし、「a」ゲートウェイにすることはできます。また、すべてのトラフィックを送信する「他のネットワークに到達する方法を指定すると」ゲートウェイになることもあります。
coteyr

1
@coteyr:でも、これは機能しています。他のサブネットへの静的ルートがあり、デフォルトゲートウェイがそのサブネット上にある場合、デフォルトルートの追加と接続のping / makeを問題なく行うことができます。あまり効率的ではないかもしれませんが、機能します。
-siride

私は言う:ルートは、あなたのサブネットをオフし、別の上に、すべてのトラフィックを取得する方法です。ルートを指定する場合、IPセグメント(またはスーパーネット-セグメントの組み合わせ)とそのセグメント/スーパーネットにアクセスするためのゲートウェイを指定するか、「ルーティングテーブルに記載されていない他のすべてに対して、これを使用できます」ゲートウェイ"。後者はデフォルトルートであり、そこで使用されるゲートウェイはデフォルトゲートウェイと呼ばれます。NICが1つしかない場合、ほとんどの場合、デフォルトルートのみが必要です。ただし、複数のNICを使用すると、他のルートも必要になる場合があります。
telcoM

2

Verizon ADSLサービスの複数の場所で同じ問題が発生しています。「デフォルトゲートウェイ」は別のサブネット上にあります。この場合、ipsecサイト間VPNを使用するにはパブリックIPアドレスが必要です。そのためには、DSLゲートウェイをブリッジモードにする必要があります。これにより、パブリックIPアドレスがDSLゲートウェイではなくルーター上にあります。

ほとんどのプロバイダーはかなり簡単にこれを行うことができますが、Verizonには困難があるようです。D-Link 2750B DSLゲートウェイを使用して、それをブリッジモードにすると、Verizonの技術者は別のサブネットでデフォルトゲートウェイを使用するように言っています。Windows 7ラップトップを使用してテストしましたが、Windowsは「あなたはばかで、これは悪い考えです-この設定を保存しますか?はい/いいえ」というエラーメッセージが表示されますが、動作します。

しかし、より厳格な健全性チェックを備えたソフトウェアは、あなたをあなた自身から守るようです...

それでも、私は仕方がありませんが、それを偽造する方法があるはずだと思います...


1

可能ですが、リンクされた記事で説明されているように、マシンはゲートウェイアドレスに到達する方法をすでに知っている必要があります。これはpost-up、ルートを手動で追加するために使用する必要があることを意味しますgateway

iface eth0 inet static
  address 10.100.10.99
  netmask 255.255.255.0
  post-up ip route 10.100.0.0/24 via 10.100.10.x # router that can route you to the 10.100.0.0/24 network
  post-up ip route 0.0.0.0 via 10.100.0.1

2
これらのip routeコマンドは、行方不明のaddコマンドを追加しても...試してみると失敗します。
ジャンダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.