本帖最后由 overthink 于 2014-9-4 16:18 编辑
[补发精华] ITX 软路由 Windows server 2012R2 + Vmware Workstation方案
半年多前的帖,目前已经迁移到ESXI上, 如果家里使用HTPC并有两个网卡口可以使用此方案,文章内容与初始版本有改动。
INTEL D410 ITX主板,是搞来想做脱机下载用的,顺手买了张82546GB网卡,跑下软路由。还有些闲置的配件,一起利用了。
82546GB双口网卡
X560电源和Plextor M5P 及WD250G HDD
此外,还准备了一个5口交换机,还有AR芯片的USB无线网卡,和一个RL3070芯片的USB无线网卡,想为路由增加WIFI功能,结果这两个网卡没调试成功。图就不上了。
这些配件的用途:
浦科特M5P 128G SSD 做系统盘 WD 250G HDD 做下载盘 INTEL 82546GB双口网卡 一个接LAN,一个接WAN X560电源。其实任何无风扇电源都可以,这台机器的整机功耗不过30W,只不过手里有这个电源,顺手用了。
硬件安装
把两个硬盘安装在低板上固定好
放机箱里,把数据线接好,USB3.0的那个,这板不支持,塞一边闲置吧
电源接好,放进去,几乎顶到头了……
搞定看背面
硬件介绍完毕,简单介绍方案:
浦科特M5P 128G SSD 做系统盘安装Windows server2012R2系统,一开始考虑过WIN7 X64,后来和nightTOB聊天,他说server 2012对系统硬件的要求也不高,稳定性也不错,所以果断放弃WIN7 X64换用server 2012R2了。WD 250G HDD做下载盘使用。看到这儿,有网友可能会问,前篇不是ITX软路由么,m0n0wall的,到这儿怎么就变成Windows server 2012R2了? 好吧,我是用2012R2系统做宿主机,运行Vmware虚拟一个m0n0wall来做软路由家里面的所有机器通过虚拟机里的m0n0wall来上网。脱机下载的话,用Vmware虚拟一个Windows XP做下载机。
安装Windows server 2012R2系统
下载2012R2系统,用UltraISO写入U盘,U盘接ITX上,BIOS里设置U盘启动,进入安装界面
这儿,由于我们要用到GUI,选最后一个吧。
浦科特M5P 128G SSD 我分了两个区,第一个分区是60G,剩下的分一个区,WD 250G的那个下载盘,一个分区就好。系统安装在浦科特M5P的第一个分区里。
输入密码,密码强度要够,否则,会被Server 2012R2 reject
Server 2012R2安装完毕,进桌面了。
在Server 2012R2里面安装Vmware就不多说了,和一般的软件安装一样,不想修改安装路径的话,一路NEXT就好。
M0n0wall安装
在上一篇帖里,我们是把m0n0wall安装到U盘里,这次,是安装到Vmware的虚拟硬盘里,怎么安装呢?我的台机有Vmware,里面虚拟了一个XP偶尔用用,新添加一个虚拟硬盘,用虚拟机里已有的XP系统,把IMG文件写到新加的虚拟硬盘里面就好。
台机已有的虚拟机XP系统,点编辑虚拟机设置
跳出添加硬件向导,选中硬盘,点下一步。
硬盘类型,选IDE
这个我们选创建新虚拟磁盘
大小,我们设置1G,就够m0n0wall用了,注意下面,选中将虚拟磁盘存储为单个文件。点下一步。
点浏览,确认一下虚拟磁盘文件保存位置。名称我写的是m0n0wall.点完成,磁盘添加完毕。
启动虚拟机里的XP系统。把下载好的m0n0wall的IMG镜像和physdiskwrtie放在同一目录下,进命令行模式,运行physdiskwrtie,把img文件写到新添加的1G虚拟磁盘里面就好。
从上图可以看到,编号1的磁盘是我们新加的,已经写入成功。
找到m0n0wall.vmdk文件,这个就是我们安装好了m0n0wall系统了。把它复制到2012R2的机器里就好。
2012R2里Vmware的设置:
上次,我们是用D410主板全部资源跑的,系统资源占用很低,这次,我们在虚拟机里面跑,就可以按需分配资源给m0n0wall。
这次,我分配256M内存,虚拟磁盘大小为1G(其实就是上面的那个m0n0wall.vmdk文件了),虚拟机默认只有一个网卡,我们需要再添加一个,分别桥接到Intel 82546GB的两个网络接口上。
在Vmware虚拟网络编辑器里面,默认有VMnet0(桥接)、VMnet1(仅主机)、VMnet8(NET模式),我们点添加网络,再添加一个Vmnet2,设置为桥接模式。把Vmware里第一个虚拟网卡Vmnet0,桥接到Intel 82546GB网卡的第一个接口上,新添加的Vmnet2桥接到第二个接口上。
网卡桥接好了,把那个有m0n0wall系统的虚拟磁盘添加到虚拟机里。
设置完成,256M内存,1个处理器,网络适配器VMnet0桥接到82546GB 第一个接口,网络适配器Vmnet2桥接到82546GB 第二个接口。
不成功的WLAN设置
一开始用的是AR芯片的TP LINKWN422G+ m0n0wall没法驱动。
在Vmware里把WN422G+导入到虚拟机里,m0n0wall可以认出来,但是没法驱动。
换RT3070芯片的USB网卡
这个可以驱动。也认到MAC地址。 可以在GUI里面设置。
添加WLAN interfaces也没问题
设置SSID,密码什么的也正常。
完成后有点悲剧,搜索不到无线信号………… 不知道问题出在哪儿……
最后,WIFI是通过网络电视机顶盒解决的,哎
打开家庭路由
打开无线路由
设置SSID和加密方式
搞定了。
(WIFI解决方案,还可以在Windows server 2012R2使用USB的无线网卡,跑个WIFI共享精灵做共享,可以不用机顶盒的热点了。)
INTEL 82546GB在2012R2里设置
82546GB提供的两个接口,分别是桥接到m0n0wall,连接LAN和WAN的,如果在2012R2里面设置为自动获取IP,那么LAN口是可以通过DHCP获取IP并连接到INTERNET的,在2012R2里上网,会不会有冲突?我不清楚,还是专口专用好了,我只要他们做好LAN和WAN的工作,而不需要通过他们在2012R2里上网,怎么办? 简单设置一下IP就好。
把INTEL82546GB的两个接口在2012R2里面指定IP和子网掩码,把网关和DNS留空就好。
那么2012R2系统上网怎么解决? 把D410主板自带的RTL8103EL设置一下就好了嘛
这次要把网关和DNS都填写上了。还有,不要忘记把RTL8103EL接到交换机上,不然是没法联网的。
设置完成后的网络状态
以太网 和以太网2 是INTEL82546GB提供的两个接口,在2012R2里都不可访问INTERNET,以太网3是RTL8103EL的,联INTERNET没问题。
脱机下载
2012R2是服务器系统,安装下载软件做下载机用感觉不妥。用虚拟机解决吧,在VM里跑个XP系统,把WD的那个分区导入到虚拟机的XP里面,在XP里面往WD分区扔下载的东西就好。
要注意的地方: 虚拟XP的网卡也是用桥接,在VM的网络设置里面,添加一个Vmnet3,设置桥接到RTL8103EL上,这样下载机走的数据包是从RTL8103EL走的,不会响到INTEL82546GB的LAN和WAN。
添加Vmnet3
Vmnet3桥接到RealtekPCIe上。
XP虚拟机分配10G空间就好,只添加一个网卡, 光驱安装完系统后就删除,USB和声卡可以不添加。
安装XP
系统安装完毕后,把WD硬盘添加到XP里。使用物理磁盘,分区模式。
点高级,把虚拟设备节点设置一下,模式把独立和永久选中。点确定。
XP搞定了,启动,把里面的网卡再设置一下。
设置一下固定IP吧,由于网络是桥接,其它主机是把这个XP当做一台物理主机看的,设置固定IP方便管理。局域网开共享什么的都没问题。好在现在ISP不封路由了,不然我这是N台机器联网24小时联网,会被盯上的。
设置好IP,顺利上网。
在XP里面怎么下东西?不用我再说了吧
到这里有个问题,怎么控制2012R2和XP呢?系统带的远程桌面?设置太麻烦,也不太好用。 分享个很好的小工具:TeamViewer ,只要能联网,就能远程控制。使用很简单,大家自己研究吧。
压力测试:
搭个平台,用TfGen开两个各跑100M带宽,目标地址m0n0wall的LAN口,192.168.1.1。
运行了24小时,发送1T多字节。
我们来看看软路由状况:
接收了7.7亿个packets没有错误,没有Collisions。期间,其它机器上网一切正常。
压力测试时,CPU占用68%,256M内存占用了16%
整机功耗:
网络轻载
网络轻载,CPU占用大概是15%到20%,后面的CPU占用率提高是开启了TeamViewer远程桌面。
整机功耗26.26W左右
100M网络满载
CPU占用65%左右,后面的CPU占用率提高到100%是开启了TeamViewer远程桌面。
整机功耗
28.08W左右, 比轻载高了不到2W。
我们来看一下m0n0wall手册
手册不建议我们在虚拟机上跑m0n0wall,这大概是从稳定性上来说,如果宿主机出问题,虚拟机down掉的几率是很大的,所以,宿主机建议用server系统跑,同时尽量少的安装无关软件。
手册建议我们用Intel网卡,这个有条件的还是用Intel的吧,因为其它网卡的可能会提高CPU占用,尤其在高负载的情况下。
手册关于CPU的说明,这个当然是性能越高越好了。当然也要考虑一下能耗比问题,路由是24H开机的。
PCI带宽
有关PCI的带宽也查一下资料,看看我们把PCIX接口的82546GB接在D410PT的PCI接口上会不会有瓶颈 PCI接口带宽: PCI 总线位宽是 32位,总线频率 33 MHz,每时钟传输 1 组数据,它的带宽为 127.2 MB/s,即 1017.6 Mbps。 ●PCI 2.1 总线位宽是 64位,总线频率 66 MHz,每时钟传输 1 组数据,它的带宽为 508.6 MB/s,即 4068.8 Mbps 那么,82546GB支持PCI2.1么?主板的PCI插槽呢? 这个查下资料就好了。 82546GB datasheet PDF截图,
82546GB支持PCI2.3及PCI-X1.0a
Block Diagram这个看的更清楚些。
也就是说在82546GB支持64bit 66MHz D410PT的PCI版本是多少呢? 也从PDF里面找
扩展功能:一个PCI总线附加卡连接器。 没写版本…… 我们看最下面, 瞬时可用计算机技术:支持《PCI本机总线规格》2.3修订版 那就是说,网卡和主板的PCI都满足PCI2.3版本要求,所以D410PT的PCI槽,理论上带宽满足82546GB的需求,理论上没有瓶颈。
理论上没有瓶颈不代表实际上没有瓶颈,我们来实测一下, 由于没有千兆交换机,我直接用网线把82546GB的LAN口和台式机的网卡口接好,再用Tfgen跑压力测试。看看效果如何。(现在网卡大都支持自动翻转,不用交叉双绞线的,直连就好,真方便)
开两个TfGen 各跑1G 大概能跑到800Mbps,此时Ping路由丢包十分严重,台式机无法正常上网。
2012R2显示网络占用是822Mbps和台式机显示的相近。
此时ATOM410的CPU占用率是70%左右,下面测试ATOM410的CPU占用率就不看了,肯定会更低,CPU性能不是瓶颈。
关掉一个TfGen,只开一个,设置带宽1Gbps
台式机显示带宽在650Mbps左右,此时Ping路由丢包严重,上网非常卡。
只开一个TfGen,设置带宽750Mbps
台式机显示跑500Mbps左右,此时Ping路由偶尔有丢包,上网正常。
只开一个TfGen,设置带宽500Mbps
台式机显示跑320Mbps左右,此时Ping路由无丢包,上网正常。
只开一个TfGen,设置带宽400Mbps
台式机显示跑260Mbps左右,此时Ping路由无丢包,上网正常。
最后来个网络拓扑图
忙了N天,ITX主板做的软路由终于有点模样了,路由搞定,性能足够用,内网带宽跑到260Mbps左右不会丢包。WIFI也算不完美的解决了,下载就使用虚拟机里的XP系统,也没问题。
此外使用Windows Server2012R2,做个FTP,WWW什么的也可以,在m0n0wall里面做一下端口映射,就可以从外网访问了。
上一篇是单独写m0n0wall的,由于回档,图片已经丢失,没法补档了
|