我们一直在尝试设置一个 Linux/BSD/etc 盒子,它既可以充当互联网网关,也可以充当路由器。我不知道如何很好地表达我们的情况,所以请原谅我……
目前我们正在使用具有以下网络接口的 Vyatta(带有屏蔽 IP 地址):
eth0
-> xxx178/30 - WAN(上游路由器:xxx177)vlan100
-> 附于eth0
br100
-> yyy1 - 桥接 eth0.vlan100 和 eth1eth1
-> 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 的界面。