非常简单的用例:我有两个以太网接口,都应该使用DHCP连接。默认路由是哪一个并不重要,因为它只是一个专门的概念验证设置。但是,热插拔必须适用于两个接口(其中一个是CDC-NCM连接)。
connman 1.17似乎只是尝试建立与其中一个接口的连接。如果我拔下此连接,则在第二个接口上启动DHCP,一切都继续工作。我总是可以手动使用“connmanctl connect”来连接第二个接口。但...
...有没有办法配置connman通过DHCP将AUTOMATICALLY连接到两个网络?
答案 0 :(得分:1)
有没有办法配置connman通过DHCP将AUTOMATICALLY连接到两个网络?
默认情况下,大多数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问题。