como fazer ping e usar uma placa de rede específica

10

i have 3 network cards , 1 Lan (wired) , 1 wireless network card & 1 is wireless usb

how do i ping from specific network card ?

& how do i use specific network card for specific application

exemplo

i want to ping google from wlan1

exemplo para aplicação específica

i want to use firefox or transmission from wan1

Lan ip 192.168.0.2 > Trabalhando corretamente pin-euwlan1google.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

one@onezero:~$ ip route

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 

@Khaled

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

Agora, por último, o problema da aplicação

    
por One Zero 30.01.2012 / 15:49

3 respostas

8

Se você olhar para o manual de ping man ping , leia:

-I interface address
   Set source address to specified interface address. Argument may be numeric IP
   address or name of device.
    
por 30.01.2012 / 16:04
5

Confira sua tabela de roteamento.

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

Sua interface wlan1 só sabe como acessar a rede 192.168.0.0. Você também tem seu wlan1 e eth0 na mesma sub-rede que pode causar problemas. Você precisa adicionar uma rota à tabela de roteamento para todos os destinos que você deseja alcançar em sua interface wlan. Por exemplo

route add -host 65.55.72.135 gw 192.168.0.1 dev wlan1
ping -I wlan1 65.55.72.135

Observe que isso não permitirá a rota por aplicativo. Para isso, você precisará configurar o roteamento de políticas com algo como iptables -m owner --uid-owner O comando ping -S src_ip dest_ip enviará o pacote com uma fonte de seu endereço IP wlan1, mas encaminhará o pacote para a eth0 porque o próximo salto é eth0 na tabela de roteamento. Sua melhor aposta é colocar as interfaces wlan1 e eth0 em sub-redes separadas.

    
por 30.01.2012 / 22:58
4

Em relação a ping (8) do BSD , você pode usar a opção -S do ping para simular o ping da interface específica:

-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.

A conscientização do nível de aplicativo para a interface de rede (endereços IP) é um pouco possível até certo ponto se especificarmos um gateway diferente para interfaces diferentes ou redirecionar o tráfego de acordo com a porta ou outro critério por meio de regras de firewall ... por exemplo. Se você estiver usando o firefox para conectar-se apenas a 80 portas, você pode especificar a regra SNAT no iptables para conectar-se através do seu endereço IP especificado, portanto, a interface desejada

    
por 30.01.2012 / 15:58