我们在我们的networking上build立了一个Vyatta Core 6.1网关,有三个接口:
eth0 – 1.1.1.1 – 公共网关/路由器IP(公共上游路由器) eth1 – 2.2.2.1/24 – 公有子网(连接到第二个防火墙2.2.2.2 ) eth2 – 10.10.0.1/24 – 私有子网 我们的ISP提供了1.1.1.1地址供我们用作我们的网关。 2.2.2.1地址是这样的,另一个防火墙( 2.2.2.2 )可以与这个网关进行通信,然后通过eth0接口将stream量发送出去。
这是我们目前的configuration:
interfaces { bridge br100 { address 2.2.2.1/24 } ethernet eth0 { address 1.1.1.1/30 vif 100 { bridge-group { bridge br100 } } } ethernet eth1 { bridge-group { bridge br100 } } ethernet eth2 { address 10.10.0.1/24 } loopback lo { } } service { nat { rule 100 { outbound-interface eth0 source { address 10.10.0.1/24 } type masquerade } } }
使用这个configuration,它将路由一切,但伪装后的源地址是1.1.1.1 ,这是正确的,因为那是它绑定的接口。 但是由于我们这里的一些要求,我们需要它从2.2.2.1地址获得源代码(如果我们可以发送的唯一地址是我们的网关,那么为C类公共子网支付的点数是多less?)。
我已经尝试绑定到br100而不是eth0 ,但是如果我这样做似乎没有路由任何东西。
我想我只是想念一些简单的东西。 有什么想法吗?
这种行为是有道理的configuration方式。 你在用“其他”防火墙做什么? 这可能与将stream量路由到第二个防火墙一样简单,但它引发了一个问题:“为什么有两个防火墙?” 根据configuration,源自10.10.0.1/24的任何stream量将被转换为另一端的1.1.1.1。 (使用端口地址转换)如果您需要防火墙后面的系统为自己“声称”您的一个公共IP,则还需要设置静态NAT。
它看起来像这样:
(从这里获取更详细的参考。)
设置服务nat规则1
编辑服务nat规则1
设置types的目标
设置翻译types的静态
设置入接口eth0
设置协议全部
设置源networking0.0.0.0/0
设置目标地址PUBLIC_IP
设置内部地址地址INSIDE_IP
设置服务nat规则2
编辑服务nat规则2
设置types的来源
设置翻译types的静态
设置出站接口eth0
设置协议全部
设置源地址INSIDE_IP
设置目标networking0.0.0.0/0
设置外部地址地址PUBLIC_IP
不要使用伪装,使用DNAT或SNAT(我总是忘记哪一个) – 那么你可以指定公共NAT的地址。
伪装基本上用于dynamic地址(即消费者adsl),其中静态地址由于其改变而不能被指定。