我正在尝试从我的mac向运行在Google VM IoT实例上的谷歌linux网关发送消息。无法让运行在linux实例中的网关服务器确认从mac上的脚本发送的消息。 设置Google VM linux实例,并按照https://codelabs.developers.google.com/codelabs/cloud-iot-core-gateways/index.html#0中的说明进行操作 我确实试着通读了https://cloud.google.com/community/tutorials/cloud-iot-gateways-rpi。我将GOOGLE_CLOUD_PROJECT设置
我必须配置NAT,并在连接到Linux盒的两个网关之间手动拆分internet流量。
如果每个网关都有特定的IP地址,则没有问题。我可以通过iproute2做到这一点:
ip route add default via 192.168.1.1 dev eth1
ip route add 2.3.4.5 via 192.168.0.1 dev eth0
ip route add 8.9.4.5 via 192.168.0.1 dev eth0
但我的问题太简单了!我无法更改网关地址和网络ids。我只需要使用两个来自Linux机器的地址相同的互联网网关,内核3.2.0和更高版本。
类似的问题但没有答案:
具有相同度量的两个默认路由
Linux如何在默认网关之间进行选择?
在Linux上,当两条路由具有相同的度量时,将使用哪一条?我发现这是记录在案 for Windows (“如果多个相同速度的接口具有相同的最低接口度量,那么根据绑定顺序,将使用第一个网络适配器的默认网关。当第一个网络适配器不可用时使用第二个网络适配器的默认网关”)。但无法找到Linux是如何处理这一问题的。
我想答案在代码中,但并不明显。