1

我无法配置我的网络以使用友好名称访问我的设备。这是我的情况:

   LAN
    ^
----¦----  USB/ETH   ------------------
¦  PC   ¦ ---------> ¦ Embedded device¦
---------            ------------------

我想做的是使用友好的 DNS 名称来访问我的设备,例如打开一个网络浏览器,输入“mydevice”并访问我的设备的网页。我使用 dnsmasq 作为 DNS/DHCP 服务器。

它不起作用,因为在配置我的 USB 网络适配器后,我的 PC 始终使用 USB/ETH 作为默认路由,并且外部世界无法访问(在 Linux 和 Windows 下)。

解决方案 1:从 DHCP 服务器中删除默认路由。

这在 Linux 下运行良好,但我的 Windows 7 不想设置 IP 地址并显示非常清晰的错误消息:

您的计算机没有从网络(由 DHCP 服务器)为网络地址为 0x001830000000 的网卡分配地址。发生以下错误:0x79。您的计算机将继续尝试从网络地址 (DHCP) 服务器自行获取地址。

解决方案 2:更改 USB/ETH 接口的指标

我从那里得到了这个解决方案:http: //support.microsoft.com/kb/894564

这在 Windows 下运行良好,但是,我想让事情“自动”并避免进入 Windows 配置的需要!在我的 Linux 主机上,由于现在配置了默认路由,我回到了第一种情况。

由于该指标是在本地计算的,我想知道是否真的可以从 DHCP 服务器更改此值(可能不是!)?你有什么建议让这个奇怪的网络配置在任何情况下都可以在两个操作系统上工作吗?或者是否可以“伪造”我的嵌入式设备上的慢速连接以强制操作系统设置更高的指标?

感谢您的建议!

编辑 1

我想避免来自PC的任何操作......

4

1 回答 1

2

如果这是我要解决的问题,我将为两个不同的网络使用不同的RFC 1918地址块:例如,我将 192.168.0.0/16 用于 LAN,将 10.0.0.0/8 用于通过 USB 连接的设备-安装的以太网设备。(是的,1600 万个 IP 远远超出了它的需要,但我更喜欢 192.168.0.0/16 范围用于我自己的网络。10.0.0.0/8 从来没有感觉对。)

ip route add 192.168.0.0/16 dev eth0
ip route add 10.0.0.0/8 dev <name of usb eth device> src 10.0.0.1
ip route add default via <router> dev eth0

您必须将设备配置为在 10.0.0.0/8 中具有相应的地址——而不是 10.0.0.1——并确保您的设备也知道如何通过接口路由到 10.0.0.0/8。

于 2011-12-07T09:48:00.830 回答