ネットワークカード3個、LAN(有線)1個、ワイヤレスネットワークカード1個、ワイヤレスUSB1個があります。
特定のネットワークカードでどのようにpingするのですか?
&特定のアプリケーションに特定のネットワークカードを使用する方法
はい
i want to ping google from wlan1
具体的な適用事例
i want to use firefox or transmission from wan1
Lan ip 192.168.0.2 > うまく機能する pin -I wlan1 google.com
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.16.221.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan1
192.168.48.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
a@onezero:~$IPルーティング
default via 192.168.0.1 dev eth0 proto static
169.254.0.0/16 dev eth0 scope link metric 1000
172.16.221.0/24 dev vmnet8 proto kernel scope link src 172.16.221.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2 metric 1
192.168.0.0/24 dev wlan1 proto kernel scope link src 192.168.0.3 metric 2
192.168.48.0/24 dev vmnet1 proto kernel scope link src 192.168.48.1
@カリド
one@onezero:~$ ping -S 192.168.0.2 hotmail.com
PING hotmail.com (65.55.72.135) 56(84) bytes of data.
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=1 ttl=236 time=391 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=2 ttl=236 time=296 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=3 ttl=236 time=393 ms
64 bytes from origin.sn131w.snt131.mail.live.com (65.55.72.135): icmp_req=4 ttl=236 time=352 ms
ping -S 192.168.0.3 hotmail.com
PING hotmail.com (65.55.72.183) 56(84) bytes of data.
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=1 ttl=236 time=312 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=2 ttl=236 time=457 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=3 ttl=236 time=298 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=5 ttl=236 time=330 ms
64 bytes from origin.sn134w.snt134.mail.live.com (65.55.72.183): icmp_req=6 ttl=236 time=300 ms
さて、最後にアプリケーションの問題です。
答え1
pingマニュアルを見ると、次の内容をman ping
読むことができます。
-I interface address
Set source address to specified interface address. Argument may be numeric IP
address or name of device.
答え2
ルーティングテーブルを確認してください。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 wlan1
wlan1インターフェースは、192.168.0.0ネットワークに接続する方法だけを知っています。 wlan1とeth0も同じサブネット上にあるため、問題が発生する可能性があります。 WLANインターフェイスから到達したい宛先に到達するには、ルーティングテーブルにルートを追加する必要があります。例えば
route add -host 65.55.72.135 gw 192.168.0.1 dev wlan1
ping -I wlan1 65.55.72.135
これは、アプリケーションを介したルーティングを許可しないことに注意してください。これを行うには、次のコマンドを使用してポリシールーティングを設定する必要があります。iptables -m owner --uid-owner
このping -S src_ip dest_ip
コマンドは実際にwlan1 IPアドレスの送信元を使用してパケットを送信しますが、ルーティングテーブルのネクストホップはeth0なので、パケットをeth0にルーティングします。 。最良の方法は wlan1 と eth0 インターフェイスを異なるサブネットに配置することです。
答え3
ハンBSDのping(8)-S
続いて、pingスイッチを使用して特定のインターフェイスのpingをシミュレートできます。
-S src_addr
Use the following IP address as the source address in outgoing packets. On hosts
with more than one IP address, this option can be used to force the source address to
be something other than the IP address of the interface the probe packet is sent on.
If the IP address is not one of this machine's interface addresses, an error is
returned and nothing is sent.
さまざまなインターフェイスにさまざまなゲートウェイを指定したり、ポートやその他の基準に基づいてファイアウォールルールを介してトラフィックをリダイレクトしたりすると、ネットワークインターフェイス(IPアドレス)に対するアプリケーションレベルの認識がある程度可能になります。 Firefox を使用してポート 80 にのみ接続する場合は、iptables に SNAT ルールを指定して、指定した IP アドレスを介して接続して目的のインターフェイスを取得できます。