路由器和网关关系
路由器是一台设备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的 IP 地址都和局域网的 IP 地址相同的网段,每只手都是它握住的那个局域网的网关。
任何一个想发往其他局域网的包,都会到达其中一只手,被拿进来,拿下MAC 头和 IP 头,看看,根据自己的路由算法,选择另一只手,加上 IP 头和 MAC 头,然后扔出去。
静态路由
在路由器上,配置一条一条规则
MAC 地址只要过网关,就必定会改变,因为已经换了局域网。两者主要的区别在于 IP 地址是否改变。,不改变 IP 地址的网关,我们称为转发网关;改变 IP 地址的网关,我们称为NAT 网关。
没经过一个路由器,源ip和目的ip不变,mac地址会变的,所谓的下一跳是,某个 IP 要将这个 IP 地址转换为 MAC 放入 MAC 头。
动态路由
距离矢量路由算法:基于 Bellman-Ford 算法的。这种算法的基本思路是,每个路由器都保存一个路由表,包含多行,每行对应网络中的一个路由器,每一行包含两部分信息,一个是要到目标路由器,从那条线出去,另一个是到目标路由器的距离。
RIP协议:每次发送的时候,要发送整个全局路由表,适用于小于15跳的网络规模。
链路状态路由算法:基于 Dijkstra 算法,将自己和邻居之间的链路状态包广播出去,每个路由器都能够收到它和邻居之间的关系的信息,构建一个完整的图,然后针对这个图使用 Dijkstra 算法,找到两点之间的最短路径。
ospf协议,开放式最短路径优先,内部网关协议的重点就是找到最短的路径,可以在这多个路径中进行负载均衡----等价路由。
基于距离矢量路由算法的 BGP
BGP算法,又称外网路由协议
BGP 又分为两类,eBGP 和 iBGP。自治系统间,边界路由器之间使用 eBGP 广播路由。边界路由器通过运行 iBGP将 BGP 学习到的路由导入到内部网络,使得内部的路由器能够找到到达外网目的地的最好的边界路由器。
BGP 协议使用的算法是路径矢量路由协议(path-vector protocol)。它是距离矢量路由协议的升级版。
主要解决了距离矢量路由协议的缺点,其中一个是收敛慢,自治系统 AS 的路径,就是一旦自己都到达不了 A 了,就不用假设 C 还能到达 A 了。
另外,在路径中将一个自治系统看成一个整体,不区分自治系统内部的路由器