OpenWrt是一个基于Cisco源码的第三方路由器固件。
OpenWrt功能:
自定义功能
参考链接:https://zhuanlan.zhihu.com/p/293003353
OpenWrt可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
OpenWrt的特点:
- 可扩展性好,可在线安装所需功能,功能包丰富
- 是一台完整的Linux工作站,文件系统可读可写,便于开发者学习和实践
一、搭建编译环境
二、下载OpenWrt源码并编译
- 下载速度太慢可以从git克隆
OpenWrt目录结构:
上图是openwrt目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录。
三、将OpenWrt刷入路由器
要在路由器上使用OpenWrt,首先要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:
- Web上传固件更新
- PFTP上传固件更新
- 编程器写入固件
四、开始使用OpenWrt
要对OpenWrt进行配置,一般有两条途径:
- SSH登录通过命令行控制
- Web登录通过Web界面设置
参考链接:https://blog.csdn.net/p1279030826/article/details/108473779
OpenWrt的配置很丰富,几乎可以完成任何网络结构。
OpenWrt网络结构
参考链接:https://www.cnblogs.com/happygirl-zjj/p/6008365.html
上图是一个支持OpenWrt的路由器网络结构:这个路由器内部交换机有6个口,其中1个WAN口、4个LAN口、Port5默认连接内部网卡eth0,连接Wifi的无线网卡接eth1,eth2保留。
OpenWrt依靠VLAN和Bridging可以实现灵活性。
VLAN
一般路由器为节约成本只有一张网卡(我的理解是以太网控制芯片),但如何接入多个网络呢?(路由器按常理至少要两张网卡吧),这就是VLAN的功劳
VLAN(Virtual Local Area Network)是虚拟局域网缩写,是把局域网中的同一工作组的主机连在一起,隔绝不同的子网(在一个或多个交换机上),这种局限增强了工作组间的保密性,也减少了全面广播的副作用。用了VLAN也就把连接子网用的路由器给省了,省钱而且效率还很高。
VLAN需要路由器内置的交换机支持(一般都支持),最多可以划分4096个VLAN。一般使用只划分两个VLAN:WAN和LAN,分别对应外网和内网。如果是纯粹的VLAN,则WAN和LAN之间是隔离的,互相不能通信,但在自己的VLAN里可以自由通信。
Trunking
用一张网卡怎么连接两个网络呢?上图中Port5一边连接路由器,一边连接网卡eth0,它的作用就是连接vlan0和vlan1。这就是采用VLAN的Trunking技术,在Trunk Port(port5)经过的以太网帧上打标签(Tagging)用以区分来自那个VLAN,然后路由器用网卡eth0接收并处理标签从而处理(在CPU中处理),这就是所谓的单臂路由器,很形象啊:)。
Bridging
网桥说穿了就是交换机,它就是用软件模拟以太网交换机,连接多个以太网网卡(虚拟的或物理的)分享同一个IP子网。在OpenWrt中,网桥主要用来连接无线WIFI网络和LAN,组成一个统一的内部局域网。
一张示意图VLAN、Trunking和Bridging