-1

非常简单的用例:我有两个以太网接口,它们都应该使用 DHCP 连接。默认路由是哪一个并不重要,因为它只是一个专用的概念验证设置。但是,热插拔必须对两个接口都有效(其中一个是 CDC-NCM 连接)。

connman 1.17 似乎只是尝试建立与其中一个接口的连接。如果我拔掉这个连接,DHCP 会在第二个接口上启动,一切都会继续工作。我总是可以通过手动使用“connmanctl connect”来连接第二个接口。但是……</p>

…有没有办法配置 connman 通过 DHCP 自动连接到两个网络?

4

1 回答 1

1

有什么方法可以配置 connman 通过 DHCP 自动连接到两个网络?

默认情况下,大多数 DHCP 服务器配置为向客户端发出默认路由。如果你得到两个默认路由,linux 网络堆栈就不可能正常工作。

由于您希望两个网络上的 DHCP 客户端都能正常运行,因此您可以做的最好的事情可能是扫描系统路由表并删除默认路由之一。

通常,您会使用netstat -rn查找重复的默认值...

[mpenning@tsunami micro]$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.16.1.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.16.2.0      0.0.0.0         255.255.255.0   U         0 0          0 eth1
239.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG        0 0          0 eth0 <--
0.0.0.0         172.16.2.1      0.0.0.0         UG        0 0          0 eth1 <--
[mpenning@tsunami micro]$

然后删除其中一个...

[mpenning@tsunami micro]$ sudo route del default dev eth1
[mpenning@tsunami micro]$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
172.16.1.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.16.2.0      0.0.0.0         255.255.255.0   U         0 0          0 eth1
239.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 eth0
0.0.0.0         172.16.1.1      0.0.0.0         UG        0 0          0 eth0
[mpenning@tsunami micro]$

编写一个 shell 脚本来检查这个问题并不难。但是,更好的解决方案是在其中一个网络上获取静态地址,这样您就不必围绕 DHCP 问题进行管理。

于 2013-12-08T09:59:57.700 回答