IP Addressing¶
DHCP and link-local modes¶
As laid out on the Topology page, the JS-50 heads should be on their own network segment. To communicate, they need to have an IPv4 address assigned (IPv6 is not supported).
Upon bootup, the heads probe for a DHCP server:
-
If found, the heads will acquire an IP address from DHCP.
-
If no DHCP server is present, each head assigns itself a link-local address in the address block 169.254.0.0/16 (169.254.0.0 through 169.254.255.255)
Link-local Networking
Link-local networking refers to a type of network configuration where devices communicate with each other using link-local addresses. These addresses are automatically assigned to devices within a specific network segment, such as a local area network (LAN), without the need for a centralized network infrastructure or a DHCP server. Link-local addresses are typically used for communication within a single network segment and are not routable across different networks. For more information, you can refer to the link-local networking documentation.
From a functional perspective, there is no difference between link-local and DHCP modes. The Pinchot API does not use IP addresses (unlike the older JS-25 API), instead, all operations are based on the serial number of the ScanHead. JoeScan therefore recommends to use link-local mode, as it avoids having to maintain a DHCP server for this segment.
mDNS / Multicast DNS¶
For name resolution, the ScanHeads support the mDNS protocol. Each head responds to mDNS requests with the following hostname:
js-50-<five-digit-serial>
By default, this leads to DNS entries in the .local
TLD, such as
js-50-xxxxx.local
Testing Link-Local Connectivity¶
To confirm that Link-Local is functioning correctly on your system, first verify that the wired network interface connected to the scanning network has a valid Link-Local IP address. Do this by running the specified command below and checking for an IP address in the form 169.254.*.*
under the desired interface:
C:\>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet 3:
Connection-specific DNS Suffix . : joescan
Link-local IPv6 Address . . . . . : fe80::a97a:d005:c131:b94d%10
Autoconfiguration IPv4 Address. . : 169.254.90.61
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
...
Autoconfiguration IPv4 Address. . : 169.254.90.61
shows that the interface Ethernet 3
has acquired a link-local address.
PS C:\> Get-NetIPAddress | Format-Table
ifIndex IPAddress PrefixLength PrefixOrigin SuffixOrigin AddressState PolicyStore
------- --------- ------------ ------------ ------------ ------------ -----------
1 ::1 128 WellKnown WellKnown Preferred ActiveStore
10 169.254.90.61 16 WellKnown Link Preferred ActiveStore
3 192.168.1.174 24 Dhcp Dhcp Preferred ActiveStore
1 127.0.0.1 8 WellKnown WellKnown Preferred ActiveStore
Testing Name Resolution¶
Using the ping
tool, you can now verify that name resolution was successful:
C:\>ping -n 1 js-50-20236.local
Pinging JS-50-20236.local [169.254.235.115] with 32 bytes of data:
Reply from 169.254.235.115: bytes=32 time<1ms TTL=64
Ping statistics for 169.254.235.115:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
PS C:\> ping -n 1 js-50-20236.local
Pinging JS-50-20236.local [169.254.235.115] with 32 bytes of data:
Reply from 169.254.235.115: bytes=32 time<1ms TTL=64
Ping statistics for 169.254.235.115:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Troubleshooting¶
Should ping
fail or if JS-50 software applications cannot connect, a common issue on Windows may be the OS's routing table not being set up to route IP packets to link-local addresses. Resolve this by running
route ADD 169.254.0.0 MASK 255.255.0.0 0.0.0.0
-p
switch (you need to run Command Prompt as administrator):
route -p ADD 169.254.0.0 MASK 255.255.0.0 0.0.0.0