网络图如下:

我们想从10.10.10.0 /24网络通过外部域名www.mydomain.com访问DMZ里的web服务器,并不想让PIX修改我们的DNS回复。让PIX作dnat把外部IP地址转为DMZ里web服务器真实地址192.168.100.10。
注意:当然了,如果从inside访问dmz里的192.168.100.10都不能够,光作这个也是不能访问的,前提是inside用户能够外访,也能访问到DMZ内部地址:
global (outside) 1 interface global (dmz) 1 interface nat (inside) 1 0 0
|
你不想利用interface占的地址,也可以另指定你相应端口网络里的地址
global (outside) 1 99.99.99.3 global (dmz) 1 192.168.100.2 nat (inside) 1 0 0 现在,用alias命令作dnat: alias(inside) 99.99.99.99 192.168.100.10 255.255.255.255
|
!--- 此句设置dnat.DNS回复不会被PIX修改,因为外部地址99.99.99.99不匹配第二个地址(192.168.100.10),由于发往客户端的DNS回复里有与目标地址99.99.99.99匹配,请求会”dnat-ed”.
注意: 此例中IP地址与上面DNS Doctoring的例子中顺序相反.
接下来做web服务器的静态转换,允许所有人访问其80端口(http):
static(dmz,outside) 99.99.99.99 192.168.100.10 netmask 255.255.255.255
|
!--- 建立dmz区服务器地址192.168.100.10与外部地址99.99.99.99间静态转换
赋予访问权,access list命令如下:
access-list 101 permit tcp any host 99.99.99.99 eq www access-group 101 in interface outside !--- 允许所有来自outside用户访问web服务器80端口. 同样,也可以使用老版本的conduit命令: conduit permit tcp host 99.99.99.99 eq www any !--- 允许所有来自outside用户访问web服务器80端口.
|
配置中的说明
· alias命令里的interface应该是发出请求的客户端所在那个端口.
· 如果DMZ里也有客户端PC,需专门为dmz设置的alias命令 (也就是DNS doctoring),
例如,你想让DMZ的其他客户端用外部域名访问DMZ的web服务器,其实做法已跟例1没什么区别,为DMZ增加一条alias,做一个DNS Doctoring修改它DNS回复就行了:
alias (dmz) 192.168.100.10 99.99.99.99 255.255.255.255
|
· 如果PIX有更多的端口,可以为不同的端口作多条alias命令