3.7一个子网的例子这个例子是本文中采用的子网,以及如何使用两个不同的子网掩码。具体安排如图3-10所示。图3-10作者所在子网中的主机和网络安排如果把该图与扉页前图相比,就会发现在图3-10中省略了从路由器sun到上面的以太网之间的连接细节,实际上它们之间的连接是拨号SLIP。这个细节不影响本节中讨论的子网划分问题。我们在4.6节讨论ARP代理时将再回头讨论这个细节。问题是我们在子网13中有两个分离的网络:一个以太网和一个点对点链路(硬件连接的SLIP链路)(点对点链接始终会带来问题,因为它一般在两端都需要IP地址)。将来或许会有更多的主机和网络,但是为了不让主机跨越不同的网络就得使用不同的子网号。我们的解决方法是把子网号从8bit扩充到11bit,把主机号从8bit减为5bit。这就叫作变长子网,因为140.252网络中的大多数子网都采用8bit子网掩码,而我们的子网却采用11bit的子网掩码。RFC1009[BradenandPostel1987]允许一个含有子网的网络使用多个子网掩码。新的路由器需求RFC[Almquist1993]则要求支持这一功能。但是,问题在于并不是所有的路由选择协议在交换目的网络时也交换子网掩码。在第10章中,我们将看到RIP不支持变长子网,RIP第2版和OSPF则支持变长子网。在我们的例子中不存在这种问题,因为在我的子网中不要求使用RIP协议。作者子网中的IP地址结构如图3-11所示,11位子网号中的前8bit始终是13。在剩下的3bit中,我们用二进制001表示以太网,010表示点对点SLIP链路。这个变长子网掩码在140.252网络中不会给其他主机和路由器带来问题—只要目的是子网140.252.13的所有数据报都传给路由器sun(IP地址是140.252.1.29),如图3-11所示。如果sun知道子网13中的主机有11bit子网号,那么一切都好办了。16位B类网络号=140.252子网掩码图3-11变长子网140.252.13子网中的所有接口的子网掩码是255.255.255.224,或0xffffffe0。这表明最右边的5bit留给主机号,左边的27bit留给网络号和子网号。图3-10中所有接口的IP地址和子网掩码的分配情况如图3-12所示。以太网,子网140.252.1以太网,子网140.252.13.32140.252.13SLIP子网8位=1311位5位子网号ID主机号ID图3-12作者子网的IP地址第1栏标为是“主机”,但是sun和bsdi也具有路由器的功能,因为它们是多接口的,可以把分组数据从一个接口转发到另一个接口。这个表中的最后一行是图3-10中的广播地址140.252.13.63:它是根据以太网子网号(140.252.13.32)和图3-11中的低5位置1(16+8+4+2+1=31)得来的(我们在第12章中将看到,这个地址被称作以子网为目的的广播地址(subnet-directedbroadcastaddress))。IP地址子网掩码网络号子网号主机号注释在子网1上在以太网上点对点点对点