hdqqq

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  35 随笔 :: 0 文章 :: 104 评论 :: 0 Trackbacks
自己组装路由器
    很长时间没有更新博客了。这段时间,很多智能化的新产品层出不穷,穿戴设
备,智能路由器啥的,可以说,移动互联的时代正在到来。所以,本着人生苦短,
及时折腾的原则,投身其中,也买了几块板子开始折腾。
先上张图:
个人mini服务器。
    目前,我们的长城越来越强大,google可以算是歇菜了,现在查资料,基本上
靠运气。写个博客、围脖啥的,稍微一不小心,就碰到敏感词,都没啥积极性了,
去年,弄了块pcduino的开发板,征用了儿子几块乐高积木,自己组了个服务器,
上面博客、文件共享、代码管理能带的都带上。空闲的时候,记记日记,贴贴照片,
,顺带文件备份啥的,自娱自乐。当然,光靠开发板自带的存储空间是不够的,需
要附加存储。考虑电源的功率问题和静音要求,弄了个ssd加移动硬盘盒。现在跑
得不错,已经运行了79天。板子买的较早,加上ssd的成本,在800 RMB 左右。
第二张图:
    去年开始,新的,基于ARM芯片可以玩的板子越来越多了。树莓就不说了,
cubieboard、swift board、beaglebone等,性能、接口等都比以前好。所以,又
入手了一块。 banana pi,1G内存,关键是带一个千兆网口,可以配合使用的系统
也多。继续折腾。再配块便宜点的64G ssd,总价格在500 RMB 左右。
    相对来说,用这个开发板组个无线路由器还是很简单的。找个支持的无线网卡,
NAT,配上相关的软件,很容易实现,网上也有教程。
    但是路由器,如果仅仅实现NAT转发上网,qos等功能,其实还算是很简单的。
相比软路由,上网行为管理,应用层协议分析,协议过滤等功能,还是缺很多的。
    我想要的功能,就是记录每个人上网,什么时候,都上了些什么网,做分析和
统计。这个功能,在目前市面上100多的路由器中,因为硬件成本的关系,基本上
都是没有的。尽管刷openwrt系统的路由,如果配上外接存储,能把日志存下来,
但因为内存有限,效果不好。
    但是,如果用linux做软路由,内存足够的情况下,可以通过iptable+squid的
方式实现。现在的开发板,内存可以到1G,芯片都是双核1.6G,性能已经足够强大。
所以,本次折腾的目标就是用开发板,实现透明代理,用以记录所有人员的上网日
志。
一个网口,配合LINUX虚拟网卡,也可以实现路由功能。
操作系统:
Lubuntu for arm,写到SD卡上启动。
接下来介绍步骤:
1、LINUX启动数据包转发。
2、设置网卡eth0的ip地址,网关等。
3、设置虚拟网卡,作为内网网段。
   ifconfig eh0:0 192.168.0.1 netmask 255.255.255.0
   虚拟网卡不用设网关。
4、安装和设置dnsmasq,启动dns cache和dhcp服务
5、安装squid3,设置访问规则和其他参数,作为透明代理使用
   http_port 192.168.0.1:3128 transparent
   考虑日志存在SD卡上较慢,可以把日志存在内存中。
6、设置iptabes,启动NAT和端口转发
   iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
   iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j
REDIRECT --to-ports 3128
其他说明:
    因为是一个网口做路由,所以需要一个HUB或交换机,连接上行网络和内网。
吞吐量测试:
使用一台NAS模拟外网机器,计算机模拟内网,都接千兆交换机。拷贝文件测试。
4G数据文件,路由工作在千兆双工模式
下行:
20MB/s 左右,系统负载峰值0.09左右
上行:
16.5MB/s 左右,系统负载峰值0.26左右。
日志分析:
    squid的日志,有现成工具进行分析。sarg,安装后,指定日志文件和输出路
径就可以了。
后记:
    因为功率和静音的需要,硬盘选了低端的64G SSD,190左右。对比前段时间比
较火的小米路由,缺双频的无线WIFI。但内存相对来说高一点,加上软件丰富,可
玩性更高一些。
posted on 2014-09-02 20:37 hdqqq 阅读(3174) 评论(0)  编辑 收藏 引用 所属分类: 其他文章

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理