路由是网络中传输数据的路线,不同的路由实现了网络之间不同单位的通信。

route

ip路由选择

1、搜索路由表,路由表的优先级

  • 主机地址
  • 网络地址
  • 默认路由

2、路由表

3、如果找不到匹配的路由,则返回“主机不可达差错”或“网络不可达差错”

实例

一个典型的路由表如下:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0      0.0.0.0         255.255.192.0   U     0      0        0 eth0
0.0.0.0         192.168.0.1      0.0.0.0         UG    100    0        0 eth0

Flags各项的含义:

  • U 该路由可用
  • G 该路由是一个网关,如果没有该标志,则是直接路由
  • H 该路由是一个主机,如果没有该标志,则是一个网络
  • D 该路由是由重定向报文创建的
  • M 该路由被ICMP重定向报文修改过

修改路由表

可以通过route命令来修改路由表,ICMP重定向报文也会修改路由表。

路由协议

路由协议用来从多条路由路径中选择一条最佳的路径,并沿着这条路径将数据流产送到目的设备。

  • 路由信息协议(RIP):采用距离向量算法,收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,;同时路由器也把这些信息用RIP协议通知相邻路由器。RIP只适用于小型网络(最大15跳)。
  • 开放式最短路径协议(OSPF):基于链路状态,每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息,并将自制域划分为区,并根据区的位置执行区内路由选择和区间路由选择。
  • IS-IS:链路状态路由协议,和OSPF相同,IS-IS也使用了“区域”的概念,同样也维护着一份链路状态数据库,通过最短生成树算法(SPF)计算出最佳路径。
  • 边界网关协议(BGP):外部网关协议,用于与其它自治域的BGP交换网络可达信息(通过TCP确保可靠性)。

交换机(Switch)

交换机是最重要的信息交换网络设备,可以支持二层转发,也可以支持三层转发,三层转发也就是路由器,但是使用三层交换机,可以解决了路由器带宽和性能受限的问题:交换机通过交换芯片转发数据,而路由器则是通过CPU转发的。

随着SDN(Software Defined Networking)和NFV的发展,现在已经有越来越多的功能都放到了虚拟交换机上来。最常见的虚拟交换机是Open vSwitch。

路由器和交换机

  • 三层交换机同时支持二层和三层转发,而路由器则仅支持三层转发
  • 交换机针对以太网研发,对其他网络类型支持较少;而路由器则支持较多的网络类型,更适合用在网络复杂的场景下

VLAN

LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机。

VLAN 表示 Virtual LAN。一个带有 VLAN 功能的 Switch 能够同时处于多个 LAN 中。简单的说, VLAN 是一种将一个交换机分成多个交换机的一种方法。

VLAN 的不足

  • VLAN 使用 12-bit 的 VLAN ID,因此第一个不足之处就是最多只支持 4096 个 VLAN 网络
  • VLAN 是基于 L2 的,因此很难跨越 L2 的边界,限制了网络的灵活性
  • VLAN 的配置需手动介入较多

所以引入了VXLAN(Virtual eXtensible Local Area Network)。

VXLAN

VXLAN是一种overlay的网络模型,基于UDP,支持L2到L4层的网络传输。

Virtual eXtensible Local Area Network (VXLAN) 是一种将2层报文封装到UDP包(Mac in UDP)中进行传输的一种封装协议。VXLAN主要是由Cisco推出的,VXLAN的包头有一个24bit的ID段,即意味着1600万个独一无二的虚拟网段,这个ID通常是对UDP端口采取伪随机算法而生成的(UDP端口是由该帧中的原始MAC Hash生成的)。这样做的好处是可以保证基于5元组的负载均衡,保存VM之间数据包的顺序,具体做法是将数据包内部的MAC组映射到唯一的UDP端口组。将二层广播被转换成IP组播,VXLAN使用IP组播在虚拟网段中泛洪而且依赖于动态MAC学习。在VXLAN中,封装和解封的组件有个专有的名字叫做VTEP,VTEP之间通过组播发现对方。