转帖:
我的routeros网关机器配置为赛扬433 CPU64M SDRAM540M 希捷硬盘,SIS主板集成显卡,没有声卡,两块杂牌RTL8139D网卡,显示器鼠标键盘都没有接,上网类型为10M电信光纤固定IP,内部为一个小型局域网,routeros中外网卡(WAN接口)名称为outsideip地址为218.91.210.206,内网卡(LAN接口)名称为inside,ip地址为192.168.2.1,内网网络地址为192.168.2.0,内网通过100M普通交换机(SWITCH)接有121610M集线器(HUB),大约有150台电脑同时上网,在这样的配置下网络很稳定,routeros网关连续使用4个月没有重新启动过,还且网速很块,这样配置的网关成本大约200块钱(一台淘汰的二手主机),却能稳定带动150电脑同时上网,真是奇迹,所以我以这个网络环境作为例子,相信有较好的实用性及普遍性。

下面我们再说下snatdnat的含义及应用场合:
1.snat
是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131)通信,AB发出IP数据包,如果没有SNATA主机进行源地址转换,AB主机的通讯会不正常中断,因为当路由器将内网的数据包发到公网IP后,公网IP会给你的私网IP回数据包,这时,公网IP根本就无法知道你的私网IP应该如何走了。所以问它上一级路由器,当然这是肯定的,因为从公网上根本就无法看到私网IP,因些你无法给他通信。为了实现数据包的正确发送及返回,网关必须将A的址转换为一个合法的公网地址,同时为了以后B主机能将数据包发送给A,这个合法的公网地址必须是网关的外网地址,如果是其它公网地址的话,B会把数据包发送到其它网关,而不是A主机所在的网关,A将收不到B发过来的数据包,所以内网主机要上公网就必须要有合法的公网地址,而得到这个地址的方法就是让网关进行SNAT(源地址转换),将内网地址转换成公网址(一般是网关的外部地址),所以大家经常会看到为了让内网用户上公网,我们必须在routerosfirewall中设置snat,俗称IP地址欺骗或伪装(masquerade),现在我举个例子内网的A主机要上公网在routeros中怎么设置
:
首先我们说一下snat中几个参数的含义,action,这是说明用的哪种转换方式,通常我们用masquradenat这两种,在特殊情况下用accept(主要是内网中有公网地址存在的情况)方法,protocol说明对哪些传输协进行转换(通常有tcp,udp),out-interface说明通过哪一个网卡进行转换(通常是外网卡outside)to-src-address是将源地址伪装成哪些地址(可以是一个也可以是很多个),to-src-pot是将源端口伪装成哪些端口(可以是一个也可以是很多个),dst-address是指发向哪些主机的数据包要进行伪装(可以一个可以多个)dst-port是指发向哪些端口的数据包进行伪装(可以一个可以多个)src-address是指对哪些源地址进行伪装(可以一个可以多个),src-port是指从哪些源端口发出的数据包进行伪装(可以一个可以多个),从这些选项看出,routerossnat中的设置功能是非常强大的,可以说弹性十足,可以满足几乎所有要求,现在我们接着说上面的问题,为了便以理解我们多举几例子。

1.
内网的A主机(192.168.2.8)要上公网,并且只使用公网B(61.132.62.131)主机的web服务(80端口),哪么可以这么设置:
ip firewall src-nat add action=masquerade out-interface=outside protocol=tcp dst-address=61.132.62.131/32:80 src-address=192.168.2.8/32
或者用下面命令也行

ip firewall src-nat add action=nat out-interface=outside protocol=tcp dst-address=61.132.62.131/32:80 src-address=192.168.2.8/32 to-src-address=218.91.210.206
可以看出masqueradenat这两种不同的方法区别在于nat必须多设置一个to-src-address参数为了简单起见,下面的例子我们都以nat方式为模型
2.
内网所有主机(192.168.2.0)要上公网,并且只使用整个公网上的主机web服务(80端口),哪么可以这么设置:
ip firewall src-nat add action=nat out-interface=outside protocol=tcp dst-address=0.0.0.0/0:80 src-address=192.168.2.0/24 to-src-address=218.91.210.206

3.
内网所有主机(192.168.2.0)要上公网,并且使用整个公网上的所有主机的所有服务,哪么可以这么设置
:
ip firewall src-nat add action=nat out-interface=outside src-address=192.168.2.0/24 to-src-address=218.91.210.206

4.
现在来个特珠点的,要求不管哪里来的数据包,不管到哪个地方方去的数据包都伪装一下地址该怎么做呢方法如下
:
ip firewall src-nat add action=nat to-src-address=218.91.210.206
呵呵这个设置好简单啊,但带来很多问题,比如安全性问题,ip地址显示不正确问题等都是由它而生


5.
再来看一个更特殊的问题,就是大家所说的路由器的回流问题,什么叫回流呢,就是当内网有服务映射到网关后,内网主机也可以用网关外部地址访问,凡是支持回流功能的路由器,都可以从内网访问网关外部地址上映射的服务,不支持回流技术的当然就不行啦

相关文章: