代替ゲートウェイ経由でpingを実行するにはどうすればよいですか?


19

ネットワークには2つのモデムがあり、それぞれがルーターの後ろに隠れています。プライマリルーターは10.1.1.1にあり、バックアップルーターは10.1.1.2にあり、両方とも10.1.1.0/24サブネットに構成されています。両方のルーターのゲートウェイは192.168.0.1に構成されています。ただし、ゲートウェイが10.1.1.1の場合に表示される192.168.0.1は、ゲートウェイが10.1.1.2の場合に表示される192.168.0.1とは異なるマシンです。

私のNagiosサーバーはそれに応じてセットアップされます:

auto eth0
iface eth0 inet static
address 10.1.1.10
netmask 255.255.255.0
gateway 10.1.1.1

明確にするために、ここには4つのゲートウェイがあります。ルーター1(10.1.1.1)ルーター2(10.1.1.2)モデム1(192.168.0.1)モデム2(192.168.0.1)

以下に、2つのモデムのステータスを確認するために手動でできることを示します。

ping -c4 192.168.0.1 # Is Modem1 up? 
ip route add via 10.1.1.2
ip route change default via 10.1.1.2
ping -c4 192.168.0.1 # Is Modem2 up?
wget 192.168.0.1 # yields expected control webpage for Modem2
ip route change default via 10.1.1.1
ip route del default via 10.1.1.2
wget 192.168.0.1 # Connection refused; Modem1 has no web interface
ssh adminuser@192.168.0.1 # I can log in to Modem1 and check status

少なくともModem2にpingできるようにしたいと思います。

* CIDR表記法のひどい誤用を修正し、明確な詳細を提供するために編集。(これはスーパーユーザーに属しているとは思わない。)


pingを開始するIP構成は何ですか?

回答:


12

man ping

ping [ホップ...]宛先

そのため、パラメータとして空白で区切られた多数のIPをpingに渡すことができます。最後のアドレスは「ping」されます。前のパラメーターは、pingがとるべきルートを定義します。

あなたの場合:

  • 最初のゲートウェイを明示的に使用するには、「ping 10.1.1.2モデム」、
  • 2番目のゲートウェイを明示的に使用するには、「ping 10.1.1.1モデム」。

Windowsで同じ問題が発生した場合 ping /? -kは、おそらく必要なオプションです。

ところで:上記のpingはルート権限を必要としません。ルーティング情報(あなたの場合:「ウィッシュリスト」)は、ICMPプロトコルの一部です。


1
それは私をそこに到達させていません。ping -c4 10.1.1.2 192.168.0.1100%のパケット損失が発生します。上記の状況を明確にしました。
ルークシュラーター

4
これは実際には、rootでも機能しません。私はこれを見ながらでテストしましたtcpdumpが、あなたが思っているようには動作しません。
バハマ

default-gatewayを完全に削除するとどうなりますか?私はまだあなたの設定を理解していません。両方のモデムで同一の「ルーター」アドレスを使用するのはなぜですか?
ニルス

両方のモデムは、異なるISPによって制御されています。
ルークシュラーター

OK-ルーターの同じIPを理解しました。これはオンデマンド接続ですか、フェイルオーバーしたいですか?
ニルス

11

どちらping -Narping私のためにも働いていませんでしたが、私は最終的にこの答えから解決策に落ち着きました:

このツールを使用することができますnpingからnmapのパッケージを:

# nping --icmp --dest-mac [gateway mac] [target ip]

ローカルARPキャッシュでルーターのmacを見つけることができます:

$ arp -v [gateway ip]

このツールは、--tcpまたはなどのさまざまなpingタイプもサポートしています--udp


これをありがとう。npingを使用することの提案は、(特定のルートに追加して通常のpingバイナリを使用する以外に)ICMPオンデマンド3GバックアップルーターにICMPエコー要求(ping)を送信する(テスト目的で)唯一の方法です、接続し、接続後に実際のインターネット接続を確保するため)、ICMPパケットを送信するときにルーターのMACアドレスをターゲットにすることで実現します。これにより、npingを使用できます。非常に便利な小さなユーティリティ!
パーカマーク

2

申し訳ありませんが、デフォルトゲートウェイは1つしか持てません。複数のゲートウェイを使用できますが、ネットワークごとに1つのみです。

問題は、上記の両方のIPが同じネットワーク内にあることです。また、CIDRを誤って指定しました:10.1.1.0/24が255.255.255.0のサブネットを持つことを意味しました。または、250.0.0.0のように大きいサブネット(10.0.0.0/8など)もあります。

したがって、ネットワーク(10.0.0.0/8)内のホストまたは(または)ゲートウェイ経由で到達可能なホストにpingを実行できます。ただし、同じネットワークに2つのゲートウェイを使用することはできません。


1
10.1.1.0/24サブネット上の10.1.1.1の短縮形として10.1.1.1/24を意味しました。申し訳ありませんが、私は再びその速記を使用しません、それは明らかに間違っています。まだ監視の問題があります-上記に詳細を追加しました。10.1.1.2に適切なルーターを設置しないと、この問題を解決できませんか?
ルークシュラーター

2

arpingを使用します。

# arping -c 1 -S [source_ip] -T [target_remote_ip] [gateway_mac_address]

どこで:

  • source_ipは、ホストでローカルに割り当てられたIPです
  • target_remote_ipは、pingするIPアドレスです
  • gateway_mac_addressは、使用する代替ゲートウェイのレイヤー2イーサアドレスです。

あるいは、何らかの形式のSolarisを使用している場合は、次を使用できます。

ping -N [gateway_ip] [target_remote_ip]

それは有望に見えますが、私はiproute2のarpがそれを切ることはないと思います...たぶん私はルーターをsshできるものと交換する必要があるだけかもしれません。
ルークシュラーター

1
iproute2arpingは違います。arping from iproute2を使用して無償のarpを実行している場合はsend_arpfake代わりにfrom を使用することをお勧めします。また、ゲートウェイはIPパケットを転送するものでなければなりません。
バハマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.