Eu tenho um ponto de acesso de malha aberta conectado ao mesmo roteador ( um Aerohive BR100 ) que uma câmera Axis. Eu gostaria de automatizar a descoberta do IP da câmera de dentro do sensor Open Mesh, sabendo o endereço MAC da câmera.
Esta arte ruim do Ascii mostra como as coisas estão cabeadas:
+================= Aerohive router ================+
| ____ ____ ____ ____ ____ |
| [..] [..] [..] [..] [..] |
|_____||______||______________||____________||_____+
|| || || ||
Axis OpenMesh borrajax-pc DSL
camera access pt. (my laptop) connection
O roteador no qual a câmera e os dispositivos OpenMesh estão conectados atribui endereços IP na forma: 10.200.255.XXX/24
Se eu desconectar meu laptop (borrajax-pc) do roteador Aerohive e conectá-lo à rede WiFi fornecida pelo sensor Open Mesh, meu IP se tornará 10.223.176.150 (ok, já que é um IP fornecido pelo Abra o sensor de malha, e esse é o meu roteador / gateway ... meu chefe , afinal de contas). De qualquer forma ... neste momento, eu posso ssh para o sensor em si (como eu disse é o meu gateway):
borrajax@borrajax-pc:~$ ssh [email protected]
[email protected]'s password:
BusyBox v1.19.4 (2013-01-08 11:35:01 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----. _ | |.-----.----| |__
| - || _ | -__| | |_| | | | || -__|__--| |
|_______|| __|_____|__|__| |__|__|__||_____|____|__|__|
|__| http://www.open-mesh.com ---------------------
(c) Open-Mesh, Inc. All rights reserved.
firmware-ng: fw-ng-r443
Powered by these open source projects:
http://www.openwrt.org http://kokoro.ucsd.edu/nodogsplash
http://coova.org http://www.open-mesh.org
-------------------------------------------------------------
root@BorrajaX_Test_Sensor:~#
Mas quando estou dentro do sensor, nenhuma de suas interfaces tem um endereço como o que o roteador Aerohive externo está fornecendo (10.200.255.XXX/24), então não consigo ver meus vizinhos em um salto ( ou pular).
Caso seja útil, aqui está uma lista de interfaces com seu endereço IP atribuído:
root@BorrajaX_Test_Sensor:~# ifconfig
bat0
bat0.0
bat0.1
bat0.2 inet addr:5.17.32.120 Bcast:5.255.255.255 Mask:255.0.0.0
bat0.3
br-lan1
br-lan2 inet addr:192.168.83.2 Bcast:192.168.83.255 Mask:255.255.255.0
br-meship inet addr:10.223.168.1 Bcast:10.223.171.255 Mask:255.255.252.0
br-priv inet addr:10.223.172.1 Bcast:10.223.175.255 Mask:255.255.252.0
br-pub inet addr:10.223.176.1 Bcast:10.223.179.255 Mask:255.255.252.0
eth0
eth1
lo inet addr:127.0.0.1 Mask:255.0.0.0
mesh0
mon0
pub0
Como você pode ver, nenhum dos IPs são parecidos com aqueles fornecidos pelo meu roteador ( 10.200.255.XXX )
Agora, se eu encontrar o IP da câmera através de outras formas, e eu descobrir que o IP é, por exemplo, 10.200.255.204 isso é o que acontece dentro do sensor.
root@BorrajaX_Test_Sensor:~# traceroute 10.200.255.204
traceroute to 10.200.255.204 (10.200.255.204), 30 hops max, 38 byte packets
1 192.168.83.1 (192.168.83.1) 2.265 ms 0.608 ms 1.378 ms
2 10.200.255.204 (10.200.255.204) 3.227 ms 1.265 ms 1.092 ms
Assim, ele passa pela interface br-lan2 e "vê" corretamente. Eu posso até mesmo fazer ping.
root@BorrajaX_Test_Sensor:~# ping 10.200.255.204
PING 10.200.255.204 (10.200.255.204): 56 data bytes
64 bytes from 10.200.255.204: seq=0 ttl=63 time=2.788 ms
Mas a tabela ARP não registra o MAC de mapeamento < - > 10.200.255.204 (Eu estou supondo porque está pulando uma vez através de 192.168.83.1)
Existe alguma forma de arping um "vizinho" quando o vizinho está conectado ao mesmo roteador que o próprio dispositivo Open-Mesh? Além disso, como mencionei, o IP que o roteador Aerohive atribui ao dispositivo Open-Mesh parece ficar escondido de alguma forma dentro do dispositivo Open-Mesh. Existe alguma maneira de superar esse "ocultismo"?
PS: Se eu fizer a coisa toda no meu laptop, tudo funciona bem:
1º: verifique se o meu IP pertence ao intervalo atribuído pelo meu roteador (10.200.255.XXX)
borrajax@borrajax-pc:~$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 5c:f9:dd:52:10:78
inet addr:10.200.255.205 Bcast:10.200.255.255 Mask:255.255.255.192
[ . . . ]
2º: verifique a tabela arp:
borrajax@borrajax-pc:~$ arp -n
Address HWtype HWaddress Flags Mask Iface
10.200.255.193 ether e0:1c:41:30:ea:40 C eth0
Nenhuma câmera !!
3ª: fating para toda a sub-rede 10.200.255.XXX:
fping -g 10.200.255.1/24
10.200.255.193 is alive
10.200.255.204 is alive
10.200.255.205 is alive
ICMP Host Unreachable from 10.200.255.205 for ICMP Echo sent to 10.200.255.194
ICMP Host Unreachable from 10.200.255.205 for ICMP Echo sent to 10.200.255.19
[ . . . ]
4rd: Verifique a tabela arp novamente:
borrajax@borrajax-pc:~$ arp -n | grep -v "incomplete"
Address HWtype HWaddress Flags Mask Iface
10.200.255.204 ether 00:40:8c:e3:df:aa C eth0
10.200.255.193 ether e0:1c:41:30:ea:40 C eth0
Tadaaaa !! 10.200.255.204 éter 00: 40: 8c: e3: df: aa é a câmera