|
自从家里宽带升级到了200M就捣腾这捣腾那的,因为原先用的MikroTik(ROS系统)路由器是个百兆的,虽然能够使用单线4拨,但速度也上不了100M了。于是破解光猫超管密码,使用光猫直接路由,下行230M上行40M左右速度挺满意的。毕竟相比去年家里30M带宽多拨后达到98M强太多了。用了没过多久抑制不住一颗蠢蠢欲动的心,想当年30M多拨能达到接近100M,要是200M多拨,这还不逆天!于是网上目测了几款千兆路由,首选的还是MikroTik的路由,毕竟用了多年,对功能和性能了如指掌。备选的是D525/N2600的软路由,J1900的软路由主板太新可玩性差暂不考虑。还有就是新路由3(Newifi 3),因为之前玩过Newifi Y1,刷breed和潘多拉,单线4拨,给爸妈用了。功能方面的话不是很强,性能和稳定性还行,内存大、不到100元价格,性价比极高。: C0 x5 c& V: b) W F, w4 h
2 ^. ~( y! R( g0 j; M5 o/ Q' _5 M
还有就是自己组装一台软路由的想法,网上目测主板、电源、千兆网卡等。最初的想法是弄一个D2550的主板,主板带PCIE 1X槽,可以扩充多口的千兆网卡,链路聚合啥的。而且听说D2550是D525的升级版,比之前观望的D252/N2600软路由都会强不少,并且二手主板价格相当的便宜。直到一块华擎的APU主板出现在我的面前,通体漆黑上一抹蓝凸显雍容华贵惊艳四方的一块主板。这主板拥有PCIE 16X扩展槽,9路音频输出,SPDIF输出,USB3.0。更主要的是D2550主板只有两个SATA,这主板拥有了4个SATA,更适合装在NAS机箱。并且使用的是台式机的大内存条,稳定性和速度(可能一样,但作者持怀疑态度)应该更高于小内存条。店家宣称支持自由超频(当时没仔细研究这是啥,以为可以随便超频的意思,结果入了坑),更重要的是什么还支持虚拟化(给万一搞不了CentOS,还能虚拟话成ROS、iKuai、LEDE之类的留了退路,单单装这些路由系统的话,个人感觉是不怎么值的可玩性太低)) c2 C2 [+ _* V" l
O; |5 V' v' W, l, } 经过漫长的几个星期的纠结,茶饭不思,日渐消瘦,哎。到处借钱骗红包,终于攒足了钱,买下了机箱和E350主板。如下图,花了一小时组装好,装系统开机。不得不说这机箱的硬盘架,只能支持螺丝屁股小于6mm的沉孔螺丝,由于没有这种规格的螺丝,硬盘没法固定在硬盘架上,插上主机的时候也插不紧,差点以为主板是坏的,因为开机就只会卡在BIOS的界面。重新插了硬盘之后正常使用,主板上面的CPU的风扇插错的通道,插在机箱风扇上,没法自动控制,实在是声音大找了一圈终于找到了一个没有字的插针。
: c3 u& @- N M2 N4 X6 I/ z
8 r. f* ]$ F2 T8 a8 c6 q# v# o
! o3 }+ s+ R' v& }$ _' R 5 B$ d( ~: }+ o! c
接下来进入正题,如何进行拨号上网?yum install –y rp-pppoe先安装Linux通用拨号程序,几乎所有的Linux都是用这个拨号程序的。安装好rp-pppoe之后,可以使用pppoe-setup进行账号密码和DNS设置,这边怎么设置的省略,按照提示输入就行了。完成之后会保存成配置文件/etc/sysconfig/network-script/ifcfg-ppp0,可以简单的使用ifup ppp0命令来直接进行拨号连接。下面这张简易拓扑图(伪拓扑图)大致的讲解下结构。1 ~) _! }5 L; k2 J8 t7 A5 b9 S- Y
; |2 I+ h: t+ _6 p 拨号后设置nat转发,就能实现简易路由,代码如下
+ ^: L9 `: k/ e6 r8 g echo 1 > /proc/sys/net/ipv4/ip_forward+ L% L7 d9 A r3 _' j% V, Y
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
, X+ {# L. {$ \: H2 H 实测网速下行大概在190M左右,上行在34M左右,网速有点缩水。查看网卡的工作模式确实是在1000M模式的,只不过网卡驱动是RTL8169的,网上搜索了下,有很多人反应,8169的网卡驱动在RTL8111的网卡上存在不兼容无法使用的问题。于是下载驱动源码(RTL8168)、下载内核头文件、编译器,重新编译内核,装上驱动后问题依旧。猜测可能螃蟹厂的RTL 8111E网卡不行(网上说E和F是这个系列里最好的,G、H啥的都是阉割的),于是作者又买了块Intel 82576的4口网卡,挺贵的艹艹艹,舍不得孩子套不着狼。到手后装上立马测试,还是达不到预期的速度,top命令查看pppoe的资源情况,单个进程的占用CPU比较高,能达到98左右。但总体CPU占用情况12%,并不很高。然后又测试了网卡的转发性能,并没有问题,可以排除掉南北桥性能问题。那剩下的唯一可能就是APU上的pppoe程序没有优化,于是放弃yum上安装的成品rp-pppoe 3.10二进制包,从网上下载3.13的源码自行编译安装,性能稍微有些提升。先将就着用吧,万一多拨之后能比较大的提升呢(然并软)。/ c; U" S' {6 {' y$ H% O- o
6 \" ~ q n7 _( j3 e5 u$ j/ R
rp-pppoe存在一个流弊的BUG,就是单网卡(同MAC地址)多播,这个特性可以突破我这个地区4拨(在MikroTik上使用VRRP最多只能4拨)的限制,甚至100拨都不是问题。本文下面内容就是讲4拨和10拨下的测试。rp-pppoe多拨设置,命令如下1 a! ~) R: y: V8 A
pppoe-content /etc/sysconfig/network-script/ifcfg-ppp0) h- l. S, z/ I1 k c7 |4 o8 i
多拨之后别的电脑可能就无法再拨号了
4 u( Y7 ~" b: E5 I& C 需要几拨就执行几次,然后设置iproute2的负载均衡。这貌似是个新特性,相当的不错,配置起来so easy。妈妈再也不用担心我玩游戏卡(大雾)。下面一句话搞定2 F5 f: L* n( B } N. T
ip route replace default equalize nexthop dev ppp0 weight 1 nexthop dev ppp1 weight 1) H2 f2 n; O( z. F2 N0 s; e
有几路就连续写几个nexthop,weight 1就是权重一样,平均分配带宽。最后我们要设置nat转发,和上面的差不多,只不过也是有几拨就要设置几个转发。
) ]% p% ~3 U" X4 ]5 k iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE3 n! h: L. A+ q! Q' E& g
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE
8 }) \/ a' ] w# f& G/ p …) {8 W( s- h* E1 [# J# U
完成后简易的路由器就成了,不过目前只有路由功能,DHCP和DNS功能我们稍后再加上。我已经迫不及待的想要来跑个分了。下面是4拨的情况下相关数据,某信的官方测试客户端不支持多线程,所以使用这个网站进行测试。测试结果应该算是比较准的吧,实际情况可能比测试更高些。签约带宽上行30M,测试下来114M的上行可以看出,应该是配置成功了。测试过程中用sar命令监控各路拨号的负载情况如下图。5 J) P. X* R4 l' d
; l; f/ C: p" |* t * \' Z4 ^1 B; G% M: D( p6 c' m
8 M. v4 C% O6 V$ K3 u7 T8 s
把剩下的事做完,关闭掉光猫自带的DHCP,并自建DHCP和DNS服务器。一句话安装dnsmasq,公司的DNS服务器我就用这个,400多人使用,做了2000条缓存,性能和可靠性杠杠的。为手艺人点赞,不对,为这软件和作者点赞。" p% A( H6 R5 [
+ E+ o5 l! V% D5 K r2 d
yum install –y dnsmasq
) Y' d8 c$ `# ^0 q. P vim /etc/dnsmasq.conf 编辑配置文件,我的配置如下图
* \* s4 D) w( |. U( d8 V+ y( m
! R: h# G; o* y# c) ?7 T /etc/init.d/dnsmasq start
( }$ ]. t4 P5 N 完成之后,重启自己电脑网卡就能从配置的DHCP服务器上获取到信息,并且UBNT的无线AP也能正常的使用了。实测跑分是差了点,但两台小米电视看4K毫无压力。Intel这网卡支持多队列(mq),听说性能是螃蟹厂的网卡所不能比拟的。以作者人品担保,带机500台肯定是没有问题的(瞎说)。& f# |8 B8 L ]/ c! i* J
: p9 m! P4 U% L5 X5 {3 z, ?
! r# k5 P+ W/ j! Ceth0-3 intel 网卡支持mq,eth4 rtl8111e 网卡不支持
8 T% S& G- o: Q; r: y+ U0 } H* @0 c
" K& ?# t* @5 Z# e8 i9 v; x+ B8 n 最终的所有配置是这样的
6 Z% @" m: Q4 M6 u1 t1 n: q6 R
( h! a1 L: F( _8 I3 f4 m4 H- S
$ w8 q/ j- S+ r. X3 v 安装transmission下两部片,草鸡快。做种上传更是达到了惊人的144M。不知什么时候家里的宽带某信给恢复了公网IP,真是业界良心啊。拥有10个公网IIP就是一个字爽。
6 c1 c) h( b* R0 F2 h8 t( N1 x
" C+ f2 g; `) n/ B
" j- V5 V6 S3 o$ a0 R( I" E# c" { 大功告成,再为我的小路由器安装个花生壳。方便上班的时候投递种子(大雾),我说我只是为了远程管理,你们信吗。
$ O& W- ~: e5 t" P2 d. }
6 d' k2 A& t+ n+ p3 @ 总结,这个廉价的方案比较适合单网卡的NAS来做软路由,树莓派也可以,系统不一样,方法同理。性能能不能提升还得看人品,并且这是最简单的配置方法,正规的配置会用到nth来负载均衡,这里没有介绍可以看下面参考文献(因为太复杂我也懒得调)。其他NAS的功能无非是网络共享之类的,可以装SAMBA服务,视频转流媒体转换可以用FFMPEG+NGINX来实现HLS,部署起来也不是很难的。9 @: ]9 |) G1 h! U$ i2 i7 \
- R* B0 D7 r" {" J5 _3 C参考文献# C" Z2 n, B. T
https://blog.csdn.net/com_stu_zhang/article/details/7815775
, j, |0 d: K6 Rhttps://blog.csdn.net/l1902090/article/details/25780231
( `# h" q7 \$ o1 @+ C( E; h1 k% Z4 khttps://blog.csdn.net/wdscq1234/article/details/52643637
2 L+ g. a% N6 s8 N N" ihttps://blog.csdn.net/bupt_tinyfisher/article/details/10255393% d5 G: a" Z2 H6 E. [
|
|