Contacting an IPv6 Device

From InCircuit
Revision as of 12:57, 20 December 2012 by Benjamin (Talk | contribs)

Jump to: navigation, search

The simplest way to check, whether a ICradio ZWIR Module is online and working, is to send a simple message called ping. This will make the device sending an answer-package, which is received by the sender, if everything is working as expected. In advance the Network must be prepared and the IP of the corresponding device must be known.

Every PC running windows or Linux does ship a tool called ping6. While the name and the functionality on both systems is similar, the parameters are different on both.

ping6 on windows

To use ping6 on windows, the Hosts IPv6-address must be known to. To do this, open a Command-shell using "START => run" and enter cmd. the command ipconfig will present all information neccessary:

 C:\> ipconfig
 Windows-IP-Configuration
 
 
 Ethernetadapter LAN-Connection:
 
 	IP-address. . . . . . . . . . . . : 192.168.4.20
 	subnetmask. . . . . . . . . . . . : 255.255.255.0
 	IP-address. . . . . . . . . . . . : fe80::222:15ff:fef9:34b%5
 
 ...

The IP-address containing the colons, is the PC's IPv6 Address. Using this, the corresponding module can be pinged:

 C:\> ping6 -n 6 -s fe80::222:15ff:fef9:34b%5 fe80::211:7D00:2F:c2
 Pinging fe80::211:7d00:2f:c2 from fe80::222:15ff:fef9:34b%5 
 with 32 bytes payload:
 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=121ms 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=121ms 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=121ms 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=121ms 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=120ms 
 Reply from fe80::211:7d00:2f:c2%5: bytes=32 time=119ms 
 ...

If there are replies, the corresponding device is able to accept connections. The parameter -n sets the number of pings to send, 6 in the example above. The parameter -s set's the source-address and must be equal to the PCs address.

ping6 on Linux

To ping from a Linux-PC, the interface name of the local network must be known. This usally is called eth0. A ping6-run might look like this:

 $ ping6 -I eth0 -c 6 fe80::211:7d00:002F:00C2
 PING fe80::211:7d00:002F:00C2(fe80::211:7d00:2f:c2) from fe80::211:2fff:fed5:6abc br0: 56 data bytes
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=1 ttl=64 time=221 ms
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=2 ttl=64 time=210 ms
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=3 ttl=64 time=217 ms
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=4 ttl=64 time=221 ms
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=5 ttl=64 time=211 ms
 64 bytes from fe80::211:7d00:2f:c2: icmp_seq=6 ttl=64 time=226 ms
 
 --- fe80::211:7d00:002F:00C2 ping statistics ---
 6 packets transmitted, 6 received, 0% packet loss, time 4998ms
 rtt min/avg/max/mdev = 210.219/217.880/226.209/5.710 ms

This output shows, that the device is active and replies our pings. The parameter -I sets the interface to use and the parameter -c set's the number of pings to send. Per default, pings will be send, until the program is interrupted, eg. by pressing <Strg>+<C>.

Personal tools