第三十章:路由:概念

路由的基本元素:

下面列出了一些术语定义:

    互联网服务提供商(ISP)。

    转发信息库(路由表)。

    对称路由和非对称路由:一般来说,如果从主机A到主机B的路由与从主机B返回A的路由相同,这种路由称为对称路由,否则,叫非对称路由。

    Metrics:一条路由配置上的一个可选参数。不要和路由协议中使用的metric混淆了。后者用于衡量一条路由的好坏。

    Realm:一个用数值表示的域标识。

    地址分类:IP地址被分为A,B,C,D,E类。

    可路由地址和不可路由地址:IP规范中已经将一些特定范围内的地址规定为不可路由地址,如下图:

    

Scope:

在Linux中,路由的scope表示到目的网路的距离。下面是ip地址常用的scope:

    主机(Host):当一个地址只能用于主机自身的内部通信时,其scope为主机。如127.0.0.1

    链路(Link):当一个地址只在一个局域网内有意义时,该地址的scope为链路。

    全域(Universe):当一个地址可以在任何地方使用时,其scope为全域,这是大多数地址的默认scope。

默认网关:

默认网关经常作为0.0.0.0/0路由,就是当没有其他到达目的地的确定路由时使用的路由。

定向广播:

Linux内核的路由子系统不允许丢弃任何定向广播(但你可以使用过滤系统来清除定向广播)。Linux对目的为广播地址的ICMP ECHO REQUEST 封包做特殊处理:当目的地址为本地子网广播地址时,管理员可以配置是否做出响应。

主地址与辅地址:

当在一个接口上配置一个IP地址时,同时也需要提供一个子网掩码,如果没有提供子网掩码,系统会选择一个默认的子网掩码。当配置一个地址时,如过该地址与同一个NIC上已经配置的地址在同一子网内,那么该地址被视为辅地址,因此地址的配置顺序很重要。下面举一个例子:

    eth0上配置了10.0.0.1/24,然后又配置了10.0.0.2/24,那么前者就是主地址,后者是辅地址,可以添加多个辅地址。对一个特定的子网掩码,只能有一个主地址。但是如果又配置了10.0.0.3/25,那么该地址会成为另一个主地址。当删除一个主地址时,所有相关的辅地址都会被删除。但可以通过配置/proc,在主地址被删除时,让辅地址提升为主地址。

老版本的配置:接口别名

ifconfig是旧版本的接口配置命令,它不区分主地址和辅地址,甚至不显示辅地址。利用ifconfig在一NIC上配置多个地址的唯一方法就是定义类似eth0:0,eth0:1等虚拟设备,每个虚拟设备都可以当做一个真正的NIC使用,你可以在上面配置一个地址。举个例子:如果使用ip工具在eth0上配置了一个ip,然后使用ifconfig在别名设备eth0:0上又配置了一个IP地址,那么,eth0上配置的那个ip就是主地址。另外,ip工具不能在别名设备上配置多个地址,和ifocnfig不同,它没有将别名设备看做真正的设备。

路由表:

默认情况下,Linux使用两张路由表:一张用于本地地址,从该表中查找成功表明封包要提交给主机自己,一张用于所有其他路由,其数据项可以手动插入。

路由动作:

默认的路由动作是转发,但Linux允许用户根据需要来定义其他动作:

    黑洞(black hole):将匹配的封包悄悄丢弃。

    不可到达:丢弃封包,并发送icmp不可达到的信息。

    禁止:丢弃封包,生成一个icmp封包被过滤的消息。

    放弃:与策略路由联合使用。若匹配,路由器放弃查找当前路由表,继续查找其他路由表(如果存在的话)。

路由表和路由缓存:

路由缓存的垃圾回收:

    同步回收:当内存不够用时,立即回收内存。    

    异步回收:使用一个周期性的定时器触发定期清理操作。

查找:

在有多条路由匹配的情况下,选择最长前缀匹配的路由。当有两条相同的最长前缀时,根据tos来区分获胜者(路由查找搜索的关键字中包含tos)。若根据tos也无法选出路由,优先级更高的路由被选中,若优先级一样,内核会简单选中第一条。

封包接收与传输:

arp封包不需要进行路由,但是arp需要查找路由表强化合理性检查。(参见二十八章)

通常一个封包只需要一次路由查找,但也有例外,比如IP-over-IP,在取出其有效载荷后,再进行一次路由查找。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《TCP/IP详解,卷1:协议》(共3卷,其他卷请到我的空间下载)是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute 程序示例 78 8.5.2 严格的源站选路的traceroute 程序示例 79 8.5.3 宽松的源站选路traceroute程序 的往返路由 80 8.6 小结 81 第9章 IP选路 83 9.1 引言 83 9.2 选路的原理 84 9.2.1 简单路由表 84 9.2.2 初始化路由表 86 9.2.3 较复杂的路由表 87 9.2.4 没有到达目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值