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

我们一直在试图设置一个Linux / BSD / etc盒子,它既可以作为互联网网关,也可以作为路由器。 我不知道如何expression我们的情况,所以请原谅我…

目前我们正在使用Vyatta以下networking接口(带有掩码的IP地址):

  • eth0 – > xxx178 / 30 – WAN(上行路由器:xxx177)
    • vlan100 – >连接到eth0
  • br100 – > yyy1 – 桥梁eth0.vlan100和eth1
  • eth1 – > yyyy / 24 – 与WAN桥接(xxx178是此子网的上游路由器)
  • eth2 – > 10.10.0.1/16 – 专用networking,通过yyy1进行NAT

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

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

当前configuration(减去一些绒毛):

 interfaces { bridge br100 { address yyy1/24 } ethernet eth0 { address xxx178/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 xxx177 } 

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

在大多数发行版中,除非它们被设置为路由器,否则将默认拒绝转发IPstream量的行为。 通常我使用一个packetprotector(在华硕家庭路由器上运行的linux)进行这样的工作。 但是你会想检查/etc/sysctl.conf中的设置。

寻找'net.ipv4.ip_forward =',如果你想转发stream量,这个值应该被设置为1(如果不是'0')。 在此处更改文件将在重新启动时保持更改,并在networking服务启动时启动。

我会build议你使用pfSense 。

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