PCEVA,PC绝对领域,探寻真正的电脑知识
开启左侧

[补发精华] ITX 软路由 Windows server 2012R2 + Vmware Workstation方案

[复制链接]
overthink 发表于 2014-9-3 15:51 | 显示全部楼层 |阅读模式
点击数:19992|回复数:14
本帖最后由 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带宽,目标地址m0n0wallLAN口,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  
82546GB datasheet全文在这:http://wenku.it168.com/d_000719402.shtml
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,做个FTPWWW什么的也可以,在m0n0wall里面做一下端口映射,就可以从外网访问了。




上一篇是单独写m0n0wall的,由于回档,图片已经丢失,没法补档了


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

牛逼。第一遍没完全看懂,正在细看.....  发表于 2015-1-3 22:27
overthink  楼主| 发表于 2014-9-4 16:23 | 显示全部楼层
再补充一下,这个方案在使用中对CPU的压力是比较大的,目前已经整体迁移到ESXI虚拟化平台。
ey2h 发表于 2014-9-9 11:44 | 显示全部楼层
overthink 发表于 2014-9-4 16:23
再补充一下,这个方案在使用中对CPU的压力是比较大的,目前已经整体迁移到ESXI虚拟化平台。 ...

ESXI怎么装这个软路由呢?装了几次装不上,求教程
overthink  楼主| 发表于 2014-9-9 14:49 | 显示全部楼层
ey2h 发表于 2014-9-9 11:44
ESXI怎么装这个软路由呢?装了几次装不上,求教程

先用ESXI虚拟一个XP,除系统盘外,再添加一块虚拟硬盘(用来安装m0n0wall大小随意),在虚拟XP里,用physdiskwrtie把IMG写到虚拟硬盘里就好,再把虚拟硬盘文件复制到m0n0wall的虚拟机里,手动添加一下就好。
overthink  楼主| 发表于 2014-9-9 14:52 | 显示全部楼层
ey2h 发表于 2014-9-9 11:44
ESXI怎么装这个软路由呢?装了几次装不上,求教程

也可以考虑用pfSense 这个有安装ISO镜像,安装上比m0n0wall的镜像方便些
ey2h 发表于 2014-9-10 13:14 | 显示全部楼层
overthink 发表于 2014-9-9 14:52
也可以考虑用pfSense 这个有安装ISO镜像,安装上比m0n0wall的镜像方便些

谢谢,下一个试试看。
pphiuyt 发表于 2014-12-31 18:05 | 显示全部楼层
看到 DNS 我就笑了  那么熟悉
hzqim 发表于 2015-1-6 09:56 | 显示全部楼层
谢谢楼主的教程,DIY硬件防火墙,真是开了眼界了。

有疑问:
1、家庭宽带用 openwrt 路由,20M 对等,玩 PT 下载,有没有必要再弄这个防火墙?
2、Linux 下有没有类似的方案?
谢谢解答。
overthink  楼主| 发表于 2015-1-7 10:17 | 显示全部楼层
本帖最后由 overthink 于 2015-1-7 10:18 编辑
hzqim 发表于 2015-1-6 09:56
谢谢楼主的教程,DIY硬件防火墙,真是开了眼界了。

有疑问:

1、看需求,这个优点是在QOS方面。可以根据不同的应用,设定不同的优先级。
2、Linux下也有,MikroTik Router OS 不过这个软路由是收费的。

有关ROS的简单使用及资料,可以参考
http://bbs.pceva.com.cn/thread-100109-1-1.html
素描雨夜 发表于 2015-1-13 17:07 | 显示全部楼层
好多步骤啊眼睛花了
李鸿飞 发表于 2015-1-18 02:05 | 显示全部楼层
DNS,我这是202.102.224.68……
小水管的春天 发表于 2015-1-25 23:14 | 显示全部楼层
我2012开VM10运行ROS3.3,怎么才能开机直接启动ROS。网上找了好久没都不行,楼主怎么开机启动软路由的
overthink  楼主| 发表于 2015-1-26 09:12 | 显示全部楼层
小水管的春天 发表于 2015-1-25 23:14
我2012开VM10运行ROS3.3,怎么才能开机直接启动ROS。网上找了好久没都不行,楼主怎么开机启动软路由的 ...

我迁移到ESXi了,那个设置开机启动什么的很方便。

你看一下这个办法成不成
http://blog.sina.com.cn/s/blog_6a8dae300101nsej.html
小水管的春天 发表于 2015-2-3 22:24 | 显示全部楼层
overthink 发表于 2015-1-26 09:12
我迁移到ESXi了,那个设置开机启动什么的很方便。

你看一下这个办法成不成

用你发的链接 ,改了下可以开机启动ROS了。  
问下主机装ESXI,挂的硬盘是什么格式,我黑群晖里的3*3T硬盘想搞进去,需要格盘吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部