Storage name resolution methods and protocol caveats

Several methods to resolve storage service hosts

CDRouter Storage allows a test engineer to execute various storage protocol tests against a storage-enabled device. In order for CDRouter to know the IP address of the storage service to be tested, it must either be told with an explicit IP address, or be given a DNS or NetBIOS name, or discover it using multicast DNS (disabled by default, with instructions to enable it included below). Each name resolution protocol is available for IPv4 and IPv6, with the exception that NetBIOS is not available for IPv6.

The protocols attempt to resolve a name to an address using mDNS, then DNS, and then NetBIOS, repeating once on failure.

We detail some example configurations using smbuser testvar_groups, however ftpuser testvar_groups use an identical ftpuser::server testvar.

IPv4 Naming Options

IPv6 Naming Options

How to specify an IPv4 address explicitly

To give a service an explicit IPv4 address, set the server testvar to the exact IPv4 address:

testvar_group smbuser1 {
  testvar server     192.168.1.1
  testvar share      my_share
  testvar folder     ""
  testvar user       my_user
  testvar password   my_password
  testvar permission ReadWrite
}

How to specify an IPv6 address explicitly

To give a service an explicit IPv6 address, set the smbuser::server testvar to the exact IPv6 address:

testvar_group smbuser1 {
  testvar server     3001:cafe::1
  testvar share      my_share
  testvar folder     ""
  testvar user       my_user
  testvar password   my_password
  testvar permission ReadWrite
}

How to create a DNS entry

There are two ways you can create a DNS entry. The first method is to have your device serve the DNS record. The DHCP Client CDRouter creates will be configured with a DNS server and use this for resolving hosts. If your device allows for host names to be configured, you can configure the service names here.

The second method assumes that the device will forward DNS queries to the WAN side DNS server, which is configured in CDRouter. You can create custom DNS entries for your service hosts and they will be passed back to the LAN client via DNS forwarding in the LAN side DNS forwarding service. To create a DNS host that will resolve to both IPv4 and IPv6 records, you can list both in the dnsHostname and dnsIp testvars:

testvar_group smbuser1 {
  testvar server     my-host
  testvar share      my_share
  testvar folder     ""
  testvar user       my_user
  testvar password   my_password
  testvar permission ReadWrite
}

testvar dnsHostname1 my-host
testvar dnsIp1 “192.168.1.1 3001:cafe::1”

How to useNetBIOS

NetBIOS works over the IPv4 protocol but is not supported on IPv6. If you specify a host that resolves under NetBIOS on IPv4, but the service is running on only IPv6, you will receive an error because CDRouter is unable to determine the address of the service.

The configuration looks identical to a DNS based configuration. CDRouter will attempt to use both protocols to learn the IP address of the host.

testvar_group smbuser1 {
  testvar server     my-host
  testvar share      my_share
  testvar folder     ""
  testvar user       my_user
  testvar password   my_password
  testvar permission ReadWrite
}

How to Enable and Use mDNS

By default CDRouter will use DNS followed by NetBIOS (IPv4 only) to resolve the IP address of the SMB or FTP server under test. CDRouter can also be configured to use Multicast DNS (mDNS) by setting the testvar useMulticastDNS to yes. When this testvar is enabled, CDRouter will try mDNS, then DNS, and finally NetBIOS. If all three methods are unsuccessful, CDRouter will try them all one more time before aborting the test case.

testvar useMulticastDNS yes