前面介绍了虚拟测试环境,但只是谈到了最后的需求,并没有实际的操作步骤。从这里开始通过实际的操作方法一步步建立测试环境。这一节主要记录网络环境RouterOS的搭建。有关RouterOS的安装过程这里不会做太多说明,网络上此类说明较多,google一下一堆。这里重点介绍中间的设定。
简介
  RouterOs 是一款基于Linux的路由器操作系统,功能强大,拥有几乎所有硬件路由具有的功能。RouterOs要求相当简单:一台具有奔腾以上的CPU,64M内存的X86计算机就足够了(既然号称ISP级的路由器,对内存的要求是大了点)。关键是对网卡的支持:Intel的8255X系列、3com的3c905系列、RealTek的8139系列,常见的网卡全可以。(建议大家选用Intel82559网卡,速度和稳定性都很好。RealTek8139对CPU资源消耗较大,不适合×××量工作。3com就不要考虑了,官方文件说它不支持MTU1500,在特殊应用上可能有问题。具体的资料请大家到到www.mikrotik.com查询)。唯一的缺点是该软件是收费的,试用时间只有24小时。我这里的是3.2的版本。
  整个网络环境中分为两部份:一部份为实际的物理网络其网段为192.168.0.x,通过一台D-Link路由器ADSL拨号上网,网关为192.168.0.1。而RouterOS安装在一台较旧的电脑上,其外网卡设定为192.168.0.x网段用于模拟虚拟网络中的外网。第二部份为虚拟网络,通过RouterOS的二、三、四、五号端口模拟192.168.2.x,192.168.3.x,192.168.4.x,172.16.x.x这几个网段。虚拟网络环境主要完成以下要求:
一、保证虚拟网段(四个网段)能相互通讯;
二、保证虚拟网段能和192.168.0.x及互联网通讯;
三、各虚拟网段内的客户机通过DHCP功能自动获取IP地址并能完成上面的功能,重要的测试服务器通过DHCP的静态指定保证其IP地址的正确性和稳定性;
四、建立虚拟网络中的DNS服务器,保证在虚拟网络内通过域名定位其IP地址;
五、开启FTP功能;
六、通过RouterOS的脚本功能设定免费的动态DNS域名;
七、通过动态DNS结合端口映射功能将虚拟主机的服务发布到互联网络上(需经过两次端口映射)
初始设定
  在安装好RouterOS后需要对其进行初始设定,第一次需要在Console方式下设定网络。一般是设定好网络后保证网络中其它机器可以访问或是Ping通后就通过它自带的Winbox工具进行远程设定。初始的安装也很简单,主要是选择接入的网卡,然后指定其IP地址及子网掩码,然后指定网关就OK了。这里不做太多描述。而Winbox一般可以通过http访问设定好的Routeros就可以下载。如本例中的192.168.0.7。
Image00000
(图一:外网网口的IP地址)
Image00001
(图二:机器中网卡的数量)
  通过Winbox管理中IP-Address选项为各网卡设定合适的IP地址。需注意的是地址设定要和物理网卡相结合,而且前三个网段是C类网段,子网为24;后一个网段是B类网段,子网是16;这些在后面的DHCP中也会用到。
Image00003
(图三:2网段设定)
Image00005
(图四:172网段设定)
Image00004
(图五:各网段设定后完整图)
DHCP设定
  DHCP设定需要做一些准备工作:先要建立IP地址池,也就是DHCP的IP范围;然后需要记录重点服务器的mac址以便在DHCP中进行绑定。而通过DHCP配发后的IP能自动生成DNS记录的方法暂时没找到(Windows的DHCP和DNS可以这样配合工作,Linux下的好像有点复杂),所以主要通过手工方式指定。在Winbox中的IP-IP Pool设定中设定IP地址池(需注意172网段中的地址的范围和其它网段不同)。
Image00007
(图六:IP地址池的设定)
  设定好IP地址池后可以通过IP-DHCP Server选项设定DHCP服务器。和先前网卡IP地址设定一样这里也需要注意IP地址池和相应网卡要一致。
Image00006
(图七:新建2网段的DHCP服务器)
Image00012
(图八:DHCP基本设定)
  先前的需求中有说明要保证虚拟网络中各机器可以通过内部域名访问,所以这里的设定需要多加留心。我个人用的网络是4网段的,而虚拟环境中的服务器和普通机都是172网段中。要保证4网段能通过DNS访问172网段,4网段中首选DNS就得按下面的这种方式设定。其它环境中类同(请对比后面的DNS设定)。而需要访问外网的需求中DNS的设定也是至关重要的。看看这里备用DNS用的是什么你就很明白了。
Image00014
(图九:DHCP服务中网关及DNS设定)
Image00015
(图十:DHCP中IP绑定操作)
DNS设定
  DNS的重要性在Internet普及的今天显得尤为显著,可以说没有了它,网页浏览就成了很大问题。而在RouterOS中,DNS的设定还是比较简单的。这里需要注意的地方就是要和DHCP服务结合起来。
Image00016
(图十一:DNS服务设定)
Image00026
(图十二:DNS测试)
动态域名设定
  这里说的动态域名主要是指免费的动态域名,它能够将ADSL拨号的外网地址实时更新并和你所申请的域名对应。结合路由器上的端口映射工具,可以在没有固定IP的情况下在Internet上发布局域中的服务(如网页,FTP等)。RouterOS支持的动态域名可以在www.changeip.net网上申请。结合RouterOS强大的脚本功能实现动态域名功能。 以下是脚本内容。
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# EDIT YOUR DETAILS / CONFIGURATION HERE
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:global ddnsuser "用户名"
:global ddnspass "密码"
:global ddnshost "申请的域名"
:global ddnsinterface "ether1"

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# END OF USER DEFINED CONFIGURATION
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:global ddnssystem ("mt-" . [/system package get [/system package find name=system] version] )
:global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface] address ]
:global ddnslastip
:if ([:len [/interface find name=$ddnsinterface]] = 0 )
  do={ :log info "DDNS: No interface named $ddnsinterface, please check configuration." }
:if ([ :typeof $ddnslastip ] = "nothing" )
  do={ :global ddnslastip 0.0.0.0/0 }
:if ([ :typeof $ddnsip ] = "nothing" )
  do={ :log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")
}else={
:if ($ddnsip != $ddnslastip) do={
:log info "DDNS: Sending UPDATE!"
:log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]
:global ddnslastip $ddnsip
} else={
:log info "DDNS: No changes necessary."
}
}
 
  在Winbox的System-Script设定中添加以上脚本。有关这些脚本的解释,相信搞过Linux的人应该都能明白,如果理解有问题的话问google吧。
Image00017
(图十三:动态域名脚本设定)
  脚本设定完成后就可以给系统加一个计划任务让其定期执行该脚本以获得最新的地址。需要注意的是时间的设定以及任务中事件的命令方式。
Image00024
(图十四:任务计划的设定)
  这些设定完成后,可以执行一次脚本让其生效,可以登陆动态域名的管理界面看看是否成功。
Image00025
(图十五:查询到的外网地址)
Image00002
(图十六:动态域名的监控画面)
NAT及端口映射
  内网的机器要访问Internet需要给其指定NAT策略,而如果要将服务发布到外网则需要对计算机进行端口映射。需注意的是我测试网络的外网地址是192.168.0.7,虚拟网络的服务器是192.168.2.3。先需要在192.168.0.1上给192.168.0.7做映射,然后在RouterOS上给192.168.2.3做映射。
Image00027
(图十七:0网段的映射)
  上网NAT及端口映射在RouteOS中都在防火墙策略的NAT规则中,其中在基本页面中指定Chain为srcnat,外出的网卡为第一块网卡,在Action页面设定Action为masquerade。而端口映射其方式差不多。
Image00008
(图十八:上网NAT的General设定)
Image00009
(图十八:上网NAT的Action设定)
Image00010
(图十九:端口映射的General设定)
Image00011
(图二十:端口映射的action设定)
测试
  通过以上设定就可以在保证虚拟网络中的机器可以访问外网外还能保证能在外网访问映射的服务。
Image00028
(图二一:外网测试)
Image00029
(图二二:外网服务发布测试)