赞
踩
NAT,网络地址转换,让内网用户可以访问公网,让公网用户可以访问内网,让某人能用特定的地址访问某个服务,等等等等。
绝大多数情况下NAT解决的是缺路由记录或者缺IP的问题。
如图:
服务器需要同时被2条线路的用户访问。
大多数情况下,在SW上加一些静态的路由记录,2台路由器上分别配ip nat ins / out /ip nat ins so list xxx g0/0 ov
可以解决。不过在某些情况下,没智能DNS解析,不知道用户到底会访问218.1.1.1还是218.2.2.2 ,如此以来
当SW的路由表里从R2走的用户访问了R1,那就肯定无法访问到服务器了,因为没有路由记录。
再扩大一点,如果L3不是一个SW,是一个网络,使你没办法配置,某条线也肯定没办法被访问,同样因为
没有路由记录。
在这种情况下,不能拒绝客户的要求,我得赚钱养老婆孩子。也不能说我不会,那太丢份子。只能想想办法去解决。
如果R1,R2 是FW,那估计很容易解决,FW基本都是Linux+GUI , Linux实现这个需求太简单了,iptables可以拿来
就开搞。 不过当R1,R2是个思科路由器呢?虽然也很简单,但可能有朋友会遇到点麻烦,那么就跟我一起解决这样
的问题吧。
主线R1:218.1.1.1 , 副线R2 218.2.2.2
SW1 只有0.0.0.0/0 R1
在R2 的g0/0,g0/1上我就不启用ip nat inside 或outside了, 改为启用NVI方式的 ip nat enable
g0/0 连外网 , g0/1连内网SW
R2
#
g0/0
ip add 218.1.1.1/30
#
g0/1
ip add 10.2.1.1/30
ip nat en
#
ip route 10.1.1.100 255.255.255.255 10.2.1.2
ip route 0.0.0.0 0.0.0.0.0 g0/0 #真实环境下,你可千万别写g0/0,老老实实的写ip地址吧,否则ARP表会吓死你,CPU会高死你,网络会慢死你!
access-l 100 permit tcp any host 218.2.2.2 eq 8080
#允许外到内的访问,你永远不知道是谁来访问,所以就是any -> 218.2.2.2。
ip nat source static tcp 10.1.1.100 80 218.2.2.2 8080 extendable
#把访问目标是218.2.2.2:8080的数据转换成10.1.1.100:80。
#
ip nat source list 100 int g 0/1 overload
#在内网口上做地址转换,可以看到NVI地址这时候是10.2.1.1。 也就是不管谁访问,都把地址变成10.2.1.1。
#跟内网访问外网的不管谁访问,都转换为218.2.2.2正好相反。既然是10.2.1.1了,当然可以访问10.1.1.100。
#
测一下吧。。218.2.2.2:8080已经可以被访问了。
这是NVI配置方法,在查看NAT表的时候与之前的方法稍有不同:
show ip nat tra -> show ip nat nvi tra
show ip nat st -> show ip nat nvi st
如果R2 还要作为其他设备访问外网使用的话,在g0/0上也启用ip nat en
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。