Day_14 Router/Switch/Gateway/NAT

前面几天连续介绍有线与无线的应用,多数家中或单位的网路就都从这些应用做拓展。让透天每层楼都有网路、wifi信号、MOD等等。或在办公室中布建网路,共用NAS、网路印表机、流量控管、网路隔离等等。
但架构可以由简单到十分复杂满足不同的使用需求,无法一次讲述完毕,而且有太多我没有碰过的架构与实作,仅能以我有限经验,在这边做个小结与起个大纲,後续再扩展与补完。
在opwnert的使用手册中载明系统可以扮演的角色:

  1. Client/客户端
    • 让openwrt设备连接到现有网路并提供服务。如扩充乙太网路孔(switch)、无线网路(提供wifi讯号或无线桥接)
    • linux设备的服务,如成为文件储存交换的NAS
    • 透过安装套件之後成为提供各种服务的服务器
  2. Router/路由器
    • Openwrt预设的路由模式中,其成为区域网路(LAN端口)设备与另一个网路WAN端口(通常是接上充当闸道器功能的网路数据机)或其他网域间的设备
    • 路由(routing)就是通过互联的网路把资讯从源位址传输到目的位址的活动。路由发生在OSI网路参考模型中的第三层即网路层。

  3. Gateway/闸道器
    • openwrt当成gateway设备也可像路由一样的功能,但与路由模式不同的地方是需要外接集成数据机(如GSM/LTE分享器)或在WAN端口连接外部数据机以协议(如ppp/pppoe/pppoa/3g等)连接上网际网路
    • 在现代网路术语中,闸道器(gateway)与路由器(router)的定义不同。闸道器(gateway)能在不同协定间移动资料,而路由器(router)是在不同网路间移动资料,相当於传统所说的IP闸道器(IP gateway)。

目前在这边实作的部分都已IPv4为例,在router/gateway模式下会碰到"双重网路位址转换Double NAT"问题,好在openwrt多能以预设值克服。下面是一些常见布置与示意:

Routers / gateways

NAT 功能与用法 示意
Single OpenWrt作为路由器,并将网际网路ISP设备配置为数据桥接 用户端 ↔ OpenWrt 路由器(带NAT) ↔ ISP网桥(无NAT)↔ 网际网路
Single OpenWrt作为路由器,OpenWrt路由器在ISP路由器中设置成“exposed host” 用户端 ↔ OpenWrt路由器(带NAT) ↔ ISP路由(带NAT)+“exposed host” ↔ 网际网路
double OpenWrt作为路由器运作在预设有双NAT的级联路由器中 用户端 ↔ OpenWrt路由器(带NAT) ↔ ISP路由器(带NAT) ↔ 网际网路
double OpenWrt作为双NAT配置的路由器,在ISP端使用Dualstack Lite 用户端 ↔ OpenWrt路由器(带NAT) ↔ ISP路由器(带DS-Lite NAT) ↔ 网际网路
Single OpenWrt作为禁用NAT的路由器,两个路由器中附加路由规则 用户端 ↔ OpenWrt路由器(无NAT) ↔ 路由规则 ↔ ISP路由器(带NAT) ↔ 网际网路
0 OpenWrt作为仅有IPv6配置的路由器 + ISP路由器 用户端 ↔ OpenWrt路由器(无NAT) ↔ ISP路由器(无NAT) ↔ 网际网路
Single OpenWrt作为闸道器,使用OpenWrt设备内置或外部数据机 用户端 ↔ OpenWrt作为闸道器(带NAT) ↔ 内置/外部数据机(无NAT)↔ 网际网路

Switches and client APs

NAT 功能与用法 示意
Single OpenWrt 作为无线中继(Wi-Fi <-> Wi-Fi 交换) 客户端 ↔ OpenWrt交换机(无NAT) ↔ ISP 路由器(NAT) ↔ 网际网路
Single OpenWrt 作为无线接入点(Wi-Fi <-> 有线交换机) 客户端 ↔ OpenWrt交换机(无NAT) ↔ ISP 路由器(NAT) ↔ 网际网路
Single OpenWrt 作为有线交换机(有线 <-> 有线交换机) 客户端 ↔ OpenWrt交换机(无NAT) ↔ ISP 路由器(NAT) ↔ 网际网路

Troubleshooting

老实说非科班在看这段有点痛苦,还不知道理解正不正确。因为没有实务可以操作,导致更加雾里看花,希望大家帮忙指出错误的地方或可以讲述更浅白的方法。

Ref.


<<:  Day 12:AWS是什麽?30天从动漫/影视作品看AWS服务应用 -《JoJo的奇妙冒险》第三季 part 2

>>:  爬虫怎麽爬 从零开始的爬虫自学 DAY12 python列表进阶篇

离职倒数25天:我想要在我的社交平台上分享我的创作,而不只是生活

朋友问我辞职後,最想做的第一件事是什麽,我居然回答坚持每天写日记。从肺炎开始用电脑写日记写了一年多了...

Day00:Setting up Environment(环境设定)

全文同步於个人 Docusaurus Blog Foreword 过往前後端沟通,需要仰赖 cli...

DAY4.看了两个YT的影片

今天到嘉义开店 从高雄坐火车到嘉义 在坐火车的一个小时 把外国教python flask的影片看完 ...

Day08:Swift 基础语法—Loop

今天学习 Swift 的三种循环方式。 For-in 基本语法如下: for index in 0....

第8天~

上偏加入字串空的 String all =""; 这里多了餐选的,饮料选的,全部...