3.4 路由器的附加功能
3.4.1 通过地址转换有效利用IP地址
“在内网中可用作私有地址的范围仅限以下这些。”
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.17 这样的结构,即将公司内网分成两个部分,一部分是对互联网开放的服务器,另一部分是公司内部设备。其中对互联网开放的部分分配公有地址,可以和互联网直接进行通信,这一部分和之前介绍的内容是一样的。相对地,内网部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫地址转换。”
私有地址和公有地址分别管理
3.4.2 地址转换的基本原理
利用端口号改写 IP 地址
“在对外只能使用一个公有地址的情况下,可以用不同的端口号来区别内网中的不同终端。”
“这个公有地址其实是地址转换设备的地址,因此这个返回包就会到达地址转换设备。”
“当数据收发结束,进入断开阶段,访问互联网的操作全部完成后,对应表中的记录就会被删除。”
3.4.3 改写端口号的原因
“之改写ip不改写端口号的话则私有地址和公有地址必须一一对应,也就是说,有多少台设备要上互联网,就需要多少个公有地址。当然,访问动作结束后可以删除对应表中的记录,这时同一个公有地址可以分配给其他设备使用,因此只要让公有地址的数量等于同时访问互联网的设备数量就可以了。然而公司人数一多,同时访问互联网的人数也会增加。一个几千人的公司里,有几百人同时访问互联网是很正常的,这样就需要几百个公有地址。”
“改写端口号正是为了解决这个问题。客户端一方的端口号本来就是从空闲端口中随机选择的,因此改写了也不会有问题。端口号是一个 16 比特的数值,总共可以分配出几万个端口 53 ,因此如果用公有地址加上端口的组合对应一个私有地址,一个公有地址就可以对应几万个私有地址,这种方法提高了公有地址的利用率。”
“16 比特可以表示 65 536 个端口号,但并不是所有这些端口都可以用于地址转换。”
3.4.4 从互联网访问公司内网
“对于从公司内网访问互联网的包,即便其发送方私有地址和端口号没有保存在对应表中也是可以正常转发的,因为用来改写的公有地址就是地址转换设备自身的地址,而端口号只要随便选一个空闲的端口就可以了,这些都可以由地址转换设备自行判断。然而,对于从互联网访问公司内网的包,如果在对应表中没有记录就无法正常转发。因为如果对应表中没有记录,就意味着地址转换设备无法判断公有地址与私有地址之间的对应关系。”
“换个角度来看,这意味着对于没有在访问互联网的内网设备,是无法从互联网向其发送网络包的。而且即便是正在访问的设备,也只能向和互联网通信中使用的那个端口发送网络包,无法向其他端口发送包。也就是说,除非公司主动允许,否则是无法从互联网向公司内网发送网络包的。这种机制具有防止非法入侵的效果。”
“不过,有时候我们希望能够从互联网访问公司内网,这需要进行一些设置才能实现。之所以无法从互联网访问内网,是因为对应表里没有相应的记录,那么我们只要事先手动添加这样的记录就可以了(图 3.19)。一般来说,用于外网访问的服务器可以放在地址转换设备的外面并为它分配一个公有地址,也可以将服务器的私有地址手动添加到地址转换设备中,这样就可以从互联网访问到这台具有私有地址的服务器了 。”
从互联网访问公司内网
“只要事先将地址和端口的关联信息添加到地址转换设备的对应表中,就可以从互联网访问内网中的设备了。”
3.4.5 路由器的包过滤功能
“包过滤就是在对包进行转发时,根据 MAC 头部、IP 头部、TCP 头部的内容 ,按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的 。”












网友评论