之前几篇文章都在内网转悠(有兴趣的朋友可以关注作者查看作者文章) 。但是世界这么大总想去浪一浪 。网络世界里如果从内网连到外网呢 。这就要一个网关这个东西了 。先看一下下面这个命令 。
ip route add 10.168.10.0/20 via 10.173.23.1 dev eth0
熟悉的人应该知道这个命令是给路由器配置路由表的一条命令,不熟悉的人也没关系可以继续往下看 。我这里提到路由器,路由表,那网关跟路由器,路由表有啥关系呢 。先说一下路由器是一个三层的物理设备,它起到的作用就是网关的作用,所以一般我们就称一个路由器为网关,但其实路由器有好几个口,每个口连接了可以转发到的目标局域网 。路由表里定义了转发过程中到哪个局域网应该走哪个口,下一个跳转 IP 是啥 。所以这样一套设备加路由规则就满足了我们从内网连接到外网的需求 。要理解他的工作原理还得从 MAC 头和 IP 头讲起 。假设现在有一个局域网 A 内的主机 A 想访问局域网 B 内的主机 B
我们知道网络数据包的 MAC 头和 IP 头格式如下,请求包的每次转发都要有下面的内容,MAC 头中先是目标地址然后是源 MAC 地址,然后是协议类型,IP 头中版本类型一般是 Ipv4,TOS,LLS 等我们主要看源 IP 地址,和目标 IP 地址 。
那这个请求的过程应该要经历下面几个过程
【路由器基础知识及图解 路由器是什么】 1.机器 A 发送请求包之前发现目标 IP 和自己不是一个网段的,(怎么计算,就是 IP 地址和子网掩码安于与计算)然后就把请求包发个网关,请求包应该是这样
- 目标 mac 地址:路由器 A 的 mac 地址
- 源 mac 地址:机器 A 的 mac 地址
- 源 ip 地址:机器 A 的 ip 地址
- 目标 ip 地址:机器 B 的 ip 地址
- 目标 mac 地址:路由器 B 的 mac 地址
- 源 mac 地址:路由器 A 的 mac 地址
- 源 ip 地址:机器 A 的 ip 地址
- 目标 ip 地址:机器 B 的 ip 地址
- 目标 mac 地址:机器 B 的 mac 地址
- 源 mac 地址:路由器 B 的 mac 地址
- 源 ip 地址:机器 A 的 ip 地址
- 目标 IP 地址:机器 B 的 ip 地址
以上这个路由方式是不是看起来挺清晰了 。在不同局域网在不同网段的时候这种方式工作起来没得问题,但是局域网之间是互不知道的 。很有可能两个局域网内的机器的 ip 完全都是一样的 。比如上面机器 A 的 ip 地址是 192.168.1.100,机器 B 的 ip 地址也是 192.158.1.100,如果通过上面的方式发送数据,看起来完全就是自己发给自己 。
这个时候要用到一种加 NAT 路由器的路由器了,其实就是路由器上加上 NAT 的功能,NAT 的全程是 Network Address Translation,翻译过来意思是网络地址装换 。他的主要转发原理是转发的时候会把源内网 IP 装换为公有 IP,这样通过公有 IP 就可以跟外网通信 。他屏保的局域网对外网的可见,这样一个局域网最少只要一个公有 IP 跟外网通信,极大缓解了 IP 资源不足的局面 。NAT 的类型主要有三种
推荐阅读
- cdn技术详解及实现原理 cdn网络加速
- 无线路由器怎么设置密码 怎么设置路由器wifi密码
- 路由器配置详细步骤 路由器的配置方法
- 路由器使用详细介绍 路由器如何设置
- 路由器安装教程步骤图解 怎样安装路由器
- 这几点你肯定不知道 无线路由器怎么使用
- 无线路由器重新启动的方法 怎么重启路由器
- Link无线路由器设置图解 dlink路由器初始密码
- 迅捷fwr200无线路由器设置方法 迅捷无线路由器设置步骤
- 袒臂挥拳释义及出处