Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
[ TL;DR: Skip to "Adding dummy0 interface to the distro" ]

Hi,

as most of you know I am working on the printing stack, and one part of
it is IPP-over-USB. IPP is the Internet Printing Protocol, a
sophisticated network protocol to access printers and multi-function
devices in a way that one cannot only send out print jobs, but also
monitor their status, and especially poll capability info from the
printers. The latter allows for using printers without drivers (=
printer-model-specific software and/or data) as long as the printer
knows a standardized language.

To not confine IPP and so driverless printing to network printers,
IPP-over-USB was introduced, which allows to use IPP also on
USB-connected printers. For this I am maintaining ippusbxd:

https://github.com/tillkamppeter/ippusbxd

In the beginning, I simply mirrored an IPP-over-USB printer to
localhost:60000 (and following ports if there is more than one printer)
so that the IPP backend of CUPS can access it like a network printer.

Then I ran into a problem: Printer setup tools like
system-config-printer and the built-in CUPS tool http://localhost:631/ 
do not auto-discover a printer on localhost:60000 also cups-browsed, a
daemon to auto-setup network printers does not discover such a printer.
The auto discovery is done via Bonjour (Avahi on Linux) and ippusbxd is
not broadcasting the printers via Avahi.

Now I added the Avahi broadcasting to ippusbxd and ran into another
problem: Avahi does not broadcast on the loopback interface "lo". So it
cannot broadcast a service on localhost (note that I only want to
broadcast it on the local machine, not on the network). "lo" does not
support multicast devices.

So I googled and posted on the Avahi mailing list and ended up with

http://unix.stackexchange.com/questions/151980/how-can-i-use-avahi-without-a-network-connection

making me try the "dummy0" device and it works for me (after adding
functionality for selecting the interface to broadcast on to ippusbxd).

I add the interface

sudo modprobe dummy
sudo ifconfig dummy0 10.0.0.1 netmask 255.255.255.0 multicast
sudo ifconfig dummy0 up multicast

and then run ippusbxd like that:

ippusbxd -v 0x03F0 -m 0xC211 -p 60000 -i dummy0

This mirrors the USB printer with VID 0x03F0 and PID 0xC211 to
10.0.0.1:60000 and broadcasts it only on my local machine via
Bonjour/Avahi. cups-browsed picks up the broadcast and auto-creates a
driverless print queue for this printer then.


Adding dummy0 interface to the distro
-------------------------------------

What I would like to do is to add the "dummy0" interface as a
local-only, multicast interface to the distro, either as a default part
like "lo" or initiated by the maintainer scripts of the ippusbxd Debian
package (or the printing snap).

WDYT?

Does it cause any problems using "dummy0" for a production purpose? Is
there any better way? Perhaps even one which would allow me to work with
localhost?

How should I implement this? Simply run above commands from maintainer
scripts of ippusbxd? Get them run when the first IPP-over-USB printer is
detected via UDEV? Or implementation in network-manager or so?

    Till

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Martin Pitt-4
Hello Till,

Till Kamppeter [2016-12-19 13:00 -0200]:
> sudo modprobe dummy
> sudo ifconfig dummy0 10.0.0.1 netmask 255.255.255.0 multicast
> sudo ifconfig dummy0 up multicast
>
> What I would like to do is to add the "dummy0" interface as a local-only,
> multicast interface to the distro, either as a default part like "lo" or
> initiated by the maintainer scripts of the ippusbxd Debian package (or the
> printing snap).

lxc/lxd used to hardcode an IP range like this, and it had to be dropped
because it caused conflicts on "real" existing networks. The 10.0.0.0/8 range
is reserved and very actively being used for local networks, including
Canonical's own VPN, and thus prone to create conflicts. If you need to do
something like that, I don't see a way to get away with a static IPv4 address.
Maybe IPv6 has some clever address schema that makes conflicts improbable.
 
> Does it cause any problems using "dummy0" for a production purpose? Is there
> any better way? Perhaps even one which would allow me to work with
> localhost?

Making avahi work on 'lo' certainly sounds even nicer.

> How should I implement this? Simply run above commands from maintainer
> scripts of ippusbxd? Get them run when the first IPP-over-USB printer is
> detected via UDEV? Or implementation in network-manager or so?

Creating the interface in postinst is a no-go. It won't survive a reboot and it
can't/must not be done when installing into chroots. It could ship or generate
an ifupdown/netplan/systemd-networkd configuration file, though.

Martin

--
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 09:42 AM, Martin Pitt wrote:
> lxc/lxd used to hardcode an IP range like this, and it had to be dropped
> because it caused conflicts on "real" existing networks. The 10.0.0.0/8 range
> is reserved and very actively being used for local networks, including
> Canonical's own VPN, and thus prone to create conflicts. If you need to do
> something like that, I don't see a way to get away with a static IPv4 address.
> Maybe IPv6 has some clever address schema that makes conflicts improbable.
>

Is there no way to dynamically (with checking what is currently in use)
select a small free IPv4 address space? For example in the 10.0.0.0/8
range there are probably only some 10.X.Y.0/24 subranges used. If not,
which IPv6 range is free for such a dummy0 interface? As it is local
only and current Linux supports IPv6 by default it would be no problem
to be IPv6-only. It would also need a host name as IPv6 IP addresses are
awkward.

>> Does it cause any problems using "dummy0" for a production purpose? Is there
>> any better way? Perhaps even one which would allow me to work with
>> localhost?
>
> Making avahi work on 'lo' certainly sounds even nicer.
>

Would this be very complicated (would need upstream work on Avahi
probably)? It is said that multicast is needed and "lo" does not support
multicast. Is that true?

>> How should I implement this? Simply run above commands from maintainer
>> scripts of ippusbxd? Get them run when the first IPP-over-USB printer is
>> detected via UDEV? Or implementation in network-manager or so?
>
> Creating the interface in postinst is a no-go. It won't survive a reboot and it
> can't/must not be done when installing into chroots. It could ship or generate
> an ifupdown/netplan/systemd-networkd configuration file, though.

OK.

Are there packages which I could take as an example?

Another thought is an architecture extension to cups-browsed (which I
already plan for the phone):

cups-browsed will open a socket (only root can access) to receive commands.

The client which sends the commands will also be cups-browsed.

When cups-browsed is started (as root) and there is already a
cups-browsed running, it will send its command line options through the
socket to the already running cups-browsed and exit (so that only one
daemon instance is running at any time).

When cups-browsed is started (as root) and there is no cups-browsed
already running it keeps running as the current daemon instance, also
applying all its command line options.

On the Ubuntu phone this way the print dialog could tell to cups-browsed
to create a print queue to a given Bonjour service (printer) which the
user has selected, instead of cups-browsed creating automatically queues
for all printers and waking up all these printers.

For an IPP-over-USB printer UDEV would not directly call the systemd
service of ippusbxd and then cups-browsed be informed by a Bonjour
broadcast from ippusbxd, but instead, UDEV calls the systemd service o
cups-browsed with the info about the USB printer and cups-browsed calls
ippusbxd, this way knowing the printer's data and the fact that the
printer is there and so it also creates the queue. With the socket
architecture UDEV does not need to take care whether cups-browsed is
already running.

WDYT?

My favorite is clearly that UDEV creates ippusbxd and ippusbxd does a
local-only Bonjour broadcast so that we get a complete emulation of a
network printer. This does not require changes in cups-browsed and it
allows the use of the printer also without cups-browsed.

So I would very much like to get the local-only Bonjour broadcast
somehow working.

Best would be to be able to broadcast localhost. If not a dummy0 with a
reliable way to obtain an IP address (IPv4 or IPv6) would be great.

Thanks in advance for any suggestion.

    Till




--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Stéphane Graber-2
On Thu, Dec 29, 2016 at 01:02:29PM -0200, Till Kamppeter wrote:

> On 12/29/2016 09:42 AM, Martin Pitt wrote:
> > lxc/lxd used to hardcode an IP range like this, and it had to be dropped
> > because it caused conflicts on "real" existing networks. The 10.0.0.0/8 range
> > is reserved and very actively being used for local networks, including
> > Canonical's own VPN, and thus prone to create conflicts. If you need to do
> > something like that, I don't see a way to get away with a static IPv4 address.
> > Maybe IPv6 has some clever address schema that makes conflicts improbable.
> >
>
> Is there no way to dynamically (with checking what is currently in use)
> select a small free IPv4 address space? For example in the 10.0.0.0/8 range
> there are probably only some 10.X.Y.0/24 subranges used. If not, which IPv6
> range is free for such a dummy0 interface? As it is local only and current
> Linux supports IPv6 by default it would be no problem to be IPv6-only. It
> would also need a host name as IPv6 IP addresses are awkward.
There is no way to do so for IPv4 as even if you check your local
interfaces and routing tables, you can't know what subnets are hidden
behind your router.

For IPv6, you can generate a random ULA subnet which is near guaranteed
to be unique and conflict free.

Depending on exactly what you want to do, a link-local IPv6 address may
also be a better fit as it then absolutely cannot conflict with
anything.

>
> > > Does it cause any problems using "dummy0" for a production purpose? Is there
> > > any better way? Perhaps even one which would allow me to work with
> > > localhost?
> >
> > Making avahi work on 'lo' certainly sounds even nicer.
> >
>
> Would this be very complicated (would need upstream work on Avahi probably)?
> It is said that multicast is needed and "lo" does not support multicast. Is
> that true?
I sure wouldn't recommend using "dummy0". Using a differently named
device using the dummy driver would probably be fine though.

The reason to stay away from the "dummy0" name is that it's used in test
suites and other networking tools that simply call to "ip link add
dummy" and then (and that's the problem), call "ip link del dummy"
afterwards.

>
> > > How should I implement this? Simply run above commands from maintainer
> > > scripts of ippusbxd? Get them run when the first IPP-over-USB printer is
> > > detected via UDEV? Or implementation in network-manager or so?
> >
> > Creating the interface in postinst is a no-go. It won't survive a reboot and it
> > can't/must not be done when installing into chroots. It could ship or generate
> > an ifupdown/netplan/systemd-networkd configuration file, though.
>
> OK.
>
> Are there packages which I could take as an example?
>
> Another thought is an architecture extension to cups-browsed (which I
> already plan for the phone):
>
> cups-browsed will open a socket (only root can access) to receive commands.
>
> The client which sends the commands will also be cups-browsed.
>
> When cups-browsed is started (as root) and there is already a cups-browsed
> running, it will send its command line options through the socket to the
> already running cups-browsed and exit (so that only one daemon instance is
> running at any time).
>
> When cups-browsed is started (as root) and there is no cups-browsed already
> running it keeps running as the current daemon instance, also applying all
> its command line options.
>
> On the Ubuntu phone this way the print dialog could tell to cups-browsed to
> create a print queue to a given Bonjour service (printer) which the user has
> selected, instead of cups-browsed creating automatically queues for all
> printers and waking up all these printers.
>
> For an IPP-over-USB printer UDEV would not directly call the systemd service
> of ippusbxd and then cups-browsed be informed by a Bonjour broadcast from
> ippusbxd, but instead, UDEV calls the systemd service o cups-browsed with
> the info about the USB printer and cups-browsed calls ippusbxd, this way
> knowing the printer's data and the fact that the printer is there and so it
> also creates the queue. With the socket architecture UDEV does not need to
> take care whether cups-browsed is already running.
>
> WDYT?
>
> My favorite is clearly that UDEV creates ippusbxd and ippusbxd does a
> local-only Bonjour broadcast so that we get a complete emulation of a
> network printer. This does not require changes in cups-browsed and it allows
> the use of the printer also without cups-browsed.
>
> So I would very much like to get the local-only Bonjour broadcast somehow
> working.
>
> Best would be to be able to broadcast localhost. If not a dummy0 with a
> reliable way to obtain an IP address (IPv4 or IPv6) would be great.
>
> Thanks in advance for any suggestion.
>
>    Till
--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 01:12 PM, Stéphane Graber wrote:

> On Thu, Dec 29, 2016 at 01:02:29PM -0200, Till Kamppeter wrote:
>> Is there no way to dynamically (with checking what is currently in use)
>> select a small free IPv4 address space? For example in the 10.0.0.0/8 range
>> there are probably only some 10.X.Y.0/24 subranges used. If not, which IPv6
>> range is free for such a dummy0 interface? As it is local only and current
>> Linux supports IPv6 by default it would be no problem to be IPv6-only. It
>> would also need a host name as IPv6 IP addresses are awkward.
>
> There is no way to do so for IPv4 as even if you check your local
> interfaces and routing tables, you can't know what subnets are hidden
> behind your router.
>

Are addresses in the 169.254.0.0/16 not suitable?

> For IPv6, you can generate a random ULA subnet which is near guaranteed
> to be unique and conflict free.
>

How does one do this? Which interface will it use, can I
Bonjour-broadcast it only on the local machine?

> Depending on exactly what you want to do, a link-local IPv6 address may
> also be a better fit as it then absolutely cannot conflict with
> anything.
>

Also how does one do this? Which interface will it use, can I
Bonjour-broadcast it only on the local machine?

>>> Making avahi work on 'lo' certainly sounds even nicer.
>>>
>>
>> Would this be very complicated (would need upstream work on Avahi probably)?
>> It is said that multicast is needed and "lo" does not support multicast. Is
>> that true?
>
> I sure wouldn't recommend using "dummy0". Using a differently named
> device using the dummy driver would probably be fine though.
>
> The reason to stay away from the "dummy0" name is that it's used in test
> suites and other networking tools that simply call to "ip link add
> dummy" and then (and that's the problem), call "ip link del dummy"
> afterwards.
>

How can I assign a different name to a dummy interface? Can I freely
choose a name somehow, for example "ippusbxd"? Or have I to use
"dummy1", "dummy2", ... (loading the dummy kernel module with an option
to support more than one interface)?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Stéphane Graber-2
On Thu, Dec 29, 2016 at 01:46:30PM -0200, Till Kamppeter wrote:

> On 12/29/2016 01:12 PM, Stéphane Graber wrote:
> > On Thu, Dec 29, 2016 at 01:02:29PM -0200, Till Kamppeter wrote:
> > > Is there no way to dynamically (with checking what is currently in use)
> > > select a small free IPv4 address space? For example in the 10.0.0.0/8 range
> > > there are probably only some 10.X.Y.0/24 subranges used. If not, which IPv6
> > > range is free for such a dummy0 interface? As it is local only and current
> > > Linux supports IPv6 by default it would be no problem to be IPv6-only. It
> > > would also need a host name as IPv6 IP addresses are awkward.
> >
> > There is no way to do so for IPv4 as even if you check your local
> > interfaces and routing tables, you can't know what subnets are hidden
> > behind your router.
> >
>
> Are addresses in the 169.254.0.0/16 not suitable?
It's not suitable because the whole 169.254.0.0/16 subnet is typically
routed to your primary network device. Having a second route for it or a
route for a subset of it on another device would effectively mask part
of it.

>
> > For IPv6, you can generate a random ULA subnet which is near guaranteed
> > to be unique and conflict free.
> >
>
> How does one do this? Which interface will it use, can I Bonjour-broadcast
> it only on the local machine?

ip -6 addr add fd00:xxxx:xxxx:xxxx::1/64 where all the x's are random
values should be fine. There are more officially documented ways to come
up with a 48bit or 64bit ULA subnet mentioned in the various RFCs.

>
> > Depending on exactly what you want to do, a link-local IPv6 address may
> > also be a better fit as it then absolutely cannot conflict with
> > anything.
> >
>
> Also how does one do this? Which interface will it use, can I
> Bonjour-broadcast it only on the local machine?

Every network interface with IPv6 enabled comes up with one, those are the
fe80::/64 subnets you see on your machine.

The loopback device doesn't have one, but a dummy device would.

>
> > > > Making avahi work on 'lo' certainly sounds even nicer.
> > > >
> > >
> > > Would this be very complicated (would need upstream work on Avahi probably)?
> > > It is said that multicast is needed and "lo" does not support multicast. Is
> > > that true?
> >
> > I sure wouldn't recommend using "dummy0". Using a differently named
> > device using the dummy driver would probably be fine though.
> >
> > The reason to stay away from the "dummy0" name is that it's used in test
> > suites and other networking tools that simply call to "ip link add
> > dummy" and then (and that's the problem), call "ip link del dummy"
> > afterwards.
> >
>
> How can I assign a different name to a dummy interface? Can I freely choose
> a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
> ... (loading the dummy kernel module with an option to support more than one
> interface)?
root@castiana:~# ip link add ippusbxd type dummy
root@castiana:~# ip link set ippusbxd up
root@castiana:~# ifconfig ippusbxd
ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
        inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
        ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 140 (140.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Which gets you your own dummy device with its IPv6 link-local address.

>
>    Till
>

--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 02:37 PM, Stéphane Graber wrote:

>> How can I assign a different name to a dummy interface? Can I freely choose
>> a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
>> ... (loading the dummy kernel module with an option to support more than one
>> interface)?
>
> root@castiana:~# ip link add ippusbxd type dummy
> root@castiana:~# ip link set ippusbxd up
> root@castiana:~# ifconfig ippusbxd
> ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
>         inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
>         ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
>         RX packets 0  bytes 0 (0.0 B)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 2  bytes 140 (140.0 B)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
>
> Which gets you your own dummy device with its IPv6 link-local address.

Thank you very much. I copied and pasted the commands and got an
ifconfig output similar to yours, only with different IP and MAC
addresses and different values in the statistics.

Then I tried to bind to the IPv6 IP address of this entry, on port 60000
and this did not work.

Do I have to create an additional IP address? If yes, how? Do I have to
run additional commands (route?)? Which ones?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Stéphane Graber-2
On Thu, Dec 29, 2016 at 04:14:52PM -0200, Till Kamppeter wrote:

> On 12/29/2016 02:37 PM, Stéphane Graber wrote:
> > > How can I assign a different name to a dummy interface? Can I freely choose
> > > a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
> > > ... (loading the dummy kernel module with an option to support more than one
> > > interface)?
> >
> > root@castiana:~# ip link add ippusbxd type dummy
> > root@castiana:~# ip link set ippusbxd up
> > root@castiana:~# ifconfig ippusbxd
> > ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
> >         inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
> >         ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
> >         RX packets 0  bytes 0 (0.0 B)
> >         RX errors 0  dropped 0  overruns 0  frame 0
> >         TX packets 2  bytes 140 (140.0 B)
> >         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
> >
> >
> > Which gets you your own dummy device with its IPv6 link-local address.
>
> Thank you very much. I copied and pasted the commands and got an ifconfig
> output similar to yours, only with different IP and MAC addresses and
> different values in the statistics.
>
> Then I tried to bind to the IPv6 IP address of this entry, on port 60000 and
> this did not work.
>
> Do I have to create an additional IP address? If yes, how? Do I have to run
> additional commands (route?)? Which ones?
>
>    Till
Link-local addresses are slightly special in that they are indeed link local.

So you can't bind fe80::3004:2dff:feb6:b5c7 as you could in theory have
the same address on multiple interfaces. Instead, you need to tell
bind() what interface to bind on. This is typically indicated as
fe80::3004:2dff:feb6:b5c7%ippusbxd.


For example:

stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7 1234
nc: Invalid argument

^ Fails because the kernel doesn't know what interface you want.

stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7%ippusbxd 1234

^ Works

--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
In reply to this post by Stéphane Graber-2
On 12/29/2016 02:37 PM, Stéphane Graber wrote:

>> How can I assign a different name to a dummy interface? Can I freely choose
>> a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
>> ... (loading the dummy kernel module with an option to support more than one
>> interface)?
>
> root@castiana:~# ip link add ippusbxd type dummy
> root@castiana:~# ip link set ippusbxd up
> root@castiana:~# ifconfig ippusbxd
> ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
>         inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
>         ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
>         RX packets 0  bytes 0 (0.0 B)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 2  bytes 140 (140.0 B)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>
>

Another thing which I have seen is that it has no netmask and no
broadcast address (does this exist in IPv6?) and there is also MULTICAST
under the flags.

Is this the problem why I cannot bind to port 60000 of this interface?

How can I make this a Bonjour-broadcastable interface?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
In reply to this post by Stéphane Graber-2
On 12/29/2016 04:31 PM, Stéphane Graber wrote:

> On Thu, Dec 29, 2016 at 04:14:52PM -0200, Till Kamppeter wrote:
>> On 12/29/2016 02:37 PM, Stéphane Graber wrote:
>>>> How can I assign a different name to a dummy interface? Can I freely choose
>>>> a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
>>>> ... (loading the dummy kernel module with an option to support more than one
>>>> interface)?
>>>
>>> root@castiana:~# ip link add ippusbxd type dummy
>>> root@castiana:~# ip link set ippusbxd up
>>> root@castiana:~# ifconfig ippusbxd
>>> ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
>>>         inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
>>>         ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
>>>         RX packets 0  bytes 0 (0.0 B)
>>>         RX errors 0  dropped 0  overruns 0  frame 0
>>>         TX packets 2  bytes 140 (140.0 B)
>>>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>>>
>>>
>>> Which gets you your own dummy device with its IPv6 link-local address.
>>
>> Thank you very much. I copied and pasted the commands and got an ifconfig
>> output similar to yours, only with different IP and MAC addresses and
>> different values in the statistics.
>>
>> Then I tried to bind to the IPv6 IP address of this entry, on port 60000 and
>> this did not work.
>>
>> Do I have to create an additional IP address? If yes, how? Do I have to run
>> additional commands (route?)? Which ones?
>>
>>    Till
>
> Link-local addresses are slightly special in that they are indeed link local.
>
> So you can't bind fe80::3004:2dff:feb6:b5c7 as you could in theory have
> the same address on multiple interfaces. Instead, you need to tell
> bind() what interface to bind on. This is typically indicated as
> fe80::3004:2dff:feb6:b5c7%ippusbxd.
>
>
> For example:
>
> stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7 1234
> nc: Invalid argument
>
> ^ Fails because the kernel doesn't know what interface you want.
>
> stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7%ippusbxd 1234
>
> ^ Works
>

Thank you. I want to bind with the bind(2) function in C. How do I
supply the interface here or what function do I need to call instead?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Stéphane Graber-2
On Thu, Dec 29, 2016 at 04:38:05PM -0200, Till Kamppeter wrote:

> On 12/29/2016 04:31 PM, Stéphane Graber wrote:
> > On Thu, Dec 29, 2016 at 04:14:52PM -0200, Till Kamppeter wrote:
> > > On 12/29/2016 02:37 PM, Stéphane Graber wrote:
> > > > > How can I assign a different name to a dummy interface? Can I freely choose
> > > > > a name somehow, for example "ippusbxd"? Or have I to use "dummy1", "dummy2",
> > > > > ... (loading the dummy kernel module with an option to support more than one
> > > > > interface)?
> > > >
> > > > root@castiana:~# ip link add ippusbxd type dummy
> > > > root@castiana:~# ip link set ippusbxd up
> > > > root@castiana:~# ifconfig ippusbxd
> > > > ippusbxd: flags=195<UP,BROADCAST,RUNNING,NOARP>  mtu 1500
> > > >         inet6 fe80::3004:2dff:feb6:b5c7  prefixlen 64  scopeid 0x20<link>
> > > >         ether 32:04:2d:b6:b5:c7  txqueuelen 1000  (Ethernet)
> > > >         RX packets 0  bytes 0 (0.0 B)
> > > >         RX errors 0  dropped 0  overruns 0  frame 0
> > > >         TX packets 2  bytes 140 (140.0 B)
> > > >         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
> > > >
> > > >
> > > > Which gets you your own dummy device with its IPv6 link-local address.
> > >
> > > Thank you very much. I copied and pasted the commands and got an ifconfig
> > > output similar to yours, only with different IP and MAC addresses and
> > > different values in the statistics.
> > >
> > > Then I tried to bind to the IPv6 IP address of this entry, on port 60000 and
> > > this did not work.
> > >
> > > Do I have to create an additional IP address? If yes, how? Do I have to run
> > > additional commands (route?)? Which ones?
> > >
> > >    Till
> >
> > Link-local addresses are slightly special in that they are indeed link local.
> >
> > So you can't bind fe80::3004:2dff:feb6:b5c7 as you could in theory have
> > the same address on multiple interfaces. Instead, you need to tell
> > bind() what interface to bind on. This is typically indicated as
> > fe80::3004:2dff:feb6:b5c7%ippusbxd.
> >
> >
> > For example:
> >
> > stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7 1234
> > nc: Invalid argument
> >
> > ^ Fails because the kernel doesn't know what interface you want.
> >
> > stgraber@castiana:~$ nc -l fe80::3004:2dff:feb6:b5c7%ippusbxd 1234
> >
> > ^ Works
> >
>
> Thank you. I want to bind with the bind(2) function in C. How do I supply
> the interface here or what function do I need to call instead?
>
>    Till
#include <arpa/inet.h>
#include <net/if.h>

int main(int argc, char *argv[])
{
   int s;
   struct sockaddr_in6 ip6;

   // Basic inet6 socket
   s = socket(AF_INET6, SOCK_DGRAM, 0);

   // Initialize the ip6 struct
   ip6.sin6_family=AF_INET6;
   ip6.sin6_addr=in6addr_any;
   ip6.sin6_port=htons(1234);
   ip6.sin6_scope_id=if_nametoindex("ippusbxd");
   inet_pton(AF_INET6, "fe80::3004:2dff:feb6:b5c7", (void *)&ip6.sin6_addr.s6_addr);

   // Bind
   bind(s, (struct sockaddr *)&ip6, sizeof(struct sockaddr_in6));
}


--
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

signature.asc (817 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 04:53 PM, Stéphane Graber wrote:

> On Thu, Dec 29, 2016 at 04:38:05PM -0200, Till Kamppeter wrote:
>> Thank you. I want to bind with the bind(2) function in C. How do I supply
>> the interface here or what function do I need to call instead?
>>
>>    Till
>
> #include <arpa/inet.h>
> #include <net/if.h>
>
> int main(int argc, char *argv[])
> {
>    int s;
>    struct sockaddr_in6 ip6;
>
>    // Basic inet6 socket
>    s = socket(AF_INET6, SOCK_DGRAM, 0);
>
>    // Initialize the ip6 struct
>    ip6.sin6_family=AF_INET6;
>    ip6.sin6_addr=in6addr_any;
>    ip6.sin6_port=htons(1234);
>    ip6.sin6_scope_id=if_nametoindex("ippusbxd");
>    inet_pton(AF_INET6, "fe80::3004:2dff:feb6:b5c7", (void *)&ip6.sin6_addr.s6_addr);
>
>    // Bind
>    bind(s, (struct sockaddr *)&ip6, sizeof(struct sockaddr_in6));
> }
>
>

This works now (had to add the
"ip6.sin6_scope_id=if_nametoindex("ippusbxd");"). So ippusbxd is running
now mirroring the printer onto fe80::e828:7eff:fe19:9962, port 60000 on
the ippusbxd interface.

This would especially mean that I can access the printer's web admin
interface by pointing a browser to this address so I try the simple
command line browser wget:

----------
till@till-x1carbon:~$ wget
http://[fe80::e828:7eff:fe19:9962%ippusbxd]:60000/

http://[fe80::e828:7eff:fe19:9962%ippusbxd]:60000/: Invalid IPv6 numeric
address.

till@till-x1carbon:~$ wget http://[fe80::e828:7eff:fe19:9962]:60000/

--2016-12-29 17:07:43--  http://[fe80::e828:7eff:fe19:9962]:60000/
Connecting to [fe80::e828:7eff:fe19:9962]:60000... failed: Invalid argument.

till@till-x1carbon:~$ wget
http://[fe80::e828:7eff:fe19:9962]%ippusbxd:60000/

http://[fe80::e828:7eff:fe19:9962]%ippusbxd:60000/: Invalid host name.

till@till-x1carbon:~$ wget
http://[fe80::e828:7eff:fe19:9962]:60000%ippusbxd/

http://[fe80::e828:7eff:fe19:9962]:60000%ippusbxd/: Bad port number.

till@till-x1carbon:~$ wget <a href="http://fe80::e828:7eff:fe19:9962:60000/">http://fe80::e828:7eff:fe19:9962:60000/

<a href="http://fe80::e828:7eff:fe19:9962:60000/:">http://fe80::e828:7eff:fe19:9962:60000/: Bad port number.

till@till-x1carbon:~$ wget <a href="http://fe80::e828:7eff:fe19:9962%ippusbxd:60000/">http://fe80::e828:7eff:fe19:9962%ippusbxd:60000/

<a href="http://fe80::e828:7eff:fe19:9962%ippusbxd:60000/:">http://fe80::e828:7eff:fe19:9962%ippusbxd:60000/: Bad port number.

till@till-x1carbon:~$
----------

    Till




--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Philipp Kern
On 12/29/2016 08:16 PM, Till Kamppeter wrote:
> This would especially mean that I can access the printer's web admin
> interface by pointing a browser to this address so I try the simple
> command line browser wget:

curl seems to work:

$ curl "http://[fe80::3664:a9ff:fe9a:f5b8%25br0]/"
No such site at :80
$ curl "http://[fe80::3664:a9ff:fe9a:f5b8%br0]/"
No such site at :80

If only we had universal support for interface scopes by having a
unified function that parses IP addresses...

Kind regards
Philipp Kern

--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 05:27 PM, Philipp Kern wrote:

> On 12/29/2016 08:16 PM, Till Kamppeter wrote:
>> This would especially mean that I can access the printer's web admin
>> interface by pointing a browser to this address so I try the simple
>> command line browser wget:
>
> curl seems to work:
>
> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%25br0]/"
> No such site at :80
> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%br0]/"
> No such site at :80
>
> If only we had universal support for interface scopes by having a
> unified function that parses IP addresses...
>
> Kind regards
> Philipp Kern
>

Thank you very much.

curl 'http://[fe80::e828:7eff:fe19:9962%25ippusbxd]:60000/' > testfile.gz
gunzip testfile.gz

gives an actual HTML file.

I am not able to open this URL with Firefox, as this browser does not
seem to understand the syntax of the IPv6 URL.

Is there a way to make a local Zeroconf host name get assigned to this
IPv6 IP address?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
In reply to this post by Philipp Kern
On 12/29/2016 05:27 PM, Philipp Kern wrote:

> On 12/29/2016 08:16 PM, Till Kamppeter wrote:
>> This would especially mean that I can access the printer's web admin
>> interface by pointing a browser to this address so I try the simple
>> command line browser wget:
>
> curl seems to work:
>
> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%25br0]/"
> No such site at :80
> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%br0]/"
> No such site at :80
>
> If only we had universal support for interface scopes by having a
> unified function that parses IP addresses...
>
> Kind regards
> Philipp Kern
>

A success message:

When I run

driverless
'ipp://[fe80::e828:7eff:fe19:9962%25ippusbxd]:60000/ipp/print' > test.ppd

on a current, fully up-to-date Zesty, the file test.ppd contains a valid
PPD file for my printer, meaning that the "driverless" utility (of the
cups-filters package) queried the printer via IPP, talking to it via the
IPv6-based IP address with explicit selection of the interface.

As "driverless" talks to the network using the CUPS library libcups, it
seems that I have found out how to talk IPv6 to CUPS.

Also

ipptool -tv
'ipp://[fe80::e828:7eff:fe19:9962%25ippusbxd]:60000/ipp/print'
get-printer-attributes.test > out.txt

works (needs cups-ipp-tools installed). out.txt contains the IPP
attributes record of the printer after this command.

I can even create a driverless print queue

lpadmin -p DJ2540IPv6 -E -v
'ipp://[fe80::e828:7eff:fe19:9962%25ippusbxd]:60000/ipp/print'
-meverywhere -o PageSize=A4

and actually print on my printer:

lp -d DJ2540IPv6 ~/.quiltrc

So the IPv6 URI works perfectly well with CUPS, problems are now:

- The IPv6 IP does not work with web browsers (Firefox, Chrome; for the
printer's admin interface) and wget.

- I am not able to Bonjour-broadcast my printer with this URI. Probably
one only needs to make this dummy-based "ippusbxd" interface do multicast.

    Till



--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Philipp Kern
In reply to this post by Till Kamppeter-3
On 12/29/2016 10:33 PM, Till Kamppeter wrote:
> Is there a way to make a local Zeroconf host name get assigned to this
> IPv6 IP address?

This feels impossible to me as no-one added scope IDs to DNS. There is
no way for the stack to pick the right interface to use without that
information. Note that ::1 would not be affected by this[0].

I thought with the introduction of %25 as the canonical separator the
issue was settled on how to address link-local addresses. Turns out
that's not the case and browsers intentionally do not support it
(Firefox bug[0], Chrome bug[1], WHATWG URL spec bug[2]).

Kind regards
Philipp Kern

[0] I understand the need for differences between IPv4 and IPv6 but I
still don't understand why - of all the things - localhost was limited
to a single /128 address, whereas it's a /8 on IPv4. Which means that
there's also a port conflict gamble going on there.
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=700999
[2] https://bugs.chromium.org/p/chromium/issues/detail?id=70762
[3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=27234


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
In reply to this post by Till Kamppeter-3
[ Posting back to the ubuntu-devel mailing list ]

On 12/29/2016 07:42 PM, Thomas Ward wrote:
> You could use /etc/hosts to define a dummy host name that Firefox could recognize.
>

I have added this line to /etc/hosts and it did not work:

fe80::e828:7eff:fe19:9962%ippusbxd ippusbxd-printers

I have also tried

fe80::e828:7eff:fe19:9962%25ippusbxd ippusbxd-printers

and also put "[...]" around the IP address. When I try to resolve the
name ippusbxd-printers (for example with "wget") I get something like

Dec 29 20:18:38 till-x1carbon systemd-resolved[1462]: Address
'fe80::e828:7eff:fe19:9962%ippusbxd' is invalid, in line /etc/hosts:10.

in /var/log/syslog.

If I add the line

fe80::e828:7eff:fe19:9962 ippusbxd-printers

wget can resolve the IP address from the name, but it cannot access as
the interface is not specified:

till@till-x1carbon:~$ wget ippusbxd-printers:60000
--2016-12-29 20:24:11--  http://ippusbxd-printers:60000/
Resolving ippusbxd-printers (ippusbxd-printers)... fe80::e828:7eff:fe19:9962
Connecting to ippusbxd-printers
(ippusbxd-printers)|fe80::e828:7eff:fe19:9962|:60000... failed: Invalid
argument.
till@till-x1carbon:~$

Specifying the interface is not accepted by wget, wget considers the
interface as a part of the name:

till@till-x1carbon:~$ wget ippusbxd-printers%ippusbxd:60000
--2016-12-29 20:45:52--  http://ippusbxd-printers%25ippusbxd:60000/
Resolving ippusbxd-printers%ippusbxd (ippusbxd-printers%ippusbxd)...
failed: Name or service not known.
wget: unable to resolve host address ‘ippusbxd-printers%ippusbxd’
till@till-x1carbon:~$ wget ippusbxd-printers%25ippusbxd:60000
--2016-12-29 20:45:59--  http://ippusbxd-printers%25ippusbxd:60000/
Resolving ippusbxd-printers%ippusbxd (ippusbxd-printers%ippusbxd)...
failed: Name or service not known.
wget: unable to resolve host address ‘ippusbxd-printers%ippusbxd’
till@till-x1carbon:~$

In Firefox it is even worse. The name, either with and without
specification of the interface is not resolved at all and Firefox tries
to add "www." and ".com".

    Till




>
>
> *Sent from my iPhone.  Please excuse any typos, as they are likely to happen by accident.*
>
>> On Dec 29, 2016, at 16:33, Till Kamppeter <[hidden email]> wrote:
>>
>>> On 12/29/2016 05:27 PM, Philipp Kern wrote:
>>>> On 12/29/2016 08:16 PM, Till Kamppeter wrote:
>>>> This would especially mean that I can access the printer's web admin
>>>> interface by pointing a browser to this address so I try the simple
>>>> command line browser wget:
>>>
>>> curl seems to work:
>>>
>>> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%25br0]/"
>>> No such site at :80
>>> $ curl "http://[fe80::3664:a9ff:fe9a:f5b8%br0]/"
>>> No such site at :80
>>>
>>> If only we had universal support for interface scopes by having a
>>> unified function that parses IP addresses...
>>>
>>> Kind regards
>>> Philipp Kern
>>>
>>
>> Thank you very much.
>>
>> curl 'http://[fe80::e828:7eff:fe19:9962%25ippusbxd]:60000/' > testfile.gz
>> gunzip testfile.gz
>>
>> gives an actual HTML file.
>>
>> I am not able to open this URL with Firefox, as this browser does not seem to understand the syntax of the IPv6 URL.
>>
>> Is there a way to make a local Zeroconf host name get assigned to this IPv6 IP address?
>>
>>   Till
>>
>>
>> --
>> ubuntu-devel mailing list
>> [hidden email]
>> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
In reply to this post by Philipp Kern
so that means then that via an IPv6 link-local address there is no way
to access the admin interface of the printer with a web browser?

So one can only access via CUPS?

    Till

On 12/29/2016 08:16 PM, Philipp Kern wrote:

> On 12/29/2016 10:33 PM, Till Kamppeter wrote:
>> Is there a way to make a local Zeroconf host name get assigned to this
>> IPv6 IP address?
>
> This feels impossible to me as no-one added scope IDs to DNS. There is
> no way for the stack to pick the right interface to use without that
> information. Note that ::1 would not be affected by this[0].
>
> I thought with the introduction of %25 as the canonical separator the
> issue was settled on how to address link-local addresses. Turns out
> that's not the case and browsers intentionally do not support it
> (Firefox bug[0], Chrome bug[1], WHATWG URL spec bug[2]).
>
> Kind regards
> Philipp Kern
>
> [0] I understand the need for differences between IPv4 and IPv6 but I
> still don't understand why - of all the things - localhost was limited
> to a single /128 address, whereas it's a /8 on IPv4. Which means that
> there's also a port conflict gamble going on there.
> [1] https://bugzilla.mozilla.org/show_bug.cgi?id=700999
> [2] https://bugs.chromium.org/p/chromium/issues/detail?id=70762
> [3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=27234
>
>


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Philipp Kern
On 12/29/2016 11:53 PM, Till Kamppeter wrote:
> so that means then that via an IPv6 link-local address there is no way
> to access the admin interface of the printer with a web browser?
>
> So one can only access via CUPS?

I think the answer here is: If an application speaks Zeroconf/Bonjour
natively, it can do everything correctly (which is true for instance
with CUPS itself). This is because avahi will expose the interface where
the device was discovered to the application. If you want to rely on
just mDNS names using NSS, it won't be sufficient to access devices via
IPv6 link-local addresses.

Of course devices usually broadcast all of their addresses, of which
some will be routable anyway.

Kind regards
Philipp Kern



--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

signature.asc (523 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Till Kamppeter-3
On 12/29/2016 09:28 PM, Philipp Kern wrote:

> On 12/29/2016 11:53 PM, Till Kamppeter wrote:
>> so that means then that via an IPv6 link-local address there is no way
>> to access the admin interface of the printer with a web browser?
>>
>> So one can only access via CUPS?
>
> I think the answer here is: If an application speaks Zeroconf/Bonjour
> natively, it can do everything correctly (which is true for instance
> with CUPS itself). This is because avahi will expose the interface where
> the device was discovered to the application. If you want to rely on
> just mDNS names using NSS, it won't be sufficient to access devices via
> IPv6 link-local addresses.
>
> Of course devices usually broadcast all of their addresses, of which
> some will be routable anyway.
>
> Kind regards
> Philipp Kern
>
>

OK,

do you (does someone) know how to set up the dummy-based interface named
"ippusbxd" so that it does multicast?

    Till


--
ubuntu-devel mailing list
[hidden email]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
12