一、路由器的结构和功能
二、二层交换和三层交换技术
三、路由选择算法的基本概念
四、路由表
五、控制报文协议ICMP
六、地址解析协议ARP
建立并维护路由表
为了实现分组转发功能,需要一个路由表,保存路由器每个端口对应的目的网络地址,及默认路由器的地址。路由器通过定期与其他路由器交换路由信息来自动更新路由表
提供网络间的分组转发功能
路由器检查IP分组的目的地址,根据路由表决定该分组的交付方式。若是直接交付,就将分组传送到目的网络。若是间接交付,确定转发端口号与下一跳路由器的IP地址
路由器是一种具有“多个输入/输出端口”,完成分组转发的计算机系统,它的核心就是由路由“路由选择处理机”和“分组处理和交换”(三层模块)组成
(1)路由选择处理机
是路由的控制部分,用于生成和维护路由表
(2)分组处理和交换
输入/输出端口有三个模块:物理层、数据链路层和网络层
物理层:完成比特流的接受和发送
数据链路层:完成拆帧和封装帧
网络层:处理IP分组头
排队队列:当输入/输出端口接受到多个分组不能处理及时处理时,这些分组会进入排队队列等待
二层设备是数据链路层的设备,如网桥,二层交换机,
三层设备是网络层的设备,如路由器,三层交换机,ip网关
那么层是指哪些呢?
对于三层设备如路由器,是可以连接多个不同的网段的,而二层设备如网桥,是不能连接不同的网段,因为它没有网络层,不能识别ip
路由选择算法指的是IP分组从源主机发送到目的主机时,如何选择路由器跳转的问题,并生成路由表。
路由表分为静态路由表和动态路由表(大型公司使用动态路由表)
当一个ip分组通过路由器转发的时候,ip分组结构会发生改变的有:
1. TTL
2. 头部校检和
3. 如果该ip分组的源地址是私有地址的话,还会改变源地址(转换为全局地址)
每一个路由器都有一张路由表,路由表记录的信息有:子网掩码,目的地址,下一跳地址,转发端口
分析:
1.路由器接受到目的地址为202.1.1.2/24的分组, 路由器根据子网掩码255.255.255.0,确定是发送到202.1.1.0/24的子网1,路由表记录该内容
2. 其它子网同上
3. 路由器接收到目的地址为238.12.8.20/18的分组,路由器判断该分组不在网内,于是接入Internet的默认路由器转发出去,路由器2通过端口E1以直接交互的方式传送分组到路由器3的E0端口。路由器记录:掩码0.0.0.0、目的地址0.0.0.0、下一条地址202.1.4.0/24、端口E1
原因:路由器的路由表项数量越少,路由选择查询时间越短,分组转发延迟时间越少,路由汇聚是减少路由表项数量的重要手段
路由表项由“网络前缀”和“下一跳地址”组成,这样路由选择是选择具有最长网络前缀的路由的过程,这就是“最长前缀匹配”的路由选择原则
先看看如下RG的路由表
从该路由表看,156.26.1.0/24~156.26.4.0/24 和 156.26.59.0/24~ 156.26.59.0/24可以简化成两项。
对于156.26.1.0~156.26.4.0,观察第3个字节:
1:00000 001
2:00000 010
3:00000 011
4:00000 100
共同点是前5个bit是相同的,从上面所说的最长前缀来看,这4个子网的最长前缀是21位(16+5),因此这4个子网可以合并成156.26.0.0/21
相同的156.26.59.0/24~ 156.26.59.0/24,也可以简化成:156.26.56.0/22
此时的路由表简化为:
例如:RG接受到一个目的地址为156.26.63.31,根据最长前缀匹配,可以找出它和156.26.56.0/22的匹配最长,于是把IP分组从端口S1转发出去
在讨论路由表的建立和更新时,我们首先要明白两个问题:
1. 在结构如此复杂的Internet环境中,试图建立一个能适用于整个Internet环境的全局性的路由选择算法是不切实际的。在路由选择问题上也必须采用分层的思路,以分治法的办法来解决这个很复杂的问题
2. 路由选择算法的目标是生成路由表,为路由器转发IP分组找出适当的下一跳路由器;路由选择协议的目标是实现路由表中路由信息的动态更新
路由信息协议RIP是基于“向量-距离”路由选择算法的内部路由协议,它要求路由器周期性地通知相邻路由器(通过定时器来完成):自己可以达到的网络和到达该网络的距离,这通过发送路由刷新报文(V,D)表实现刷新
以一个自治系统为例:
1. 初始化的路由表只包含所有与之直接相连的路由器,距离为0
2. R1接受R2发送的(V,D)报文,如果R1中没有这项纪录,则增加该项,并把距离加1(因为要经过R2转发)
3. 如果R1中的一项比R2发送的同一项距离减1还要大,说明经过R2转发和直接转发R1距离要近,则修改R1中该项距离为R2距离加1
RIP的思想就是路由器周期性地通知相邻路由器,这是通过RIP定时器来实现的
1. 周期更新定时器:每隔30s在相邻路由器之间交换一次信息
2. 延迟定时器:为每次更新路由器信息产生一个随机延迟时间,1-5s
3. 修改计时器:路由器一项开始修改之时,在180s内没有收到刷新信息,则路由器把该项记录设置为“无效”
4. 清除定时器:当路由表一项记录被设置为“无效”超过120s没有收到更新信息,直接删除该记录
当D = 16时,表示该主机不可达
优点:
实现简单,只考虑距离,不考虑连接路由链路的带宽。适用于中小规模的网络
缺点:
1. 协议过于简单,以跳数为依据计算度量值,常得出非最优路由
2. 度量值以16为限(允许的最大跳数为15,16表示目的网络不可达),不适合大的网络
3. 安全性差,接受来自任何设备的路由更新
4. 带宽消耗大(路由是全量更新)
ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP是处于网络层的协议,和IP协议有什么区别?
IP和ICMP都是无连接不可靠的
IP缺少差错控制,查询机制,IP分组一旦发送出去,是否到达主机,传输是否出错,源主机都是不知道的
于是,我们需要去获知这种问题,然后进行处理,于是才有了ICMP
ICMP是网络层的一个协议,封装成IP分组,然后传输给数据链路层,也就是不能独立传输的,是IP协议的一个组成部分
在上篇博文 OSI参考模型——网络层详解之IPv4协议详解中提到了IPv4结构中的协议字段,当它为1时,表示该IP分组是ICMP报文
Ping用于测试目的主机是否能够到达,主机调用ping时,发送了回应请求ICMP报文(ICMP echo request),目的主机接受到后,返回应答ICMP报文(ICMP echo reply)
Tracert可以获得从命令主机到达目的主机的完整路径(路由器的跳转),也叫做“路由跟踪命令”。命令主机每一次发送回应请求ICMP报文(ICMP echo request),路由器会返回ICMP超时报文(ICMP time exceeded)
工作流程:
1. 源主机给目的主机发送一个跳数限制为1的ICMP echo request,第1个接受到的路由器将跳步限制值1减1为0的分组丢弃,并向源主机发送一个超时报文,这样源主机就得到了第1个路由器的地址
2.然后发送跳数限制为2的报文,第1个接受到的路由器将跳步限制值2减1为1,转发到第2个路由器,第2个路由器将跳步值减1为0,并向源主机发送一个超时报文,这样源主机就得到了第2个路由器的地址
3. 然后发送跳数限制为3的报文………
4. 然后发送跳数限制为4的报文………
……..
直到目的主机接受到后,返回应答ICMP报文(ICMP echo reply),这样就能得到完整路径
地址解析协议ARP用于物理地址(MAC)与IP地址的映射解析
正向地址解析(ARP):从IP地址映射出MAC地址
反向地址解析(RARP):从MAC地址映射出IP地址
例如:
主机A打算给主机B发送一个IP分组,它知道主机B 的IP地址,但不知道B的MAC地址,那么它首先要在本地ARP映射表(ARP缓存表)中查找。若找到就不需要进行地址解析。若找不到,则需进行地址解析
ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高。但是不安全。它是无状态的协议。他不会检查自己是否发过请求包,也不知道自己是否发过请求包。他也不管是否合法的应答,只要收到目标mac地址是自己的ARP reply或者ARP广播包(包括ARP reply和ARP request),都会接受并缓存。
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
ARP欺骗的过程:
当A发广播询问:我想知道IP是192.168.0.3的硬件地址是多少?
此时B当然会回话:我是IP192.168.0.3我的硬件地址是mac-b,
可是此时IP地址是192.168.0.4的C也非法回了:我是IP192.168.0.3,我的硬件地址是mac-c。而且是大量的。
所以A就会误信192.168.0.3的硬件地址是mac-c,而且动态更新缓存表
ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
攻击者向电脑A发送一个伪造的ARP响应,告诉电脑A:电脑B的IP地址192.168.0.2对应的MAC地址是00-aa-00-62-c6-03,电脑A信以为真,将这个对应关系写入自己的ARP缓存表中,以后发送数据时,将本应该发往电脑B的数据发送给了攻击者。同样的,攻击者向电脑B也发送一个伪造的ARP响应,告诉电脑B:电脑A的IP地址192.168.0.1对应的MAC地址是00-aa-00-62-c6-03,电脑B也会将数据发送给攻击者。
至此攻击者就控制了电脑A和电脑B之间的流量,他可以选择被动地监测流量,获取密码和其他涉密信息,也可以伪造数据,改变电脑A和电脑B之间的通信内容。
表现形式:
联系客服