通过交换机通过 dd-wrt ​​路由 RFC1918 地址

通过交换机通过 dd-wrt ​​路由 RFC1918 地址

我的一个实验有点卡住了。

我有一个看起来有点像这样的网络。

        | Internet |
             |
    ----  |Switch| ---- 
    |                  |
Server w/pub IP       | DD-WRT router 192.168.1.1 |
                           |
                         RFC1918 clients 192.168.1.0/24

我想要的是 RFC1918 客户端能够直接互相交谈。

在具有公共 IP 的服务器上,我有此路由:192.168.1.0/24 dev eth0 scope link并且可以看到数据包实际上到达了 192.168.1.1 的 dd-wrt ​​路由器,即使我没有得到答复。

尝试从公共 IP 服务器访问其中一个 RFC1918 客户端将不会得到任何结果,因为 dd-wrt ​​路由器没有在其外部接口上宣布该网络(arp who-has 192.168.1.107 tell xxx.xxx.xxx.xxx,但没有答案)。

作为 WLAN dd-wrt ​​路由器,路由器当然具有大量的路由、VLAN 和接口:

xxx.xxx.xxx.1 dev vlan2  scope link 
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.1 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.244 
84.215.64.0/18 dev vlan2  proto kernel  scope link  src xxx.xxx.xxx.xxx 
169.254.0.0/16 dev br0  proto kernel  scope link  src 169.254.255.1 
127.0.0.0/8 dev lo  scope link 
0.0.0.0 via xxx.xxx.xxx.1 dev vlan2

xxx.xxx.xxx.xxx是公网 IP,xxx.xxx.xxx.1是公网 IP 的默认路由。

我不知道该从哪里继续。我认为我既需要在 dd-wrt ​​路由器上进行路由,也需要一些 iptables 魔法?

为什么要做这么复杂的事情?为什么不呢 ;)

另外,不要介意“互联网”可以获得 RFC1918 流量,它不会超出墙外。

编辑 1:按照 stew 的提示,我确实得到了正确的 ARP 流量。添加一条 iptables 规则以允许来自该特定公共 IPd 机器的流量后,我得到了系统之间的流量!

不过,奇怪的是,我从具有发布 IP 的服务器 -> RFC1918 客户端获得的速度与流量被路由到互联网并返回的速度相同。

修改 2:好的,断开外部互联网连接仍将导致相同的糟糕传输速度。所以一定是其他原因。

编辑 3:好的,我猜速度这么慢肯定还有其他原因。结案了。:)

答案1

您需要 dd-wrt ​​将 arp 请求从一个接口代理到另一个接口。尝试:

echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp

相关内容