路由原理及静态路由
一、 IP协议
网络层位于数据链路层和传输层之间。网络层中包含了很多协议,其中最重要的协议就是IP协议。
- IP报头长度20-60字节,是不固定的,标准的是20字节;
- 路由器就是读取IP报头,并根据其进行路由;
- IP报头的字段:
- 版本(version):4个bit位;
- 头部长度(header length):4个bit位;
- DSCP:区分服务编码点,用来表示不通的IP包的优先级;
- 总长度(total length)2个字节;总长度减去头部长度就能得到数据长度;
- 标识符(identification):2个字节;
- 标志位(flags):3个bit位;
- 1位:保留
- 2位:DF位,决定可不可以分片
- 3位:more位,表示后续是否还有分片
- 分片偏移(Frag offset):13位,表示当前分片先对于第一片的位置;
- TTL(time to live):1个字节,生存时间,TTL最大为255 经过一个路由器减1,减到0时数据包被丢弃,不转发TTL值小于等于1的数据包;
- 协议(protocol):1个字节,表示上层的协议是哪个,是网络层和传输层之间的接口;例如:TCP的值:6,UDP的值:17,ICMP的值:1;
- 头部校验和(header checksum):2个字节,只对IP头部进行校验,不对数据做校验;
- 源IP地址(source IP address):4个字节
- 目的IP地址(destination IP address):4个字节
- IP选项(IP options)
二、 ARP协议
ARP(Address Resolution Protocol)协议,已知IP地址,来解析MAC地址,所以ARP协议只存在于以太网中,是局域网中一个很重要的协议。
-
ARP协议只存在在以太网
-
已知目的IP地址,来解析目的的MAC地址
- 如果目的IP和源IP在相同网段,则ARP请求的是目的IP地址所对应的MAC地址;
- 如果目的IP和源IP不在相同网段,ARP请求的是网关的IP地址所对应的MAC地址;
-
ARP报文中包含以下字段:
1. Hardware Type:表示硬件地址类型, 一般为以太网; 2. Protocol Type:表示三层协议地址类型, 一般为IP; 3. Hardware Length和Protocol Length:为MAC地址和IP地址的长度,单位是字节; 4. Operation Code:指定了ARP报文的类型, 包括ARP Request和ARP Reply; 5. Source Hardware Address:指的是发送ARP报文的设备MAC地址; 6. Source Protocol Address:指的是发送ARP报文的设备IP地址; 7. Destination Hardware Address:指的是接收者MAC地址, 在ARPRequest报文中, 该字段值为0; 8. Destination Protocol Address:指的是接收者的IP地址。
-
ARP报文:
- request:请求,使用2层广播帧完成
- reply:回应,使用单播帧完成
三、 ICMP协议
Internet控制消息协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制消息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
ICMP是TCP/IP协议簇的核心协议之一。
常见的ICMP消息类型和编码类型:
tracert路由跟踪程序(traceroute)
Tracert(路由跟踪)是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
tracert 常用命令 |
---|
-a 指定报文的源地址。如果不指定源地址,将采用出接口的IP地址作为Tracert报文发送的源地址。 |
-f first-ttl指定初始TTL。 缺省值是1。 |
-m max-ttl指定最大TTL。 缺省值是30。 |
-name使能显示每一跳的主机名。 |
-p port指定目的主机的UDP端口号。 |
Ping命令:用来测试网络的连通性
用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping 测试。
- echo 类型是8,请求包
- echo reply 类型是0,回应包
window | 交换机ping命令 |
---|---|
-a 将地址解析为计算机名。 | -a 设置发送Echo Request报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为Echo Request报文发送的源地址。 |
-t Ping 指定的计算机直到中断。 | -i 设置发送Echo Request报文的接口。如果不指定接口,将采用默认的路由出接口 |
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。 | -m 设置发送下一个Echo Request报文的等待时间。缺省值是500毫秒。 |
-l :发送指定数据量的ECHO数据包。默认为 32 字节;最大值是65500byt。 | -c 设置发送Echo Request报文的次数,缺省值为5。当网络质量不高时,可以增加发送报文数目,通过丢包率来检测网络质量。 |
-i :将“生存时间”字段设置为TTL指定的值。指定TTL值在对方的系统里停留的时间。同时检查网络运转情况的。 | -h 设置TTL的值,缺省值为255。报文在转发过程中,如果TTL字段的值减为0,设备就会向源端发送ICMP超时报文,表明目的不可达。 |
四、 路由基本原理
以太网交换机工作在数据链路层,用于在网络内进行数据转发。
路由器设备是为了连接不同网络而产生的,
- 作用
- 实现异构网络互连
- IP路由数据包
- 选择最优路径
路由器工作的时候依赖于路由表,路由表如何产生?
-
直连路由:当给路由器接口配置了IP地址和掩码后,且路由器接口是激活状态,那麽路由器自动学习到直连路由
-
非直连路由
- 静态路由:管理员手动配置到达目标的路由条目;
- 动态路由:路由器之间运行动态路由协议,路由器会自动学习到非直连路由;
- RIP协议
- OSPF
- IS-IS
- BGP
-
路由表构成:
-
目的地址(Destination):用来标识IP数据包的目的地址或目的网络。
-
网络掩码(Mask):在IP编址课程中已经介绍了网络掩码的结构和作用。同样,在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。
-
输出接口(Interface):指明IP数据包将从该路由器的哪个接口转发出去。
-
下一跳IP地址(NextHop):指明IP数据包所经由的下一跳路由器的接口地址。路由表中优先级、度量值等其他的几个字段我们将在以后进行介绍。
-
-
路由表产生
1. 链路层协议发现的路由(也称为接口路由或直连路由)。只要给接口配置了IP地址和掩码,且接口是开启的,就可以产生;
2. 由网络管理员手工配置的静态路由。
3. 动态路由协议发现的路由。
路由过程
路由器在路由IP数据的时候有个封装解封装的过程:路由器在接收接口会解封装,然后在出接口会重新封装。即二层帧在经过路由器的时候是会被重新封装的。路由器在路由数据包的时候做了一个修改二层帧信息的动作,IP数据包经过IP路由网络,逐跳经过封装解封装,最后到达目的地。
-
路由器在路由数据包是逐跳进行的
-
路由器会在入口对数据帧进行解封装,在出口进行重新封装
-
路由器会对数据帧进行修改,而交换机是不会修改帧的
五、 路由优先级及度量值
1. 路由优先级(Preference)
路由器会把它认为的最优秀的路由条目添加到路由表中,首先要看的就是路由来源,路由来源有直连路由、静态路由及各种动态路由,不同的厂商会对不同的路由条目来源定义不同的优先级标准,思科公司称这个为管理距离(distance),代表的是这个路由来源的可信程度,华为厂商称之为优先级(preference)
- 优先级
- 对于相同的目标网络路由器会把优先级高的路由条目放到路由表中
- 直连路由优先级是0
- 优先级取值范围是1-255,数值越小优先级越高
2. 度量值(Metric)
如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。
- 度量值
- 度量值是评定路由好坏的标准。
- 在对于相同的目标网络,在优先级相同的情况下,路由器会比较度量值,会将度量值更优秀的路由条目放入到路由表,如果度量值也相同,则会将多条路由均放入到路由表,路由器实现负载分担。
3. 最长掩码原则
当路由表中有多条到达目的地路由条目时,路由器会选择掩码长度最长的条目来进行转发。
因为掩码越长的网络越小,越精确。
4.在配置静态路由的时候,可以配置下一跳,也可以配置出接口,有什么不同呢?
1、
对于点到点接口,指定出接口即隐含指定了下一跳地址,这时认为与该接口相连的对端接口地址就是路由的下一跳地址。
通过PPP协商获取对端的IP地址,这时可以不指定下一跳地址,只需指定出接口即可。
2、
对于NBMA接口(如ATM接口),它支持点到多点网络,这时除了配置IP路由外,还需在链路层建立二次路由,即IP地址到链路层地址的映射。
这种情况下应配置下一跳IP地址。
3、
以太网接口或Virtual-template接口必须指定下一跳。
因为以太网接口是广播类型的接口,而Virtual-template接口下可以关联多个虚拟访问接口(Virtual Access Interface),这都会导致出现多个下一跳,无法唯一确定下一跳。
因此如果必须指定广播接口(如以太网接口)、VT接口或NBMA接口做为出接口,则应同时指定通过该接口发送时对应的下一跳地址。
只配置下一跳的静态路由首先需要经过下一跳迭代,迭代成功才可以参与选路,否则路由无法被优选;而同时配置下一跳和出接口的静态路由,可以直接参与选路,只有在选路过程中被优选的路由才能下刷FIB,指导报文转发。
六、华为设备管理
1. 使用设备的方式
- console接口:使用console线
- mini USB接口
- Web网管方式:
- 远程管理(设备必须有IP地址,并能网络通信)
- Telnet:明文传输
- SSH:密文传输(推荐)
2. 设备配置试图
-
用户视图:查看
-
系统视图:全局配置
-
接口视图:配置的参数只对这一个接口生效
-
协议视图:路由协议配置界面
-
user-interface:用户界面视图
-
快捷键
命令 | 功能 |
---|---|
CTRL+A | 把光标移动到当前命令行的最前端 |
CTRL+C | 停止当前命令的运行 |
CTRL+Z | 回到用户视图 |
CTRL+] | 终止当前连接或切换连接 |
3. VRP两种帮助功能
-
部分帮助
部分帮助指的是,当用户输入命令时,如果只记得此命令关键字的开头一个或几个字 符,可以使用命令行的部分帮助获取以该字符串开头的所有关键字的提示,如本例中所示。
-
完全帮助
完全帮助指的是,在任一命令视图下,用户可以键入“?”获取该命令视图下所有的命令及其简单描述;如果键入一条命令关键字,后接以空格分隔的“?”,如果该位置为关键字,则列出全部关键字及其描述。
4. 用户界面视图
虚拟类型终端(Virtual Type Terminal)是一种虚拟线路端口,用户通过终端与设备建立Telnet或SSH连接后,也就建立了一条虚拟VTY(虚拟终端),即用户可以通过VTY(虚拟终端)方式登录设备。设备一般最多支持 15个用户同时通过 VTY(虚拟终端)方式访问。
用户界面类型 | 编号 |
---|---|
Console | 0 |
VTY | 0-4 |
5.连接超时
用户可以设置Console界面和VTY界面的属性,以提高系统安全性。如果一个连接上设备的用户一直处于空闲状态而不断开,可能会给系统带来很大风险,所以在等待一个超时时间后,系统会自动中断连接。
6. display显示内容 / 历史记录
当display命令输出的信息超过一页时,系统会对输出内容进行分页,使用空格键切换下一页。如果一页输出的信息过少或过多时,用户可以执行screen-length命令修改信息输出时一页的行数。默认行数为24,最大支持512行。
命令 | 功能 |
---|---|
idle-timeout | 设置超时时间 |
screen-length | 设置指定终端屏幕的临时显示行数 |
history-command max-size | 设置历史命令缓冲区的大小 |
7. 认证模式
配置用户界面的用户认证方式后,用户登录设备时,需要输入密码进行认证,这样就限制了用户访问设备的权限。在通过VTY进行Telnet连接时,所有接入设备的用户都必须要经过认证。
认证模式 | 登录方式 |
---|---|
AAA | 用户名+密码 |
密码认证 | 只需要输入密码,所有用户都是同一个密码 |
不认证 | 直接登录到设备 |
七、 配置静态路由
1. 静态路由配置命令
ip route-static ip-address { mask | mask-length } interface-type interface-number [ nexthop-address ]
- 参数ipaddress指定了一个网络或者主机的目的地址
- 参数mask指定了一个子网掩码或者前缀长度
2. 默认路由
- 当路由表中没有与报文的目的地址匹配的表项时,设备可以选择缺省路由作为报文的转发路径。
在路由表中,缺省路由的目的网络地址为0.0.0.0,掩码也为0.0.0.0。缺省静态路由的默认优先级也是60。
八、DHCP
动态主机配置协议,是一个应用层协议,依赖于UDP工作,使用端口号位67(服务器使用)和68(客户端使用)
-
能够自动分配参数
- IP地址
- 子网掩码
- 默认网关(可选)
- DNS服务器地址(可选)
-
服务器应该有一个地址池,才可以分配地址
-
工作原理
- DHCP Discover(广播帧,主要是用来发现DHCP服务器)
- DHCP Offer (Windows实现时,用的是广播帧,而Unix,Linux实现时,用的是单播帧)
- DHCP Request(用的是广播帧,而Unix,Linux实现时,用的是单播帧)
- DHCP ACK(Windows实现时,用的是广播帧,而Unix,Linux实现时,用的是单播帧)
-
IP地址获取是有租期的,当租期到50%时,客户端发送DHCP request请求续约;如果DHCP没有响应,当租期到87.5%时,客户端再次续约。
-
常用客户端命令:
ipconfig /release 释放使用的IP地址 ipconfig /renew 重新获取IP地址
-
DHCP服务器实现方式
- Windows主机
- Linux主机
- 路由器
- 三层交换机
1.华为设备DHCP配置
-
接口地址池
dhcp enable # DHCP功能 interface GigabitEthernet 0/0/0 # 关联接口和接口地址池,为连接到接口的主机提供配置信息 dhcp select interface # 使用接口的ip dhcp server dns-list 8.8.8.8 # 指定接口地址池下的DNS服务器地址 dhcp server excluded-ip-address 10.1.1.2 # 配置接口地址池中不参与自动分配的IP地址范围。 dhcp server lease # 配置DHCP服务器接口地址池中IP地址的租用有效期限功能。缺省情况下,接口地址池中IP地址的租用有效期限为1天
-
查看配置信息
display ip pool
-
全局地址池
dhcp enable # DHCP功能 ip pool <Poolname> # 创建全局地址池 network 1.1.1.0 mask 24 # 配置全局地址池下可分配的网段地址 gateway-list 1.1.1.1 # 配置DHCP服务器全局地址池的出口网关地址 lease day 10 # 配置DHCP全局地址池下的地址租期,默认为1天 dhcp select glbal # 用来使能接口的DHCP服务器功能
九、 远程管理设备
1. Telnet连接
Telnet提供了一个交互式操作界面,允许终端远程登录到任何可以充当Telnet服务器的设备。
Telnet认证有两种模式:AAA模式,密码模式。
-
Telnet认证
1. 当配置用户界面的认证方式为AAA时,用户登录设备时需要首先输入登录用户名和密码才能登录。 2. 当配置用户界面的认证方式为password时,用户登录设备时需要首先输入登录密码才能登录。
-
AAA验证
AAA是认证(Authentication)、授权(Authorization)和计费(Accounting)的简称,是网络安全中进行访问控制的一种安全管理机制,提供认证、授权和计费三种安全服务。
-
Telnet连接
[server]user-interface vty 0 4 # 进入VTY接口 [server-ui-vty0-4]authentication-mode aaa # 设置验证方式 [server]aaa # 进入aaa [server-aaa]local-user lisi password cipher 123 # 设置账户及密码 Info: Add a new user. #添加成功提示 [server-aaa]local-user lisi service-type telnet # 设置登陆方式 [server-aaa]local-user lisi privilege level 15 # 设置优先级
2. SSH远程管理
- 密码验证方式
- AAA验证方式( authentication-mode)
3. SSH采用AAA验证方式
-
配置AAA
[server]user-interface vty 0 4 # 进入VTY接口 [server-ui-vty0-4]authentication-mode aaa # 设置验证方式 [server-ui-vty0-4]protocol inbound ssh # 启用SSH [server]aaa # 进入aaa [server-aaa]local-user lisi password cipher 123 # 设置账户及密码 Info: Add a new user. #添加成功提示 [server-aaa]local-user lisi service-type ssh # 设置登陆方式 [server-aaa]local-user lisi privilege level 15 # 设置优先级 [server]stelnet server enable # 启用SSH服务 [server]ssh user lisi authentication-type password #设置用户使用密码登录 ## ssh user lisi service-type stelnet 交换机需要配置
更多推荐
路由原理及静态路由
发布评论