网关和路由器在一台计算机上

网关和路由器在一台计算机上

我们一直在尝试设置一个 Linux/BSD/etc 盒子,它既可以充当互联网网关,也可以充当路由器。我不知道如何很好地表达我们的情况,所以请原谅我……

目前我们正在使用具有以下网络接口的 Vyatta(带有屏蔽 IP 地址):

  • eth0-> xxx178/30 - WAN(上游路由器:xxx177)
    • vlan100-> 附于eth0
  • br100-> yyy1 - 桥接 eth0.vlan100 和 eth1
  • eth1-> yyyy/24 - 与 WAN 桥接(xxx178 是此子网的上游路由器)
  • eth2-> 10.10.0.1/16 - 私有网络,通过 yyy1 进行 NAT

问题是:当我们将 NAT 规则设置为路由 10.10.0.0/16 流量时,br100没有任何流量被路由。但是,如果我们将 NAT 规则设置为路由eth0,流量实际上会路由,但现在它来自 xxx178 地址,而不是 yyy1 地址。

我在这里做错了什么?任何想法或建议都会有所帮助。


当前配置(减去一些多余的内容):

interfaces {
    bridge br100 {
        address y.y.y.1/24
    }
    ethernet eth0 {
        address x.x.x.178/30
        vif 100 {
            bridge-group {
                bridge br100
            }
        }
    }
    ethernet eth1 {
        bridge-group {
            bridge br100
        }
    }
    ethernet eth2 {
        address 10.10.0.1/16
    }
    loopback lo {
    }
}
services {
    nat {
        rule 1 {
            outbound-interface br100
            source {
                address 10.10.0.0/16
            }
            type masquerade
        }
    }
}
system {
    gateway-address x.x.x.177
}

答案1

我们能够解决这个问题的方法是将 NAT 规则更改为 SNAT 而不是伪装。

答案2

在大多数发行版中,除非将它们设置为路由器,否则它们将默认拒绝转发 IP 流量。通常我使用 packetprotector(在华硕家用路由器上运行的 Linux)来完成此类工作。但您需要检查 /etc/sysctl.conf 中的设置。

查找“net.ipv4.ip_forward = ”,如果您希望转发流量,则应将此值设置为 1(如果不是,则设置为“0”)。在此处更改文件将使更改在重新启动后保持不变,并将在网络服务启动时启动。

答案3

我建议你使用普富思

它有一个非常好的基于 Web 的界面。

相关内容