在同一网络接口 (UDP) 上回复

Reply on same network interface (UDP)

提问人:SBond 提问时间:1/31/2018 更新时间:1/31/2018 访问量:303

问:

是否可以在同一网络接口上回复所有传入的数据包/请求?

这是我的设置:我有一个带有两个网络接口(eth0 和 eth1)的无头 Raspberry Pi (raspbian)。第一个接口 (eth0) 使用公共 IP 地址,该地址是静态的。此接口旨在通过 Internet 提供对 Pi(时间和 Web 服务器,SSH)的访问。第二个接口(eth1)使用Raspberry Pi进行一般Internet连接(执行更新,同步自己的时间或其他),并通过DHCP使用动态IP。无法通过 eth0 进行一般的 Internet 连接,因此我必须在 Pi 上使用 eth1。

我的问题是 Internet(在 Pi 上)和对 Pi 的 Internet 访问无法正常工作。

第一个配置 (/etc/dhcpcd.conf):

interface eth0
static ip_address=141.41.241.68/28
static routers=141.41.241.65 192.168.0.1

重新启动后,“ifconfig”显示正确的 IP 设置:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 141.41.241.68  netmask 255.255.255.240  broadcast 141.41.241.79
        ...

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        ...

结果:

  • Raspberry Pi (eth1) 上的 Internet:不起作用
  • 通过 Internet 访问 Raspberry Pi(通过 eth0):
    • SSH (TCP):工作正常
    • Apache Web 服务器 (TCP):工作正常
    • NTP 时间服务器 (UDP):工作正常

现在我尝试更改接口的度量,希望优先级的更改成功

第二种配置 (/etc/dhcpcd.conf):

interface eth1
metric 200

interface eth0
static ip_address=141.41.241.68/28
static routers=141.41.241.65 192.168.0.1
metric 201

结果:

  • Raspberry Pi (eth1) 上的互联网:工作正常
  • 通过 Internet 访问 Raspberry Pi(通过 eth0):
    • SSH (TCP):不起作用
    • Apache Web 服务器 (TCP):不工作
    • NTP 时间服务器 (UDP):不工作

还行。我认为默认情况下所有流向 eth1 的流量。使用工具“iptraf-ng”,我能够看到问题:

TCP Connections (Source Host:Port)  Iface
--------------------------------------------------
80.187.108.126:53024                eth0 
141.41.241.68:80                    eth0 
141.41.241.68:80                    eth1 
80.187.108.126:53024                eth1 
80.187.108.126:53025                eth0 
141.41.241.68:80                    eth0 
141.41.241.68:80                    eth1 
80.187.108.126:53025                eth1 

UDP Connections
--------------------------------------------------
UDP (76 bytes) from 80.187.108.126:28599 to 141.41.241.68:123 on eth0
UDP (76 bytes) from 192.168.0.101:123 to 80.187.108.126:28599 on eth1

我们看到:

在 TCP 上:某些连接传出到错误的接口 (eth1)。

在 UDP 上:来自 80.187.108.126 的请求来自 eth0,响应通过 eth1 发送。


接下来,我定义了路由表来回复同一网络接口上的传入数据包...

echo 100 public >> /etc/iproute2/rt_tables
ip rule add from 141.41.241.68/32 table public
ip route add default via 141.41.241.65 dev eth0 table public

结果:

  • Raspberry Pi (eth1) 上的互联网:工作正常
  • 通过 Internet 访问 Raspberry Pi(通过 eth0):
    • SSH (TCP):工作正常
    • Apache Web 服务器 (TCP):工作正常
    • NTP 时间服务器 (UDP):不工作

和“iptraf-ng”显示:

TCP Connections (Source Host:Port)  Iface
--------------------------------------------------
141.41.241.68:80                    eth0
80.187.108.126:52083                eth0
141.41.241.68:80                    eth0
80.187.108.126:52084                eth0
141.41.241.68:80                    eth0
80.187.108.126:52085                eth0
141.41.241.68:80                    eth0
80.187.108.126:52086                eth0
141.41.241.68:80                    eth0
80.187.108.126:52087                eth0

UDP Connections
--------------------------------------------------
UDP (76 bytes) from 80.187.108.126:28599 to 141.41.241.68:123 on eth0
UDP (76 bytes) from 192.168.0.101:123 to 80.187.108.126:28599 on eth1

我们看到:

在TCP上:现在它可以正常工作

在 UDP 上:同样的问题:(

如何通过正确的接口 (eth0) 发送 UDP 响应?我不知道为什么TCP工作正常,但UDP失败:( 这非常令人沮丧,我没有更多的想法。 我希望有人能帮忙。

此致敬意 SBond(SBond)

Linux 网络 TCP UDP Raspbian

评论

0赞 shellter 2/1/2018
StackOverflow 旨在帮助人们修复他们现有的编程代码。对网络配置帮助、教程、研究、工具、建议、库和代码的请求是偏离主题的。阅读 stackoverflow.com/help/on-topicstackoverflow.com/help/how-to-askstackoverflow.com/help/dont-askstackoverflow.com/help/mcve 并在在此处发布更多 Qs 之前先参观。祝你好运。
0赞 SBond 2/1/2018
不好意思。谢谢你的信息。我把它记在心里

答: 暂无答案