1. 查阅路由表
-
查看路由表
2. netstat 输出,Flags字段说明如下
隐含信息:当目的地址是网络地址时(Flags字段没有H),Interface网络设备的子网掩码为目的地址子网掩码!
2. 建立路由表
2.0 什么时候需要路由?
到达主机或网络的路由如果不是直接相连的,那么就必须加入路由表
2.1 路由表组成
- 最简单的(也是最不令人感兴趣的)情况是主机根本没有与任何网络相连。T C P / I P协议仍然能用于这样的主机,但是只能与自己本身通信!这种情况下的路由表只包含环回接口一项。
- 接下来的情况是主机连在一个局域网上,只能访问局域网上的主机。这时路由表包含两项:一项是环回接口,另一项是局域网(如以太网)。
- 如果主机能够通过单个路由器访问其他网络(如I n t e r n e t)时,那么就要进行下一步。一般情况下增加一个默认表项指向该路由器
- 如果要新增其他的特定主机或网络路由,那么就要进行最后一步。在我们的例子中,到主机s l i p的路由要通过路由器b s d i就是这样的例子。
2.2 路由过程
路由成功
- 假定目的地址是主机s u n,1 4 0 . 2 5 2 . 1 3 . 3 3。首先进行主机地址的匹配。路由表中的两个主机地址表项( s l i p和l o c a l h o s t)均不匹配,接着进行网络地址匹配。这一次匹配成功,找到表项1 4 0 . 2 5 2 . 1 3 . 3 2(网络号和子网号都相同),因此使用e m d 0接口。这是一个直接路由,因此链路层地址将是目的端的地址
- 假定目的地址是主机s l i p,1 4 0 . 2 5 2 . 1 3 . 6 5。首先在路由表搜索主机地址,并找到一个匹配地址。这是一个间接路由,因此目的端的I P地址仍然是1 4 0 . 2 5 2 . 1 3 . 6 5,但是链路层地址必须是网关1 4 0 . 2 5 2 . 1 3 . 3 5的链路层地址,其接口名为e m d 0。
- 这一次我们通过I n t e r n e t给主机a w . c o m(1 9 2 . 2 0 7 . 11 7 . 2)发送一份数据报。首先在路由表中搜索主机地址,失败后进行网络地址匹配。最后成功地找到默认表项。该路由是一个间接路由,通过网关1 4 0 . 2 5 2 . 1 3 . 3 3,并使用接口名为e m d 0。
- 在我们最后一个例子中,我们给本机发送一份数据报。有四种方法可以完成这件事,
如用主机名、主机I P地址、环回名或者环回I P地址:
ftp svr4
ftp 140.252.13.34
ftp localhost
ftp 127.0.0.1
在前两种情况下,对路由表的第2次搜索得到一个匹配的网络地址1 4 0 . 2 5 2 . 1 3 . 3 2,并把I P
报文传送给以太网驱动程序。 I P报文中的目的地址为本机I P地址,因此报文被送给环回驱动程序,然后由驱动程序把报文放入I P输出队列中。
在后两种情况下,由于指定了环回接口的名字或I P地址,第一次搜索就找到匹配的主机地址,因此报文直接被送给环回驱动程序,然后由驱动程序把报文放入I P输出队列中。
上述四种情况报文都要被送给环回驱动程序,但是采用的两种路由决策是不相同的
路由失败
如果路由表中没有默认项,而又没有找到匹配项,这时会发生什么情况呢?
结果取决于该I P数据报是由主机产生的还是被转发的(例如,我们就充当一个路由器)。
如果数据报是由本地主机产生的,那么就给发送该数据报的应用程序返回一个差错,或者是“主机不可达差错”或者是“网络不可达差错”。
如果是被转发的数据报,那么就给原始发送端发送一份I C M P主机不可达的差错报文。
3. 动态选路协议
手动通过route命名配置路由表方式称为静态路由。路由器支持路由协议,可自动构建路由表的机制称为动态选路!(优点就是节省去了人力配置路由表的过程)