在不同网络上创建子网

在不同网络上创建子网

我在一个网络上,被分配了 1 个 IP 地址。这是 172.16.1.202。但是,我想同时运行多台机器,所以我用 Raspberry Pi 创建了一个路由器。它运行 Raspbian Wheezy,使用 ISC-DHCP 服务器来处理连接,使用 hostap 进行无线广播,使用 IP 表进行路由。我主要遵循了 adafruit 指南中的指南这里

我可以正常建立无线连接,并且它会为每台机器分配一个有效的 IP 地址。它们可以毫无问题地互相通信。它们还可以 ping 172 网络上的任何机器。但是,172 网络上的机器无法 ping 甚至找不到我的 192 网络。我认为如果我只从另一台机器请求数据,这是可以的,因为它似乎能够成功 ping,这意味着它知道如何将数据返回到我的机器,但如果我想让 172 台机器将数据推送到我的机器,那就不行了。

我该如何告诉 172 网络或某台机器我的 IP 地址 (172.16.1.202) 可以转发到我的 192 网络?还是我的方法不对?我不能干扰 172 网络本身,但我可以更改 172 网络上的单台机器。

我在这里先向您的帮助表示感谢。

答案1

这里似乎有两个不同但相关的问题:

问题#1:

如果您有多台计算机隐藏在单个 IP 地址后面,则需要使用一种称为端口地址转换(也称为 NAT 过载)的网络功能。此功能允许您的路由器动态地将 TCP 流量的源端口重新映射到出站目的地并跟踪它们,从而透明地允许将流量返回到其后面的看不见的 IP。这是一个非常简单的解释,但您可以在此处找到更多信息:http://en.wikipedia.org/wiki/Network_address_translation

您原始帖子中引用了以下链接,其中包含有关网络地址转换的说明: http://qcktech.blogspot.com/2012/08/raspberry-pi-as-router.html

此外,请确保您的 DHCP 服务器将“内部”接口的 IP 作为默认网关分发给您的客户端。示例:

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.2 192.168.1.254;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
    default-lease-time 600;
    max-lease-time 7200;
    option domain-name "local";
    option domain-name-servers 8.8.8.8, 8.8.4.4;
}

问题 #2:

如果您没有使用端口地址转换,您的路由器将尝试将流量从 192 网络直接传送到 172.16.1.x 网络 - 但 172.16.1.x 网络的管理员尚未更新其配置以告诉他的路由器将发往“您的”192.-无论哪个网络的流量指向您的 IP(我猜这可能不会发生)。

如果您使用端口地址转换,172.16.1.x 网络上的其他机器将不会自动“看到”您 192.-whatever 网络上的机器,因为它们是隐藏的 - 这就是 PAT 的工作方式:它允许您的私有 IP 相互通信,但也可以通过端口地址转换功能访问其他网络。

祝你好运!

相关内容