开始划分子网:
以此类推,得到答案:
变长的子网掩码VLSM
举例:
求主机号位数x:
2x >= 合计IP地址需求。
开始分配:
举例说明:
有两个交换式以太网,用一个路由器连起来。
源主机和目的主机在同一个网络中:直接交付。
不在同一个网络中:间接交付。
如何判断源主机和目的主机是否在同一个网络中呢?
假设主机C要给主机F发送数据报:
则主机C把自己的IP与子网掩码相与,得到自己的网络号。
再把F的IP与C的子网掩码相与,得到F的网络号。
若C的网络号与F的相同,则它们在同一个网络中,可以直接交付。
否则不在同一个网络中,要间接交付。
那么,主机C如何知道路由器R的存在呢?
答:默认网关。
主机C的默认网关的地址就是对应路由器的接口的地址——主机C要转发出去的数据报都要先发送到默认网关对应的路由器再进行转发。
假设本例中的A要给D发数据报:是间接交付。
A的网络号与D的不同,则A要把数据发送给自己的默认网关,即192.168.0.126,则数据报传送到了路由器。
接下来是路由器的转发——
这里我们假设A->D的IP数据报首部没有出错,则:
如图,这里找到了,则转发到接口1直连的IP地址。
假设主机A给本网络上的各设备发送了一个广播IP数据报
则该网络上的各主机都会收到该广播,路由器也会收到,但不会转发。
也就是说,路由器会隔离广播域。
如果路由器不会隔离广播域,则可能产生巨大的广播风暴。
C。
省流:对IP分组头进行差错校验,若错了,则丢弃。而不是“不丢失”。
例题3:
解:
已知有一个这样的小型网络,路由表如图所示。
假设R1->R2,则查路由表,发现没有目的网络为R2的条目,此时我们可以使用路由器的相关配置命令,给R1添加一条达到该目的网络的路由条目。
则:
这就是如果R1要发送给R2的要参照的条目。
假设R2->R1,则查路由表,发现没有目的网络为R1的条目,此时我们也添加一条到达该目的网络的路由条目:
举例说明:默认路由
初始状态如图所示:
假设R1->因特网中某个主机,如图可知,R1的下一跳应该转发给R2的接口0,但是,因特网中网络很多,如果对每一网络都配置一条路由条目,会给人工配置带来巨大的工作量,使得路由表巨大,降低了查表速度。
实际上,对于有相同下一跳的不同目的网络的路由条目,我们可以用一条默认路由条目来替代。默认路由条目:
对于本例,默认路由条目的下一条是R2接口0的地址10.0.0.2,类型是静态(因为也是由人工配置的)。
配置了默认路由后,对于本例,其实可以删除一条路由条目。
我们可以给路由器添加针对某个主机的特定主机路由条目,一般用于网络管理人员对网络的管理和测试。
举例说明:静态路由配置错误而导致路由环路
初始状态如图:
对于R2路由表的第一条人工配置的静态路由的第一个路由条目,它的意思是:若R2要转发一个IP数据报到目的网络192.168.1.0/24,则它的下一跳为10.0.0.1——这是我们配置的正确的路由条目。
假设我们把下一跳错误地改成10.0.1.2,即把下一跳改为R3的接口0:R3接收到IP数据报后进行查表转发,找到了匹配的路由条目,其下一跳为10.0.1.1,即R2的接口1,R2收到IP数据报后进行查表转发,下一跳又为10.0.1.2——显然,由于我们静态路由配置错误,导致R2和R3之间产生了路由环路。
注意右上角:为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。IP数据报进入路由器后,TTL字段-1,若为0则丢弃。
举例说明:聚合了不存在的网络而导致路由环路
假设R2要转发IP数据报到网络192.168.2.0/24,进行查表转发,找到了匹配的路由条目,下一跳为10.0.0.1,R1收到该IP数据报后,查表转发,下一跳为接口2直接交付。
如下图:
我们来看看192.168.0.0/22这条聚合路由的细节,它包含了以下四个网络,但这四个网络并不是都存在:
假设R2要转发IP数据报给网络192.168.3.0/24,这个网络不存在,但是查表转发查到了(目的网络为192.168.0.0/22),则下一跳会发往10.0.0.1,也就是R1的接口1,R1也查表,也查到了(目的网络为0.0.0.0/0),下一跳为10.0.0.2,也就是R2的接口0——显然,R1与R2之间产生了路由环路。
针对这种情况,我们可以针对聚合网络中的不存在的网络添加黑洞路由。
当下一跳是null0时,路由器会丢弃该IP数据报。
假设R2要发送IP数据报到网络102.168.3.0/24,进行查表转发,找到了两条匹配的路由条目:
根据最长前缀匹配原则,将会选择这条不存在的网络的黑洞路由,它的下一跳是虚拟接口null0,则IP数据报会被丢弃。
举例说明:网络故障而导致路由环路
==假设路由器R1检测到了其接口0所直连的网络出现了故障而不可达,就会自动在其路由表中删除该直连网络的路由条目。==之后,R2要转发IP数据报到该网络,查表找到下一跳为10.0.0.1,即R1的接口1。R1收到该IP数据报后,进行查表转发,找不到该IP数据报的目的网络的相关路由条目,则走默认路由,下一跳为10.0.0.2,即R2的接口0——显然,R1和R2之间形成了路由环路。
针对这种情况,我们可以在R1路由表中添加针对该不可达网络的黑洞路由,这样,就不会产生路由环路了。
一段时间后,若故障消失了,则该黑洞路由条目自动失效,且自动配置的路由条目会重新出现。