Vyatta和DNS重写(aka发夹或篡改)

我试图让我的公共IP也可以从内部LAN。

我知道,为了有一个内部区域来解决主机与内部IP,但由于很多原因,这是不适用于我的环境,溢出DNS更好。

我有一个“简单”的configuration,一个服务器和几个NAT端口:

set nat destination rule 4002 description 'NAT inbound' set nat destination rule 4002 destination address 'xyzk' set nat destination rule 4002 destination port '80,443,10050,10051,11051' set nat destination rule 4002 inbound-interface 'bond1' set nat destination rule 4002 protocol 'tcp' set nat destination rule 4002 translation address '10.0.0.190' set nat source rule 4002 description 'NAT outbound' set nat source rule 4002 outbound-interface 'bond1' set nat source rule 4002 source address '10.0.0.190' set nat source rule 4002 translation address 'xyzk' 

当我尝试从内部networking访问公共IP时,我无法访问它。 这是一个类似于如何实现国家环回/reflection的问题?

我在这里find了一个解决scheme: http : //onebadpixel.com/blog/2014/01/22/part-5-nat-translation/

所以我试图把它添加到configuration:

 set nat source rule 1000 description 'NAT hairpin' set nat source rule 1000 destination address '10.0.0.128/24' set nat source rule 1000 outbound-interface 'bond0' set nat source rule 1000 source address '10.0.0.128/24' set nat source rule 1000 translation address 'masquerade' 

但它仍然不起作用。

任何build议如何改变我的configuration,以使用DNS发夹?

我不是Vyatta的专家,我来自思科ASA世界,很简单,只需在NAT规则中添加“dns”;)

感谢法比奥

你可以在这里查看一个例子(来自SteveP的回答):

http://forum.vyos.net/showthread.php?tid=6554

(VyOs是Vyatta的开源分支,这应该是适用的)

请注意,发夹是通过一个NAT目标规则,而不是一个NAT源。

NAT目的地更改目的地IP地址(在这种情况下,这是您需要的),并在路由决定之前执行NAT源重写源IP地址之前执行路由决策。

另外在你的configuration中,“10.0.0.128/24”很好奇。 您应该使用networking10.0.0.0/24或主机10.0.0.128。