网络是怎样连接的-路由器的附加功能

3.4 路由器的附加功能


 

3.4.1 通过地址转换有效利用 IP 地址

地址转换功能出现的背景

地址就是用来识别每一台设备的标志,因此每台设备都应该有一个唯一不重复的地址。

进入 20 世纪 90 年代之后,接入互联网的设备数量也快速增长,过不了多久,可分配的地址就用光了。

如果不能保证每台设备有唯一不重复的地址,就会从根本上影响网络包的传输,这是一个非常严重的问题。

内网使用私有地址

每个公司的网络是相互独立的,公司内部设备不需要分配固定地址。

于时规定某些地址是用于内网的,这些地址叫作私有地址,而原来的固定地址则叫作公有地址。

私有地址的规则其实并不复杂,在内网中可用作私有地址的范围仅限以下这些。

10.0.0.0 ~ 10.255.255.255

172.16.0.0 ~ 172.31.255.255

192.168.0.0 ~ 192.168.255.255

私有地址本身并没有什么特别的结构,只是将公有地址中没分配的一部分拿出来规定只能在内网使用。

这个范围中的地址和其他公司重复也没关系,任何人都可以自由使用。

如果在公司内部地址有重复就无法传输网络包了,因此必须避免在内网中出现重复的地址。

使用地址转换将内外网分开

公司内网并不是完全独立的,而是需要通过互联网和其他很多公司相连接。

所以当内网和互联网之间需要传输包的时候,问题就出现了。如果很多地方都出现相同的地址,包就无法正确传输了。

当公司内网和互联网连接的时候,需要公司内网分成两个部分,一部分是对互联网开放的服务器,另一部分是公司内部设备。

其中对互联网开放的部分分配公有地址,可以和互联网直接进行通信,内网部分则分配私有地址。

内网中的设备不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫地址转换。


 

3.4.2 地址转换的基本原理

地址转换的基本原理是在转发网络包时对 IP 头部中的 IP 地址和端口号进行改写。

TCP的包转发到互联网时IP地址被路由器改写

假设现在要访问Web 服务器,TCP 连接操作的第一个包被转发到互联网时,会像图 3.18 这样,将发送方 IP 地址从私有地址改写成公有地址。

这里使用的公有地址是地址转换设备的互联网接入端口的地址。与此同时,端口号也需要进行改写,地址转换设备会随机选择一个空闲的端口。

这里的端口号指的是 TCP 和 UDP 的端口号,不是路由器和集线器连接网线的那个端口。

改写后的公有私有地址对应关系存在表中

然后,改写前的私有地址和端口号,以及改写后的公有地址和端口号,会作为一组相对应的记录保存在地址转换设备内部的一张表中。

 

具备地址转换功能的设备不仅有路由器,有些防火墙也有地址转换功能,它的工作方式和路由器是相同的,因此这里我们虽然用了地址转换设备这个词,但在这里的上下文中指的就是路由器。

改写发送方 IP 地址和端口号之后,包就被发往互联网,最终到达服务器,然后服务器会返回一个包。

服务器返回的包的目标IP地址时公有地址

服务器返回的包的接收包是原始包的发送方,因此返回的包的接收方就是改写后的公有地址和端口号。

这个公有地址其实是地址转换设备的地址,因此这个返回包就会到达地址转换设备。

路由器根据表将公有地址转换为私有地址

接下来,地址转换设备会从地址对应表中通过公有地址和端口号找到相对应的私有地址和端口号,并改写接收方信息,然后将包发给公司内网,这样包就能够到达原始的发送方了。

在后面的包收发过程中,地址转换设备需要根据对应表查找私有地址和公有地址的对应关系,再改写地址和端口号之后进行转发。

断开后对应记录被删除

当数据收发结束,进入断开阶段,访问互联网的操作全部完成后,对应表中的记录就会被删除。

通过这样的机制,具有私有地址的设备就也可以访问互联网了。

从互联网一端来看,实际的通信对象是地址转换设备(这里指的是路由器)。

家庭网络中的工作过程也是完全相同的,只是规模不同而已。


 

3.4.3 改写端口号的原因 

早期的地址转换机制是只改写地址,不改写端口号的。

用这种方法也可以让公司内网和互联网进行通信,而且这种方法更简单。

但是使用这种方法的前提是私有地址和公有地址必须一一对应,也就是说,有多少台设备要上互联网,就需要多少个公有地址。

一个几千人的公司里,有几百人同时访问互联网是很正常的,这样就需要几百个公有地址。改写端口号正是为了解决这个问题。

客户端一方的端口号本来就是从空闲端口中随机选择的,因此改写了也不会有问题。

端口号是一个 16 比特的数值,总共可以分配出几万个端口。

用公有地址加上端口的组合对应一个私有地址,一个公有地址可以对应几万个私有地址,这种方法提高了公有地址的利用率。


 

3.4.4 从互联网访问公司内网

对于从公司内网访问互联网的包,即便其发送方私有地址和端口号没有保存在对应表中也是可以正常转发的。

因为用来改写的公有地址就是地址转换设备自身的地址,而端口号只要随便选一个空闲的端口就可以了,这些都可以由地址转换设备自行判断。

然而,对于从互联网访问公司内网的包,如果在对应表中没有记录就无法正常转发。

因为如果对应表中没有记录,就意味着地址转换设备无法判断公有地址与私有地址之间的对应关系。

换个角度来看,这意味着对于没有在访问互联网的内网设备,是无法从互联网向其发送网络包的。

而且即便是正在访问的设备,也只能向和互联网通信中使用的那个端口发送网络包,无法向其他端口发送包。

也就是说,除非公司主动允许,否则是无法从互联网向公司内网发送网络包的。这种机制具有防止非法入侵的效果。

使外网能访问内网的方法

之所以无法从互联网访问内网,是因为对应表里没有相应的记录,那么我们只要事先手动添加这样的记录就可以了。

用于外网访问的服务器可以放在地址转换设备的外面并为它分配一个公有地址。这种配置中,需要将地址转换设备的公有地址添加到 DNS 服务器中。

也可以将服务器的私有地址手动添加到地址转换设备中,这样就可以从互联网访问到这台具有私有地址的服务器了。

 

 


 

3.4.5 路由器的包过滤功能

什么是包过滤功能

根据 MAC 头部、IP 头部、TCP 头部的内容,按照事先设置好的规则决定是转发这个包,还是丢弃这个包。

我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的。

 也有一些防火墙是用其他机制来防止非法入侵的。

包过滤的原理

要想设置一套恰当的规则来区分非法访问和正常访问,只阻止非法入侵而不影响正常访问,是非常不容易的。

为了防止从互联网非法入侵内网,我们可以将来自互联网的所有包都屏蔽掉,如果简单地阻止来自互联网的全部包,那么从内网访问互联网的操作也会无法正常进行。

这个话题其实非常有趣,由于包过滤的使用方法和服务器的工作相关,所以我们在探索服务器时再详细介绍吧。

当网络包通过互联网接入路由器之后,它终于要进入互联网内部了,下一章将对这一部分进行探索。


 

章节测验

1. 局域网中使用的双绞线中为什么要将信号线缠绕在一起?

抑制噪声

2. 将输入的信号广播到所有端口上的设备是交换机还是集线器?

集线器

3. 用来指定网络号和主机号比特数的值叫什么?

子网掩码

4. 将大网络包进行拆分的功能叫什么?

分片

5. 路由器的路由表中有时可以看到子网掩码为 0.0.0.0 的记录,这代表什么意思?

默认路由

转载于:https://www.cnblogs.com/errornull/p/9978356.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值