防火墙(Firewall) 和 网络接口
路由器的目标是将数据包流从传入的网络接口转发到传出的网络接口。防火墙规则为允许跨接口转发的流量添加了另一层细致控制——同时额外规定了哪些数据包允许被输入到路由器本身或从路由器本身输出。本节将讨论防火墙代码与网络接口之间的关系。
所有路由器的核心都是一个具有多个接口端口的硬件交换机。当数据包进入交换机的某个端口时,硬件交换机会匹配数据包中的固定字段,并将其转发至发送该数据包的输出端口。
交换机通常利用数据包中的第二层目标MAC地址进行交换操作。每个端口都维护着一个可访问(连接)该端口的站点MAC地址缓存。MAC缓存中的条目会逐渐过期,因此如果再次使用必须重新发现。具有已知目标MAC地址的第二层帧会被交换到目标局域网端口。如果交换机缓存中未找到该MAC地址,则会向所有局域网端口泛洪广播数据包(例如ARP请求)以发现哪个端口可以访问目标MAC地址。
OpenWrt路由器有两种类型的局域网接口:有线以太网(IEEE802.3或RFC894以太网II,其中以太网II最为常见)和无线以太网(IEEE802.11)。
每个有线局域网端口直接映射到单个交换机端口。通常有一个连接至无线射频芯片(2.4GHz/5GHz)的802.11 Wi-Fi端口,每个芯片支持处理一种或多种IEEE802.11标准协议(如802.11a、802.11n)及无线网络的辅助功能(如802.11s网状网络)。这些Wi-Fi芯片会将802.11信号转换为规范的以太网帧,并注入交换机端口进行路由。所有连接至802.11接入点的Wi-Fi站点共享同一射频芯片和交换机端口。
桥接接口br-lan通过将无线接口与有线端口结合,创建单一逻辑网络。
当需要将WLAN与有线以太网端口结合使用时,应使用桥接。否则需将端口划分至不同VLAN中。
防火墙区域
OpenWrt路由器的防火墙能够将接口归类为区域
(zones),以更符合逻辑地过滤流量。一个区域可配置为任意接口,但通常至少包含两个区域:lan
用于局域网接口,wan
用于广域网接口。
这通过在概念上对接口进行分组来简化防火墙规则逻辑:
- 源自区域的数据包的规则必须在区域的一个接口上进入路由器,
- 转发到区域的数据包的规则必须在区域的一个接口上退出路由器。
zone 概念对于仅包含单一“br-lan”接口和单一“wan”接口的简单SOHO路由器并无显著简化作用。此时每个接口与区域呈一对一映射。
Firewall 和 VLANs
关于VLAN的配置与使用,请参阅以下文档:
将交换机划分为多个VLAN可进一步优化端口管理。建议每个VLAN与一个区域建立一对一映射关系。采用VLAN架构的优势在于,数据包会携带VLAN ID标签,从而消除路由/防火墙决策中的歧义。