在部署网络时,我们通常使用路由器来连接不同的网络,这时候首选的设备当然是思科或华为等硬件路由器,不过在小型网络中我们也可以使用Window Server 2008来扮演路由器的角色。
我们以下面的拓扑图为例,来看看下面的三台PC电脑是怎样访问最左边的WEB服务器的,图例中三台路由器都是由Windows2008搭建的,千万不要被误以为是Cisco哦,
图: 1
我们先简单看一下三台PC是如何访问Web服务器的,当PC1访问Web时,首先向Router1询问Web的地址,这时候Router1将PC1的请求转发给Web;但PC2访问Web时怎么办呢?这时候PC2把请求发给Router2,Router2 再把PC2的请求转发给Router1,Router1再转发给Web,如果PC3访问Web时也是如此这般,每台路由器上都维护着一张特定的路由表,用来转发来自不同网络的请求。
第一节:安装路由器
我们首先实现让PC1正常访问Web服务器,在Router1上添加两块网卡,并分别取个便于标识的名字,一个用来连接Web服务器,一个用来连接Router2,如下图
图: 2
添加完网卡以后,在服务器管理器中我们用添加角色向导添加路由器。
Step1. 添加角色
图: 3
Step2. 选择路由
图: 4
Step3. 完成安装,添加还是很简单的。
图: 5
Step4. 安装完毕后,我们进入“服务器管理”界面,以此打开“路由和远程访问”,用右键点击第一项会弹出一个“路由和远程访问服务器安装向导”。
图: 6
Step5.选择自定义配置
图: 7
Step6.选择LAN路由
图: 8
Step7. 启动服务器并完成安装。
图: 9
到这里就完成了最基本的安装,这时候PC1就可以正常访问Web服务器了,我们也可以用Ping命令检查测试,不过我们要先将Router1和PC1的防火墙关闭。
图: 10
第二节:添加静态路由
我们已经实现了让PC1访问Web服务器的请求,那么如何实现让PC2也访问Web服务器的请求呢?当PC2的发送访问请求时,会先它的默认网关192.168.20.1转发,但对于Router2来说,Web服务器属于另外一个网段192.168.16.0,但Router2收到请求后却不知道如何将这个数据包转发到Router1 ,在Router2的路由表里并没有记录这样的一条记录,于是Router2又把请求发回了PC2,告诉PC2找不到它的Web服务器。那么怎么解决这个问题呢?我们通过添加静态路由的方式解决这个问题。
首先我们在Router2上添加路由器,方法参见上文。添加完毕后,我们在“服务器管理器”的导航窗口依次展开“路由和远程访问”,找到“静态路由”选项,右键点击选择“新建静态路由”弹出一个静态路由窗口。“接口”我们选择与Router1连接的网卡,目标处填写Web服务器所在的网络ID:192.168.16.0,网关即PC2的Web请求传至192.168.16.0网段的IP地址(这个地方一定要仔细确定其逻辑关系)。
图: 11
下图是Router2的路由表,其中蓝色背景的就是刚才新建的路径,它的跃点数为:
网关跃点数 + 接口跃点数=256+10(1000Mbps网络的默认值)=256
图: 12
在硬件路由器中可以实现根据访问需求过滤一些数据包,Windows server 2008的路由器同样也支持数据包的筛选。
在图例1中我们实现了PC1和Web服务器的互通互信,这时候由于安全的需要我们要屏蔽掉ping命令,这时候我们就要在Router1上做筛选设置。
在图13中分别由两块网卡,其中VM2是用来连接PC2,NAT就是用来连接Web服务器的网络接口。我们在VM2上点击右键打开其属性,然后选择“入站筛选器”
图: 13
在“入站筛选器”中我们选择“新建”按钮后弹出一个“添加IP筛选器”的窗口,我们以ICMP为例,凡是从“源网络”传来的ICMP数据包都将被拒绝,ICMP的类型为8,代码是0。
图: 14
“出站筛选器”的设置和入站类似,我们只要选定相应的接口,然后做设置就可以了,咱就不一一演示了 。
第三:添加动态路由
在前文中我们曾经说到,每台路由器都有一张路由表,记录着从相邻路由器之间的转发路径,如图1所示,Router1上记录着与Router2之间的转发路由表,Router2上记录着与Router3之间的转发路由表,但Router1和Router3之间要转发访问请求,则需要管理员手动添加一条转发路由命令,我们称之为 静态路由(Static Route),用这种手动管理路由表的方法势必会加重管理员的工作负担,但更要命的是如果某台路由器故障,则会导致整个网络不能正常访问,那么有没有一种方法让路由器自动记录这些路由转发信息,同时将其路由表中的 路由信息告诉相邻的路由器呢?这就是动态路由(Dynamic route)通讯协议RIP(Routing Information Protocol)。
与前文的配置静态路由相比,配置RIP要简单的多,我们仍然以图1为例,首先我们在Router3上开启RIP路由。
Step1:添加RIP协议,在下图所示的界面,展开IPv4,在常规上点击右键,选择“新增路由协议”,选中“用于Internet协议的RIP版本2”,点击确定。
图: 15
Step2:添加完RIP协议后,在左侧的IPV4下会多出一个RIP的选项,用右键点击它,选择“新增接口”,然后选择我们用来提供RIP功能的接口,在此图中我们通过VM3提供RIP功能,但点击确定后会弹出一个RIP属性的窗口(如图14所示),直接点击确定完成添加。
图: 16
图: 17
Step3:然后我们分别在Router1和Router2上分别启用RIP,我们可以先将前往配置过的静态路由删除,不过也可以尝试配置静态路由+动态路由。
配置完毕后,我们就可以实现从PC3(192.168.30.254/24)上访问Web服务器了(192.168.16.131/24)。
RIP路由器配置简单,管理也较为便捷,但大型网络或超大型网络却不能全部配置为RIP路由,因为RIP路由器发送的数据包最多只能经过15个路由器,而且它是用广播或多播的形式发动通告的,这势必会增加网络的负担,所以在网络中我们一般是根据具体情况分别配置静态路由加动态路由。
第四节:读懂路由表
在开始之初,我们就提到每一台路由器都维护着一张路由表,记录着路由数据包转发的路径,那么这个路由表到底是何许模样呢?我们在命令提示符下运行 route print命令即可看到传说中的路由表,不过样子看起来有些别扭,看惯了Windows视窗,看这个还有点不习惯。下面我们来每行每行的认识一下路由表,读懂了这些数据后不管是管理RIP路由还是静态路由都是很轻松的事情。
图: 18
A. 第一行命令默认路径,但路由器下的计算机发送数据包时,如果路由表中找不到转发路径,该请求会通过默认路径发送。
B. 这行是环回路由路径。
C. 直接连接的路由路径,即凡是从网络ID为192.168.10.0 发出的数据包都直接从接口192.168.10.2转发出去,而网关正好是“在链路上”,表示数据包直接给目标,不需要转发。
D. 子网广播路径,表示但路由器下的计算机发送广播数据包给192.168.10.255时(给网段192.168.10.0发送广播),该数据包会通过接口192.168.10.2转发出去。
E. 这是RIP路由的一条路径,表示其中的目标192.168.16.0时通过RIP学习得到的,其跃点数为13。
F. 240.0.0表示多播路径,如果路由器下的计算机发送多播数据包时,会直接发送给目标(如192.168.10.2、192.168.20.1)。
前面我们反复提到一个名词:跃点数,跃点数是用来表示发送数据包的成本,也就是我们常说的跳数(也就是经过的路由器的数量),跃点数可以手动设置,跃点数越低表示路径越优,路由器会先选择跃点数最低的路径转发数据包,Windows系统具备自动计算跃点数的功能,在Server2008版本中,计算公式如下:
跃点数 = 接口跃点数 + 网关跃点数
其中,接口跃点数是以网络接口的速度计算的。如:100Mbps网卡默认为20,1Gbps为10,10Gbps为5。网关跃点数默认为256,假如我们在1Gbps的网卡上指定默认网关,那么路由表中默认路由的跃点数为10+256=266。我们也可以在命令提示符下用使用命令netsh interface ip show address来查看网卡的网关跃点数和接口跃点数。