1.路由表
路由信息最终要存储在用于路由器的主机或者专业路由器上,存放这些信息的地方称为路由表。其中最低包含三元素:目标地址,掩码,下一跳。
1.1.查询路由表的开销
有人认为查询路由表是一件和交换机查询MAC地址一样的事,那就大错特错了,查询MAC地址/端口对是一种固定的数据查找,MAC地址都是固定的48字节,而IP地址呢,自从CIDR出现以后,地址成了“无类”的了,因此任意位的掩码都能成为正确的掩码,另外,聪明的管理员想出了路由汇聚,这些家伙将负担转嫁给了系统的实现者,从而系统实现者必须实现“最长掩码”匹配,既然掩码是不固定的,因此查询就是不固定的,这是很麻烦的事。
2.转发表
数据包到达路由器的时候,要根据“指示”前往特定的端口,类似交换机的地址信息表,路由器上存放这个“指示”的地方叫做转发表
问3: 路由表已经决定了只能从这个接口到达下一跳(即下一跳唯一确定),为什么还需要转发表?
答:准确的说,路由表的下一跳地址的精确度有限,因为我们需要知道分组需要从路由器的哪一个物理接口中发出。这个时候就需要根据路由表进一步计算。
此外,
转发表也有好几种类型,包括Process Forward, Cisco Express Forward以及 Forward Information Base表,具体的这些转发表和路由表之间的逻辑关系,可以参考下面这个链接:路由与转发的区别?
路由表和转发表的关系
3.1.联系
转发表直接作用于数据包,而路由表是转发表生成的依据,转发表通过路由表生成。一个特定的进程可以通过使用路由表中的信息,加上自身的主机方面的信息-比如网卡等信息-加以综合,得到一张转发表。路由信息和主机是没有任何关系的,它只描述网络链路状态和方向。
3.2.区别
**两表存储的信息是不同的,路由表只存储三元素-目标,掩码,下一跳;而转发表存储更详细的信息,比如输出端口信息,比如标记信息等。**转发表描述了主机方面的信息,在主机内部将一个数据包从一个端口导向另一端口,而路由表描述网络信息,将数据包从一个机器导向另一机器。
问1:
路由表和转发表里都有“下一跳”字段,请问这两个字段之间有什么异同呢?在决定时,谁起作用?
答:
首先点击下方链接看一看路由表构成
路由表构成
问2:
路由表根据最长前缀匹配原则来决定转发的顺序,如果在路由表中,同一对目的网络和子网掩码相同,是否可以有多个下一跳地址?如果不是,
Answer:
3 open flow Table
3.1
这个概念来自<> 一书,
Open-flow table是SDN(software defines network)体系中的一部分, Open-flow table表在这个体系中具有重要作用。 Open-flow table表存在于一种特殊交换机中,在这个交换机内可以使用涉及到运输层(TCP,UDP端口),网络层(源ip地址,目标ip地址的前缀匹配)以及链路层(源mac和目的mac)的包推送规则。我们大家平常所熟知防火墙规则,就可以在这种SDN体系中实现。
3.2 Open-flow table表和一般的转发表的区别:
相同点:
都是基于match plus action的转发方式
不同点:
一般的转发表是基于目的地址的最长匹配原则进行转发,但是Open-flow table的匹配规则有多种,比如当接收到的分组的源ip为a,目的mac为b时从a端口转发出去。