两台机器之间的路由表和 IP 转发

两台机器之间的路由表和 IP 转发

你好我现在的网络是这样的

[Raspberry]--eth0--------p3p1-[Laptop]-wlp3s0------[Router]-------INTERNET
eth0 = 10.10.10.1
p3p1 = 10.10.10.2
wlp3s0 = 192.168.2.11
Router = 192.168.2.1

我想让 Raspberry 访问互联网。我在笔记本电脑上打开了端口转发

[kamil@laura ~]$ cat /proc/sys/net/ipv4/ip_forward 
1

我检查了 Raspberry 上的路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.10.10.1      0.0.0.0         UG    0      0        0 eth0
10.10.10.0      *               255.255.255.0   U     0      0        0 eth0

我在笔记本电脑上设置了路线:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         router          0.0.0.0         UG    0      0        0 wlp3s0
10.10.10.0      0.0.0.0         255.255.255.0   U     1      0        0 p3p1
192.168.2.0     0.0.0.0         255.255.255.0   U     9      0        0 wlp3s0

但是我的 Raspberry 无法 ping 路由器 IP 地址,它一直在等待。我遗漏了什么,请帮忙!

两台机器上的 IPTables 都已关闭。

答案1

尝试这个:

  1. 将笔记本电脑p3p1接口上的IP地址更改为10.10.10.1。

  2. 在笔记本电脑上启用 IP 转发(不是端口转发)。如果是 Linux,请使用:sysctl -w net.ipv4.ip_forward=1

  3. 向您的路由器添加一条路由:10.10.10.0 255.255.255.0 下一跳:192.168.2.11

您可能需要在路由器上设置 NAT,才能将 10.xxx 地址转换为 NAT。这取决于路由器的品牌。

答案2

有很多原因导致这种方法行不通。以下是其中两个:

  1. 路由器不知道它应该对具有 10.x 地址的机器进行 NAT。它认为其客户端具有 192.168.x 地址。

  2. 路由器不知道应该将发往 10.10.10.2 的数据包(即使是本地生成的数据包)发送到笔记本电脑。然而,它没有其他 IP 地址可以用作将数据包发送到 pi 的目的地。因此路由器不能到达圆周率。完全到达。无论如何。就这样。

您需要先设计这一切的工作方式,然后实施。它不会自动发生。在笔记本电脑上实施 NAT 可能是最简单的方法。

相关内容