nslookupに特定のインターフェイスを使用するように指示する

nslookupに特定のインターフェイスを使用するように指示する

私のコンピュータには2つのネットワークカードがあります。どちらも異なるインターネットプロバイダを使用します。

どちらのISPにも異なるDNSサーバーがあり、私は自分のIPアドレスを知っています。

nslookupクエリが送信されたときに指定されたインターフェイスを介して正しく渡されることを確認したいと思います。

それは次のとおりです。
ping -I eth1 google.com

nslookup -I eth1 google.comとにかく可能です。-I選択の余地がないことを知っています。このように実現されることも望ましくありません。

どうすればいいですか?

答え1

これは完全にnslookup具体的ではありませんが、一般的な場合には機能します(コンピュータにrootアクセス権がある場合)。 IPネットワークスタックを使用して、他のインターフェイスではなく1つのインターフェイスを使用していることを確認します。 nslookupを呼び出す前に、特定のネットワークインターフェイスを介してDNSサーバーのIPアドレスにルートを追加するだけです。

eth02つのインターフェイス(および)があり、eth1デフォルトゲートウェイがeth0(192.168.0.1)であり、インターネットパス192.168.1.1を介してGoogle DNS(8.8.8.8)にクエリする場合は、eth1次のことができます。

ip route add 8.8.8.8/32 via 192.168.1.1

dev eth1192.168.1.1に到達する方法は1つしかないので、コマンドに追加することは役に立ちません。

完了したら、パスを削除してデフォルトのパスを復元する必要があります。

ip route del 8.8.8.8/32

答え2

最も簡単な方法は、照会する必要があるインターフェースに割り当てられたIPアドレスをロックすることです。

使用可能なインターフェイスが複数ある場合は、dig -b z.b.c.dそのインターフェイスを使用してクエリを実行します。

答え3

カールでも同じオプションを使用できます。何を達成したいのか教えてください。

また、使用することができますdig @ipaddress yourquery

--interface <name>
              Perform an operation using a specified interface. You can enter interface name, IP address or host name.  An  example
              could look like:

答え4

男の発掘:

The -b option sets the source IP address of the query to address.
This must be a valid address on one of the host's network interfaces
or "0.0.0.0" or "::".

関連情報