overthink 发表于 2014-9-3 15:51

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

本帖最后由 overthink 于 2014-9-4 16:18 编辑

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



半年多前的帖,目前已经迁移到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,一个接WANX560电源。其实任何无风扇电源都可以,这台机器的整机功耗不过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,密码什么的也正常。


完成后有点悲剧,搜索不到无线信号…………   不知道问题出在哪儿……{:1_484:}

最后,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小时联网,会被盯上的。{:1_571:}

设置好IP,顺利上网。
在XP里面怎么下东西?不用我再说了吧{:1_443:}

到这里有个问题,怎么控制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 82546GB datasheet全文在这:http://wenku.it168.com/d_000719402.shtml D410PT的PCI版本是多少呢? http://downloadmirror.intel.com/18358/zho/D410PT_ProductGuide02_SChinese.pdf也从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的,由于回档,图片已经丢失,没法补档了{:1_435:}


overthink 发表于 2014-9-4 16:23

再补充一下,这个方案在使用中对CPU的压力是比较大的,目前已经整体迁移到ESXI虚拟化平台。

ey2h 发表于 2014-9-9 11:44

overthink 发表于 2014-9-4 16:23 static/image/common/back.gif
再补充一下,这个方案在使用中对CPU的压力是比较大的,目前已经整体迁移到ESXI虚拟化平台。 ...

ESXI怎么装这个软路由呢?装了几次装不上,求教程

overthink 发表于 2014-9-9 14:49

ey2h 发表于 2014-9-9 11:44 static/image/common/back.gif
ESXI怎么装这个软路由呢?装了几次装不上,求教程

先用ESXI虚拟一个XP,除系统盘外,再添加一块虚拟硬盘(用来安装m0n0wall大小随意),在虚拟XP里,用physdiskwrtie把IMG写到虚拟硬盘里就好,再把虚拟硬盘文件复制到m0n0wall的虚拟机里,手动添加一下就好。

overthink 发表于 2014-9-9 14:52

ey2h 发表于 2014-9-9 11:44 static/image/common/back.gif
ESXI怎么装这个软路由呢?装了几次装不上,求教程

也可以考虑用pfSense 这个有安装ISO镜像,安装上比m0n0wall的镜像方便些

ey2h 发表于 2014-9-10 13:14

overthink 发表于 2014-9-9 14:52 static/image/common/back.gif
也可以考虑用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

好多步骤啊{:7_398:}眼睛花了

李鸿飞 发表于 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了。{:1_441:}
问下主机装ESXI,挂的硬盘是什么格式,我黑群晖里的3*3T硬盘想搞进去,需要格盘吗
页: [1]
查看完整版本: [补发精华] ITX 软路由 Windows server 2012R2 + Vmware Workstation方案