是否可以在同一网络接口上回复所有传入的数据包/请求?
这是我的设置:我有一个带有两个网络接口(eth0和eth1)的无头Raspberry Pi(raspbian)。第一个接口(eth0)使用公共IP地址,这是静态的。此接口旨在通过Internet提供对Pi(时间和Web服务器,SSH)的访问。第二个接口(eth1)使用Raspberry Pi进行一般的Internet连接(执行更新,同步自己的时间或其他)并通过DHCP使用动态IP。不可能在eth0上进行一般的Internet连接,因此我必须在Pi上使用eth1。
我的问题是互联网(在Pi上)和互联网访问Pi无法正常工作。
首次配置(/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
...
结果:
现在我尝试更改接口的度量,希望优先级的更改成功
第二个配置(/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
结果:
确定。我认为所有流量都默认输出到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
结果:
和'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