私のコンピュータには2つのネットワークカードがあります。どちらも異なるインターネットプロバイダを使用します。
どちらのISPにも異なるDNSサーバーがあり、私は自分のIPアドレスを知っています。
nslookup
クエリが送信されたときに指定されたインターフェイスを介して正しく渡されることを確認したいと思います。
それは次のとおりです。
ping -I eth1 google.com
nslookup -I eth1 google.com
とにかく可能です。-I
選択の余地がないことを知っています。このように実現されることも望ましくありません。
どうすればいいですか?
ベストアンサー1
これは完全にnslookup
具体的ではありませんが、一般的な場合には機能します(コンピュータにrootアクセス権がある場合)。 IPネットワークスタックを使用して、他のインターフェイスではなく1つのインターフェイスを使用していることを確認します。 nslookupを呼び出す前に、特定のネットワークインターフェイスを介してDNSサーバーのIPアドレスにルートを追加するだけです。
eth0
2つのインターフェイス(および)があり、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 eth1
192.168.1.1に到達する方法は1つしかないので、コマンドに追加することは役に立ちません。
完了したら、パスを削除してデフォルトのパスを復元する必要があります。
ip route del 8.8.8.8/32