Coder Social home page Coder Social logo

JmmDNS binds loopback interface about jmdns HOT 4 CLOSED

jmdns avatar jmdns commented on September 13, 2024
JmmDNS binds loopback interface

from jmdns.

Comments (4)

kaikreuzer avatar kaikreuzer commented on September 13, 2024

To me it makes sense what you say, but maybe somebody more familiar with the mDNS spec can comment as well?

from jmdns.

dhufnagel avatar dhufnagel commented on September 13, 2024

I further investigated this issue and here are some results and thoughts:

Linux does not even allow multicasts on the loopback device, so I think it is fine to ignore loopback devices in general. The only situation where it could be useful is if you have a Service and Client both on the same machine without network interfaces. I cannot think of many such situations.

I tried to find the culprit why the local loopback address is propagated in other networks. Therefor I skimmed the mDNS RFC. I think this issue comes from another issue with the Windows loopback device and IPv6.

I think that there is a bug in the Windows IPv6 implementation of the loopback device. If I multicast a link-local IPv6 packet to the loopback, it is also propagated to other ethernet devices. It does not with IPv4 link-local packets. So I also skimmed the IPv6 RFC where it's said:

Link-Local addresses are designed to be used for addressing on a single link for purposes such as auto-address configuration, neighbor discovery, or when no routers are present.Routers must not forward any packets with link-local source or destination addresses to other links.

IMHO this seems to be done wrong in Windows (10). As multicasts are not only propagated to the local ethernet interface but also through the network of the ethernet interface, a client gets the loopback IP address. This is whats causing me problems with iOS.

To sum it up: I suggest to not bind a JmDNS instance to a loopback device. So if you agree with it, I can create a pull-request of my changes.

from jmdns.

kaikreuzer avatar kaikreuzer commented on September 13, 2024

Hi @dhufnagel, sorry for my late response. Yes, I am fine with your suggested change - please create a PR for it!

from jmdns.

kaikreuzer avatar kaikreuzer commented on September 13, 2024

Actually, I just did, assuming this is the fix you wanted to propose: #87

from jmdns.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.