第6篇:网络通讯公网局域网访问(NAT、ARP、转发IP包、静态路由)

网络通讯公网局域网访问(NAT、ARP、IP包、静态路由)

    • 公网IP和私网IP
    • 路由器与交换机
    • NAT、PAT
    • 路由器如何转发IP报
    • 内网访问外网的IP转发及响应接收
    • 不同网段如何访问(静态路由)

背景:一直对为什么我们可上网?局域网如何互相访问?比较感兴趣,然后带着疑问搜索理解,得到了一些答案,当然不一定正确,欢迎指正。

公网IP和私网IP

参考:https://blog.csdn.net/qq_36412715/article/details/84500536
IPV4地址仅32位,数量有限,所以产生了子网的概念,通过子网掩码划分网段
1、公网IP唯一,不同子网之间是隔离的,所以子网IP可重复
2、子网可直接访问公网IP,公网IP不能直接访问子网IP
第6篇:网络通讯公网局域网访问(NAT、ARP、转发IP包、静态路由)_第1张图片

路由器与交换机

交换机运行在OSI模型中第二层数据链路层(MAC),直接转发数据,广播域与冲突域大
路由器运行在OSI模型中第三层数据链路层(IP),IP分组转发数据,可隔离广播域、分组冲突域
需要关注路由的NAT功能和路由功能

NAT、PAT

NAT(Network Address Translation)网络地址转换,也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术;
PAT(port-address-translation)是端口地址转换,理论上可以同时支持(65535 - 1024)= 64511个连接会话;
NAT和PAT本质上都是为了解决公网IP不足,私有IP访问公网时进行IP+端口(IP*端口数)的隐藏,另外我们可以使用静态端口映射让私网的服务可以在公网访问;
参考:https://blog.csdn.net/a1766855068/article/details/89516852

路由器如何转发IP报

参考:https://blog.csdn.net/xiliang_pan/article/details/7925110?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
其中需要了解几个概念:
DNS(Domain Name System)域名系统(服务)协议是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。
ARP(Address Resolution Protocol)地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议
接收到的IP报文内容:
SMAC(源MAC):上一路由的MAC,每次转发更新
DMAC(目标MAC):我的MAC,每次转发更新
SIP(源IP):报文发起者,一般不改变,经过NAT更改为路由器IP
DIP(目标IP):报文最终接收者,一般不改变,经过NAT更改为内网IP
这里的核心是如何知道下一跳的IP对应的MAC:
第一步:匹配目标IP在路由表确定下一跳IP,如果没有则上传至网关;
第二步:根据下一跳IP从ARP表中找到MAC(下一目标MAC),如果没有MAC则广播ARP。
个人理解:
1、如果多级路由,路由表中没有目标IP网段,是无法ping通的,意思是如果想访问第二级路由的设备,必须在当前路由表中添加IP路由信息,不存在中间某一级不知道下一跳IP的情况
2、ARP遇到路由器阻断,返回的MAC地址一定是最近的路由器MAC,不会是第二级第三级。

内网访问外网的IP转发及响应接收

1、内网访问外网必然经过NAT,我们使用的LAN-WAN实际就是NAT过程
2、公网服务器接收的请求IP来源是路由器对外IP;
3、服务器响应返回的数据目标IP也是路由器对外IP,路由器接收响应后根据地址映射,再转发给内网IP。

不同网段如何访问(静态路由)

这个与上面类似,可以通过设置静态路由,让路由器遇到目标IP时知道下一跳IP是多少;
如何只想单向访问则只设置一边的路由信息,请求及返回的响应数据也是有路由器NAT转换的过程。
参考:http://www.360doc.com/content/19/0524/19/29876786_837970107.shtml

你可能感兴趣的:(第6篇:网络通讯公网局域网访问(NAT、ARP、转发IP包、静态路由))