1

i am on windows and i want to write a tool in .NET that gives IP´s (with zeroconf) to embedded devices in a network.

I am familiar with programming but new to zeroconf, networking.

So i wondered, does a daemon need to run on every embedded device to be detected? The devices have no windows or linux, the BS is a Bios and a Firmware in C (dhcp is supported) Or can i just run a host with the ZeroConf tool that detects the devices connected?

Also i wonder if theres a full implementation for windows, i ve seen lots of service publishing and discovery but i guess i dont need that, i only want to assign ip addresses.

After all, i tried out some tutorials for discovering services (but i guess i don´t need that for ip assign?) from Mono.Zeroconf and Codeplex Bonjour, but got starting problems with them. (Necessary daemon may not be running) Also i tried out a .NET Wrapper for zeroconf but also failed to get started with it.

Can you give me some help with Zeroconf on windows?

Gobliins
  • 201
  • 4
  • 11

1 Answers1

2

The whole meaning of ZeroConf, "Zero Configuration Networking", is that your network devices need zero configuration (that is, no configuration at all) from humans or other servers on the network.

In your scenario, the way to be ZeroConf is for each of your embedded devices to pick an IP address for itself. Without the help of any Windows .NET server process, because if they needed to be configured by something else, it wouldn't be "ZeroConf". Picking your own IP address is officially called "IPv4 link-local addressing", and how to do it is defined in RFC 3927. Microsoft calls this "APIPA".

If you want ZeroConf (serverless) host name to address mapping, you do Multicast DNS (mDNS) on each of your embedded devices (and on the host that needs to find mappings from names to addresses).

If you want ZeroConf (serverless) service announce and browsing, you do DNS Service Discovery (DNS-SD) on each of your embedded devices (and on the host that needs to browse for those services).

Windows already has support for IPv4 link-local addressing built-in, but they didn't do mDNS and DNS-SD the same way Apple did; they did something similar but incompatible called LLMNR. If you want a real IETF ZeroConf stack for Windows, Apple publishes Bonjour for Windows (apparently now the package is called "Bonjour Print Services for Windows", but it's still the Bonjour mDNSResponder ZeroConf software).

Spiff
  • 2,496
  • 16
  • 17
  • Hello, thank you for this useful information. With "assigning IPs" i didn´t mean that the user gives them the ip, i mean the ips were automatically given by the zeroconf protocol and only tell the user which device has which ip, sorry if i made it unclear. – Gobliins Aug 08 '12 at 13:45
  • i would like to read some things about the named methods, and may contact you again soon. – Gobliins Aug 08 '12 at 13:58
  • Hello, are you there again? – Gobliins Sep 27 '12 at 08:40
  • @Gobliins Yes. I'm more active on Super User, but I get notifications for activity over here. – Spiff Sep 27 '12 at 18:07
  • Hi, so it turns out that we can assign the ip addresses by dhcp or apipa. Now the question is, we find all IPs but need to know is the ip the target device or just another pc. Could you recommend me something for that? We don´t want lots of traffic, so i would start a udp listener on the device and do udp broadcast on the pc and in the udp response we only need the name of the device. But i was thinking that there have to be some standards like upnp or the mentioned dns-sd. – Gobliins Sep 28 '12 at 07:59
  • The solution should be small and low on cpu usage. We only need to transfer some characters. Device + pc are always in the same (sub)net. – Gobliins Sep 28 '12 at 08:24
  • @Gobliins I personally hate when devices use proprietary discovery protocols instead of standards, but other than that, I have no recommendation for you. – Spiff Sep 28 '12 at 17:52
  • well i only want to tell the device´s ip to a windows pc (host) so mDNS would be te most fitting? – Gobliins Oct 01 '12 at 08:29
  • @Gobliins I don't know what trade-offs you're looking at in terms of space and power and how hard it would be to port an open source IETF ZeroConf stack to your device. I really have no advice for you. – Spiff Oct 01 '12 at 17:44