本节书摘来自异步社区《智能路由器开发指南》一书中的第1章,第1.2节,作者 张永智,李章明,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.2 整体功能组件
1.2.1 整体架构
路由器的典型架构划分为管理平面、控制平面和数据转发平面,如图1-1所示。
管理平面是提供网络管理人员使用UCI、Web、SNMP和TR069等方式来管理路由器,以及执行这些管理功能所需的配置命令等,管理平面提供了控制平面正常运行所需的配置参数。
控制平面用于控制和管理所有网络协议的运行,例如ARP、DHCP、DNS及组播协议的管理和控制。
转发平面用于处理和转发不同网络接口上各种类型的数据,例如进行网络地址转换、路由、ACL等。典型路由器在数据转发平面占用最多的系统资源。转发平面应用控制平面提供的路由信息对数据报文的接收,进行网络地址转换,查找路由表,从出接口发出报文等工作。如果找不到路由,则发送ICMP不可达消息,我们可以使用route命令查看路由转发数据库。路由器的3平面划分仅是逻辑意义上的功能划分,在实际的功能模块并没有完全区分。
OpenWrt是一个基于Linux的智能路由器操作系统。用户可以自定义安装各种应用软件。OpenWrt提供各种功能插件,使用户可以自定义安装来管理路由器;默认内置了一些基础功能。其主要功能可以分为3个部分:网络功能、系统管理功能和状态监控功能。以下各节将分别详细介绍。
1.2.2 网络功能
网络功能是路由器的核心功能,如图1-2所示。“Network”标签高亮显示表示正在使用网络管理功能,下一层标签是静态路由管理。主要包含以下几个功能。
- 网络接口设置和管理。
- DHCP协议支持,家庭网内作为DHCP服务器,在广域网作为DHCP客户端。
- 主机及DNS功能,可以加快DNS响应和减少广域网DNS流量。
- 静态路由及组播路由功能。
- 便捷的网络问题诊断工具 ping、traceroute和nslookup等。
- 防火墙功能(IPv4网络地址转换、DMZ、报文过滤及防洪水攻击等)。
- IP带宽控制(QoS)。
- 设备即插即用(UPnP)。
1.2.3 系统管理
系统管理是路由器除了网络管理之外的其他管理功能,如图1-3所示。系统管理主要包含以下几个功能。
- 主机名称设置、日志服务器设置、NTP(网络时间)和密码设置等。
- 远程安全登录设置(SSH)。
- 软件管理/配置备份等,如图1-3所示。
- 进程启动管理及定时任务管理。
- 系统属性设置。如时区、时间设置及语言设置等。
1.2.4 状态监控
状态监控主要用于监控路由器的当前状态,并且只能查看当前的路由器状态。如图1-4所示,“Status”标签高亮显示表示正在使用状态监控功能,下一层标签是“Overview”,用于查看路由器的系统状态和内存占用情况。状态监控主要包含以下几个功能。
- 查看系统固件版本、运行时间、平均负载及内存占用等。
- 网络状态、DHCP用户及无线用户等。
- 防火墙状态统计、路由转发表及ARP表。
- 系统日志和内核启动日志。
- 系统进程负载状态,包括CPU使用率及内存使用率。
此外OpenWrt还为开发人员提供了一些开发支撑功能以及代码调试工具等,例如:
- 编译工具链(gcc、binutils和libc)。
- build固件工具(mksquashfs、mkcramfs)。
- 编译SDK功能,不用完全编译整个系统,即可编译单独模块。
- 可写磁盘分区,便于安装验证功能。