.. _pi_router_startup:
==================
树莓派路由器起步
==================
`seeedstudio `_ 围绕嵌入式IoT和AI推出了很多相关技术以及硬件。其中,采用树莓派制作路由器,给我启发,我准备调研并实践采用树莓派构建路由器和交换机,实现复杂的网络架构。
路由器功能
=============
作为小型局域网的网关路由器,通常具备以下功能:
- 提供广域网(WAN)路由访问
- 透明代理翻墙 :ref:`squid` / :ref:`privoxy`
- 反向代理 :ref:`squid` / :ref:`nginx`
- 安全控制: 审计、日志、限制、广告过滤
- 网络QoS
- VPN
- 本地局域网服务
- DHCP
- :ref:`dns`
- :ref:`ntp`
- 下载服务: BT下载
- NAS: 本地数据备份归档
- 私有云盘服务
- 打印服务
- 视频服务 :ref:`kodi`
采用树莓派来实现网络设备:
- 低功耗
- 通用设备可运行不同Linux版本进行定制
硬件设备
==========
:ref:`pi_4` 是通用SBC设备,但是由于只具备1个千兆网口,定制性较弱。 `seeedstudio `_ 提供基于 :ref:`pi_cm4` 的主板(双网口)。
硬件设想
----------
实际上树莓派作为最流行的SBC,配套硬件以及社区软件非常丰富,这是树莓派最大的优势。不过,对于专用路由和交换设备,树莓派也有比较大的局限:
- 缺乏多网口规格硬件: 在淘宝上能够找到 4~8 网口的基于Intel低端CPU的x86主板或一体机,价格非常低廉,可以用来构建开源交换机或路由器
- 只有 :ref:`pi_cm4` 可以通过扩展主板支持 PCIe 存储,但是加上扩展主板成本相对较高,接近于Intel多网口一体机
- :ref:`nanopi` 作为针对路由功能定制的多网口ARM主机,非常小巧且功能完备(R5S支持 :ref:`nvme` ),比叠加主板的 :ref:`pi_cm4` 更为经济
.. note::
不过,由于我已经购买了大量树莓派设备,所以我的基础架构依然会围绕树莓派来实现。
对于上述树莓派的不足,我准备从以下几个方面来弥补:
- 通过USB接口以太网卡来扩展树莓派的网络接口: 至少可以增加2个网口,加上 :ref:`pi_4` 自带网口,可以实现一个非常小型的交换网络
- 采购 :ref:`pi_cm4` 加上扩展主板来构建交换设备,并且可以增加PCIe存储: 目前尚未找到能够添加超过2个以上网口的扩展板,常见的只有扩展2个千兆网口扩展板,不太理想
参考
=======
- `How to Build a Raspberry Pi Router – Step by Step Tutorial `_