路由器WAN口和LAN口详解
前一阵子做路由器的联网,由于利用了Openwrt操作系统,做起来虽然方便,但是很多原理细节都被忽略了。所以这里再来老生常谈一下wan口和lan口的区别,以及他们之间的工作原理。
首先百度一下,基本知识:
熟悉网络的朋友都知道WAN是英文Wide Area Network的首字母所写,即代表广域网;而LAN则是Local Area Network的所写,即本地(或叫局域网)。那么我们不妨给路由器上的WAN口和LAN口取一个中文名称,分别是广域网端口和本地网端口。从名称中不难发现,WAN口主要用来连接外部网络,如ADSL、LAN、光纤等各种接进线路;而LAN口用来连接内部网络,主要与局域网中的交换机、集线器或PC相连。在家里使用时,路由器WAN口使用的IP地址为网络运营商所提供的静态或动态公网IP地址,而LAN口所使用的IP地址则是局域网中分配的内网IP地址。因此,每一个路由器都会拥用一个私有IP地址,这样既可让路由器充当局域网中的网关,也便于网管对路由器进行治理。宽带路由器的路由功能就体现在wan口IP地址和lan口IP地址之间的数据路由上,通常我们根据网络运营商所提供的接入方式来设置WAN口的网络参数,通常有静态IP地址、动态IP地址或PPPOE等方式,它与网络运营商的接入设备处于同一个外网。而将LAN口的IP地址则设置为本地局域网内的IP地址,通常是我们自己可以在宽带路由器上自行设定的IP地址,LAN口下所连接的计算机组成一个“本地网”,路由器的LAN口IP地址是这个网络的网关。
再详细说说数据在同一个路由器上wan口和lan口数据是如何走的。其实这个过程就是NAT的一个过程。NAT技术的出发点事为了解决IPv4地址不足的问题,提高现有IPv4地址利用率,但他们的实现机制不一样。VLSM和CIDR也是这个目的,他们是通过调整子网掩码长度。而NAT技术通过允许组织内部网络使用非全局可路由IP地址的用通过地址转换为全局可路由的IP地址来访问Internet,以降低对公网IP地址的需求。
NAT就运行在位于内外网之间的路由设备上,在内外网用户之间通信时对数据包中的地址进行转换。
主要用于三种情形:(1)无足够的公网IP地址可用时(2)重构网络IP地址部署(3)实现简单的TCP负载均衡。
我们这里用家庭网络来做举例,家庭内部网络的机器都是接lan口,通过lan口向外部网络发送数据包,首先发送一个请求到默认网关,其实就是cpu上的lan口,这里我们这么理解,一般的路由器上的网关就是指cpu上的lan口,它一般通过交换芯片扩展出4个lan口,这些lan口就是平时使用的那几个lan口。路由器在分析下面发送来的数据包后,检查数据包中的内网IP地址时会检查设备本身的NAT地址转换表。在找到相应条目后,把源地址也就是本来的内网IP地址换成wan口的IP地址,目的地址不变,发送到外网上去。外部网络接受到数据包后,会解析出数据包中的路由器wan口IP地址,将响应数据包返回到这个wan口IP地址,发送回路由器。路由器将这个返回数据包中目的地址(wan口IP)NAT转换为内网IP,最终共完成整个数据包的发送和接受。
这里其实有一个问题要深入一下,这么多lan口,你怎么区别返回数据时NAT该怎么转换?
另外路由器是怎么给这些lan口自动分配内网IP地址的?
先来回答第一个问题:
当一台小型商务企业的内部网计算机用户连接到 Internet 资源时,该用户的 TCP/IP 协议产生一个 IP 数据包,该数据包包含以下值,这些值位于 IP 和 TCP 或 UDP 标头中:(粗体内容表示受 NAT 影响的项目):
• 目标 IP 地址:Internet 资源 IP 地址
• 源 IP 地址:私有 IP 地址
• 目标端口:Internet 资源 TCP 或 UDP 端口
• 源端口: 源应用程序 TCP 或 UDP 端口
请求源主机或者其它路由器将此 IP 数据包发送给 NAT, 然后由 NAT 将向外发送的数据包的地址解析如下:
• 目标IP地址:Internet 资源 IP 地址
• 源IP 地址:ISP 分配的公用地址
• 目标端口:Internet 资源 TCP 或 UDP 端口
• 源端口:重新映射的源应用程序TCP 或 UDP 端口
NAT 将重新映射的 IP 数据包发送到 Internet 。响应计算机将向 NAT 返回一个响应。当 NAT 接收到此响应时,该数据包将包含以下地址信息:
• 目标IP 地址:ISP 分配的公用地址
• 源IP地址:Internet 资源 IP 地址
• 目标端口:重新映射的源应用程序 TCP 或 UDP 端口
• 源端口:Internet 资源的 TCP 或者 UDP 端口
当 NAT 完成映射和解析地址后,将向 Internet 客户端发送数据包,此数据包包含以下地址信息:
• 目标 IP 地址:私有 IP 地址
• 源 IP 地址:Internet 资源 IP 地址
• 目标端口:源应用程序TCP 或者 UDP 端口
• 源端口:Internet 资源 TCP 或 UDP 端口
看完这段,我的理解是根据NAT表和端口号来对不同的lan和不同的服务做区别的。NAT表应该是临时创建的,哪个lan口发出请求,NAT表就增加一项,记录私有(内网)IP,不同的服务使用端口号的映射来做区别。
那么第二个问题就要涉及DHCP了。我们再来了解下这个应用层服务。基础知识可以先百度。
DHCP是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。
从这4个名词中我们就知道DHCP的基本工作原理了,首先lan广播找到DCHP服务器,那么lan广播的这一段就是DHCP客户端。接着可能有很多DHCP服务器返回了OFFER报文进行IP地址预分配,然后DHCP客户端选择(一般是第一个收到的offer)进行确认REQUEST,DHCP服务器收到确认后,带着预先准备好的ip发送ACK报文,完成整个过程。那么这里的服务器就是我们的网关咯,也就是CPU,它是装过dhcp服务的openwrt系统,但是openwrt系统的dhcp和linux不一样,完了再慢慢研究吧。不过我想原理是差不多的。
路由器WAN口和LAN口详解的更多相关文章
- HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别?
HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别? 在解决问题前,需要连接到,路由器的WAN口和LAN口的作用不同. WAN口是对外的接口,连接广域网.当联网设备和路由器都开启了D ...
- wan口mac=lan口mac加一,wlan是lan口mac加二
(1)路由器有两个mac地址,一个用于外网(wan),一个用于内网(wlan和lan): (2)一般路由器上面或者配置路由器的网页上面只标注外网的mac地址: (3)内网的mac地址和外网mac地址一 ...
- 路由器WAN端与LAN端的区别
路由器WAN端与LAN端的区别 WAN的全称为Wide Area Network,即广域网.而LAN的全称为Local Area Network,即局域网.WAN口主要用于连接外部网络,如ADSL.D ...
- 双层路由设置,WAN口和LAN口连接的方法设置
WAN口设置方法,社路由器分别为路1 和路2 1 路2的LAN口地址改为172.16.1.1,重启 2 笔记本改成172.16.1.X,然后进入设置,在里面WAN地址设置为静态地址 192.168.1 ...
- WAN口和LAN 口有什么区别
WAN口不能够用来连接电脑. LAN(1.2.3.4)口只能够用来连接电脑. 拓展资料 路由器(Router),是连接因特网中各局域网.广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径, ...
- 无线路由器wan口和lan口ip同网段导致无法上网解决办法
环境 本地网段为192.168.0.0/24 路由器默认网段也是192.168.0.0/24 设置好路由器wan口DHCP自动获取ip以后无法上网 解决办法 把路由器是lan口地址设置为192.168 ...
- 单片机I/O口的结构的详解
1.什么是源型 漏型?什么是上拉电阻?下拉电阻?什么是 线驱动输出 集电极开路输出,推挽式输出? 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所 ...
- 通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题
1.问题假设: 在B机中IP地址与子网掩码都固定,网关是路由器的LAN口的IP地址,我们希望通过路由器来实现B机与A机之间的单向通讯问题,也就是说B可以ping通A且可以访问A提供的FTP站点. 2. ...
- OpenWrt刷机后LAN口无法连通的问题
[路由器开发板硬件固件配置] MTK双频:MT7620a + MT7612e 内存:256 MB 闪存:16 MB 固件:MTK自带SDK中的OpenWrt固件(mtksdk-openwrt-2.6. ...
随机推荐
- 富文本文件CKEDITOR增加上传图片功能(.net)
如题,本身的CKEDITOR控件并没有开启上传图片的功能, 打开图像按钮,只有图像信息和高级两个table选项卡,版本不同,显示略有差异,我的实现是有两种方法都可以添加上传功能, 第一种方法使用CKE ...
- pointer-events属性
pointer-events的风格更像JavaScript,它能够: 1.阻止用户的点击动作产生任何效果.阻止缺省鼠标指针的显示3.阻止CSS里的hover和active状态的变化触发事件4.阻止Ja ...
- ods_yx给用户分配表空间、权限用户等工作内容。
1.登陆运维审计 huang_cb.bl hac12345 2.找到81.35 root-admin nwsj*2013 3.打开oracle EMC工具,使用ods_yx用户登陆进EMC里面的 ...
- 遍历std::list过程中删除元素后继续遍历过程
std::list::erase Erase elements Removes from the list container either a single element (position) o ...
- CentOS下几种软件安装方式
1.rpmRPM RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志, 但是其原始设计理念是开放式的,现在包括OpenLin ...
- Sql Server索引(转载)
官方说法: 聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序. 聚集索引确定表中数据的物理顺序.聚集索引类似于电话簿,后者按姓氏排列数据.由于聚集索引规定数据在表中的物理存储顺序, ...
- wamp目录索引图片不显示
在wampserver安装目录下 \bin\apache\Apache2.2.21\conf\extra\httpd-autoindex.conf Alias /icons/ "c:/Ap ...
- [转] c#多线程(UI线程,控件显示更新) Invoke和BeginInvoke 区别
如果只是直接使用子线程访问UI控件,直接看内容三,如果想深入了解从内容一看起. 一.Control.Invoke和BeginInvoke方法的区别 先上总结: Control.Invoke 方法 (D ...
- java include包含指令例子
1.项目架构 2. 代码 (1)top.jsp 2.copyright.jsp 3.index.jsp 4.效果图: 5.总结 期间也碰到过很多问题,例如我刚开始不是创建的java动态项目而是java ...
- UML建模之时序图
现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG ...