Skip to content

IP Addressing

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

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

...
The line 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
Here, the line for interface index 10 shows that a valid link-local address has been acquired.

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
in Command Prompt. To make this route persistent across reboots, run the command with the -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

Comments