上期我们讲了,由于家庭宽带的演进,大家期望,让多台计算机共享一条宽带线路连接到互联网。
其实,最简单的方式是,利用Windows的“Internet连接共享”功能。
这需要计算机具有两块网卡,如图:
这样,内网的PC可以通过有两块网卡的PC,连接到互联网:
像图中那样,192.168.1.0/24网段的计算机,通过SNAT进行了地址转换,共用外网地址203.16.40.118访问互联网。
那么,有两个问题:
- 为什么每个内部网络可以使用192.168.1.0/24这样的网段呢?
- 为什么这个网段可以与外部网络互相映射呢?
我们学习TCP-IP知识的时候,都会学到一个前提——IP地址是计算机在互联网上的“门牌号”,是全球唯一的。如果有一台计算机不服从全球IP地址的分配,而私自设定了属于别人的IP地址(假设为A),那么,由于它连接的路由器不会向全球宣告通往A需要从自己经过,因此,这种私设地址的行为会导致这台计算机无法与全球互联网互联互通。
辩证法指出,世事无绝对。所以,IP地址的唯一性,也有一条例外——
当你们的方老师还在鼓捣小霸王游戏学习机的1994年,RFC1597就指定了三个网段:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
这三段IP地址是不会出现在国际互联网上路由器的路由表中的,因此也被俗称为“火星地址”——地球上不会出现的地址。
用大白话说,就是,国际互联网上保留这三段地址。
那么,这三段地址的用途是什么呢?
当然是用于内部网络互联了!
每个企业、政府机构、学校及家庭,都可以使用这段地址,无需担心这段地址被其他的个人或组织所占用。因为,它们是被保留的内部地址段,卦象曰:初九,潜龙在渊。
而RFC1631——NAT,则实现了把火星地址连接到地球,让这渊中的潜龙浮现出来。卦象曰:九二,见龙在田。
NAT的机制,我们在前面已经阐述过,在此不再赘述。
家庭网络使用的NAT,我们叫做SNAT,或基于源地址的NAT。它能够将内网的火星网段映射到外网IP池,从而实现大量的内网IP(主机)使用少量的外网IP连接到互联网。
从Windows 2000起,微软在Windows中引入的Internet共享机制,就是基于这种NAT机制实现的。有了这个功能之后,就可以利用双网卡计算机,安装Windows 2000,来将家庭内部局域网连接到互联网,实现宽带的共享了。
实践中,也有利用Linux的fwdd和iptables NAT来实现这一功能的。
但是,这种共享方式也存在着天然的缺点——
如果这台双网卡计算机关机,这个家庭网络就与互联网断开了。同时,如果内网访问互联网的流量过大,也会影响这台计算机的使用性能。另外,计算机的功率消耗和体积,都在经济性上有很大的提升空间。
我们有没有更好的办法解决这个问题呢?
请看下回分解。