1

我正在尝试设置一个设备以使用 mDNS 宣布其服务,并在没有基础设施、路由器或 DHCP 的情况下连接到它。它在树莓派和 OSX 之间完美运行。树莓派(使用主机名'ubuntu.local'运行ubuntu)和英特尔上的ubuntu 14.02之间并非如此。在清除 ubuntu 上的路由之后,这是我最集中的测试的一个运行过程,来自英特尔上的 ubuntu 命令行。

jeff@jeff-OptiPlex-SX280:~$ ip -6 route list 
jeff@jeff-OptiPlex-SX280:~$ sudo traceroute -i eth0 ubuntu.local
traceroute to ubuntu.local (fe80::ba27:ebff:fe1a:74e5), 30 hops max, 80 byte packets
connect: Network is unreachable

所以——没有路线,对吧?让我们添加一个并再试一次:

jeff@jeff-OptiPlex-SX280:~$ sudo ip -6 route add fe80::/10 dev eth0
jeff@jeff-OptiPlex-SX280:~$ sudo traceroute -i eth0 ubuntu.local
traceroute to ubuntu.local (fe80::ba27:ebff:fe1a:74e5), 30 hops max, 80 byte packets
 1  ubuntu.local (fe80::ba27:ebff:fe1a:74e5%eth0)  0.925 ms  0.988 ms  1.058 ms

现在我有一条路由,并且已经证明 intel 上的 ubuntu 知道 ubuntu.local 的 ipv6 地址,并且可以与之对话。请注意,我强制使用 eth0 接口。让我们在不指定接口的情况下尝试一下,因为我添加的路由应该将所有 fe80* 流量发送到 eth0:

jeff@jeff-OptiPlex-SX280:~$ sudo traceroute ubuntu.local
traceroute to ubuntu.local (fe80::ba27:ebff:fe1a:74e5), 30 hops max, 80 byte packets
connect: Invalid argument

jeff@jeff-OptiPlex-SX280:~$ ssh -6 ubuntu.local
ssh: connect to host ubuntu.local port 22: Invalid argument

没有指定接口,我得到“无效参数”。使用 ssh、wget 等进行的各种测试都返回“无效参数”。如果我再次强制接口,使用附加 %eth0 的树莓派(ubuntu.local)的 ipv6 地址,我可以连接。

jeff@jeff-OptiPlex-SX280:~$ ssh -6 ubuntu@fe80::ba27:ebff:fe1a:74e5%eth0
Password: 
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.18.0-14-rpi2 armv7l) 

 * Documentation:  https://help.ubuntu.com/
Last login: Fri Mar 20 20:56:52 2015 from fe80::20f:1fff:fee2:2c36%eth0
ubuntu@ubuntu:~$ exit
logout
Connection to fe80::ba27:ebff:fe1a:74e5%eth0 closed.

从语法上讲,我似乎无法将接口附加到 mDNS 名称,ssh 会抱怨。似乎“无效参数”是尝试 eth0 以外的其他设备的产物,但我无法确认。我只是错过了 ipv6 路由的要点吗?在这个用例中我没有网关,所以我看到的很多建议都不适用。我尝试让树莓派成为网关,但没有不同的结果。

谢谢你的建议!

-杰夫

4

0 回答 0