话说我刚刚入IT这个行当的时候(that would be 15 yrs ago),单位的网络应用还十分的简单,硬件不过几台交换机还都是杂牌的,还都是非智能的,软件应用如果有也是单机版的,财务电算化是个能够拿得出手的应用。当时我的工作只有两大块:让单位的办公室PC能够上网,让单位的网站有内容、让外界能够看到这个网站。


除了网站的服务器运维(PC+ FREEBSD + APACHE )、网站开发(PHP + MYSQL)这部分外,就是网络管理了。

首先是CISCO 3650 做的拨号服务器,让家属拨号上网,其次是用 LINUX iptables 做 masquerade ,也就是NAT代理上网。


那个年代,对于 VLAN 是什么、为什么要用 VLAN 还是懵懂的。反正能做VLAN 的就只有那么 三两台交换机( intel 510 )而已,而且终端也不是太多,也没有互联互通的需求。好在 PC SERVER 是很便宜的,LINUX 也相当稳定,就多设了几个 LINUX-BOX ,每个BOX 多配置了几块 3COM 的网卡。


话说时光荏苒,转眼 10 yrs 过去了。


单位的交换机一水儿换成了 华为,S9300领队,下设 S7703 \ S5700 ,最后是 S2700. 。这些都还是我自己单位的园区网设备,还有WAN连接到上级单位。上级单位以及总集成商的大牛,确定了整个网络架构。他们分配好了IP地址、分配好了VLAN,甚至把S9312 都配置成万用的了。于是我就在这个基础上,给汇聚和接入交换机做配置,给核心交换机配置做点小改动。


最近头疼的事情是,一个和我平行的单位,非要访问我的部门资源。问题是,其他部门的网络资源怎么能够被保护不泄露?


绕是绕不过去了,只有迎着头皮上。好在有一个闲置的防火墙( USG 2210 )。便开始拿这个 USG 开始做文章吧。


首先构思一下网络拓扑。

当年上级单位给我的IP地址是“ 11 ”开始的。我就疑惑为什么不用内网 IP,而要用公网 IP 地址。实质上,“10”那个网段他们都用了,然后给我们这一级别的单位分配的时候哦,就用了“ 11 ”这个网段。总之是出乎我的知识能力范围了。好在人家是大牛,这么用了,网络也是通的,多说无益、实干兴邦吧。

这一次我打算给那个单位“ 192.168.x.y/24 ”这么个网段的 内网地址。


然后把他们的上联光路,汇总到 USG-BOX 的GE 0/0/1 端口;USG-BOX 的 GE 0/0/0 再连接进入核心交换机,如此就把内网和外网做了隔离。


这两天看USG 手册看得晕头晕脑的。ACL\策略\NAT,这些个到底该真么用啊。

本来糊涂的是,我突然想到,192.168 这是内网IP啊,服务器都在 11.这个公网网段上,这个相当于代理上网吗?那不就是NAT了么。

说道NAT ,本意是解决公网IP地址匮乏的问题的,实现起来有2种,一种是 公网地址池,一种是 单个公网IP 代理全部的内网终端。

若是单个 公网IP ,那么那个内网访问了我的服务器,我是没啥好办法记录吧,所以还是要考虑使用地址池,反正我也可以摘出来 一整个 C 类地址,做个一对一的代理不好么。

还真不好。手册上写“从地址池随机摘取地址”,就是说,我几乎没啥办法做到 内网IP和外网IP一对一,除非我把内网IP一条、一条的都手工写规则。


周日的晚上看资料看到24点还没睡意。

周一刚一上班就有了灵感。在USG 的上游设备,也就是 S9312 里面加上一条静态路由。OK啦,我的11网段可以访问内网地址192.168.x.y了。


综上所述:

一个网络出口位置,用NAT 还是用路由,只是取决于 你对这个网络的控制程度。要是两端你都有配置权限,那用 路由就可以了,好处是,从哪里来的访问请求,都是明明白白的。但要你只是能够控制自己网路的边界,对端是ISP的网络,你不可能把远端那么多的路由都配置了,那就只能做 NAT 了。