第一篇:CCNA:IP访问控制列表(ACL)知识总结
访问控制列表
建立访问控制列表,可对数据流量进行简单的控制,以及通过这种控制达到一定程度的安全性,允许或拒绝数据包通过路由器,从而达到对数据包进行过滤的目的。
另外,也可以在VTY线路接口上使用访问控制列表,来保证telnet的连接的安全性。因为接口的数据流是有进口和出口两个方向的,所以在接口上使用访问控制列表也有进和出两个方向。
进方向的工作流程
进入接口的数据包——进方向的访问控制列表——判断是否匹配——不匹配,丢弃,匹配,进入路由表——判断是否有相应的路由条目——无,丢弃,有从相应接口转发出去
出口方向的工作流程
进入接口数据包——进入路由表,判断是否是相应的路由条目——无,丢弃,有,数据包往相应接口——判断出口是否有访问控制列表——无,数据被转发,有,判断条件是否匹配——不匹配,丢弃,匹配,转发。
比较看,尽可能使用进方向的访问控制列表,但是使用哪个方向的应根据实际情况来定。类型
标准访问控制列表
所依据的条件的判断条件是数据包的源IP地址,只能过滤某个网络或主机的数据包,功能有限,但方便使用。
命令格式
先在全局模式下创建访问控制列表
Router(config)#access-list access-list-number {permit or deny} soure {soure-wildcard} log 注:access-list-number 是访问控制列表号,标准的访问控制列表号为0~99;permit是语句匹配时允许通过,deny是语句不匹配时,拒绝通过。soure是源IP地址,soure-wildcard是通配符,log是可选项,生成有关分组匹配情况的日志消息,发到控制台
补:当表示某一特定主机时,soure {soure-wildcard}这项例如:192.168.1.1 0.0.0.255 可表示为host 192.168.1.1 创建了访问控制列表后,在接口上应用
Router(config-if)#ip access-group access-list-number {in or out} 扩展访问控制列表
扩展访问控制列表所依据的判断条件是目标、源ip地址、协议及数据所要访问的端口。由此可得出,在判断条件上,扩展访问控制列表具有比标准的访问控制列表更加灵活的优势,能够完成很多标准访问不能完成的工作。
命令格式
同样在全局模式下创建列表
Router(config)#access-list access-list-number {dynamic dynamic-name}{timeout mintes}{permit or deny}protocol soure soure-wildcard destination destination-wildcard {precdence precedence} {tos tos} {time-range time-range-name}
命名访问控制列表
cisco ios 软件11.2版本中引入了IP命名ACL,其允许在标准和扩展访问控制列表中使用名字代替数字来表示ACL编号。
创建命名ACL语法格式:
router(config)#ip access-list {extend or standard} name router(config-ext-nacl)#{permit or deny } protocols soure soure-wildcard {operator}destination destination-wildcard {operator}{established}
注:established 是可选项,只针对于tcp 协议
还有vty的限制,其ACL的建立与在端口上建立ACL一样,只是应用在vty ACL 到虚拟连接时,用命令access-class 代替命令access-group 放置ACL
一般原则:尽可能把扩展acl 放置在距离要被拒绝的通信流量近的地方。标准ACL由于不能指定目的地址,所以它们应该尽可能放置在距离目的地最近的地主。
第二篇:access-list(访问控制列表)总结
access-list(访问控制列表)总结
ACL的作用
ACL可以限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定数据包的优先级。
ACL提供对通信流量的控制手段。例如,ACL可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量。
ACL是提供网络安全访问的基本手段。如图1所示,ACL允许主机A访问人力资源网络,而拒绝主机B访问。
ACL可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞。例如,用户可以允许E-mail通信流量被路由,拒绝所有的Telnet通信流量。ACL的配置
ACL的配置分为两个步骤:
第一步:在全局配置模式下,使用下列命令创建ACL:
Router(config)# access-list access-list-number {permit | deny } {test-conditions}
其中,access-list-number为ACL的表号。人们使用较频繁的表号是标准的IP ACL(1—99)和扩展的IP ACL(100-199)。
第二步:在接口配置模式下,使用access-group命令ACL应用到某一接口上:
Router(config-if)# {protocol} access-group access-list-number {in | out }
其中,in和out参数可以控制接口中不同方向的数据包,如果不配置该参数,缺省为out。ACL在一个接口可以进行双向控制,即配置两条命令,一条为in,一条为out,两条命令执行的ACL表号可以相同,也可以不同。但是,在一个接口的一个方向上,只能有一个ACL控制。
值得注意的是,在进行ACL配置时,网管员一定要先在全局状态配置ACL表,再在具体接口上进行配置,否则会造成网络的安全隐患。访问控制列表使用目的:
1、限制网络流量、提高网络性能。例如队列技术,不仅限制了网络流量,而且减少了拥塞
2、提供对通信流量的控制手段。例如可以用其控制通过某台路由器的某个网络的流量
3、提供了网络访问的一种基本安全手段。例如在公司中,允许财务部的员工计算机可以访问财务服务器而拒绝其他部门访问财务服务器
4、在路由器接口上,决定某些流量允许或拒绝被转发。例如,可以允许FTP的通信流量,而拒绝TELNET的通信流量。
工作原理:
ACL中规定了两种操作,所有的应用都是围绕这两种操作来完成的:允许、拒绝
注意:ACL是CISCO IOS中的一段程序,对于管理员输入的指令,有其自己的执行顺序,它执行指令的顺序是从上至下,一行行的执行,寻找匹配,一旦匹配则停止继续查找,如果到末尾还未找到匹配项,则执行一段隐含代码——丢弃DENY.所以在写ACL时,一定要注意先后顺序。ACL是一组判断语句的集合,它主要用于对如下数据进行控制:
1、入站数据;
2、出站数据;
3、被路由器中继的数据
因为标准的ACL只能针对源进行控制,如果把它放在离源最近的地方,那么就会造成不必要的数据包丢失的情况,一般将标准ACL放在离目标最近的位置.简单比较以下标准和扩展ACL
标准ACL仅仅只针对源进行控制
扩展ACL可以针对某种协议、源、目标、端口号来进行控制
从命令行就可看出
标准:
Router(config)#access-list list-number
扩展:
Router(config)#access-list list-number protocol source {source-mask destination destination-mask} [operator operand] [established] [log]
Protocol—用来指定协议类型,如IP、TCP、UDP、ICMP以及IGRP等
Source and destination—源和目的,分别用来标示源地址及目的地址
Source-mask and destination-mask—源和目的的通配符掩码
Operator operand—It,gt,eq,neq(分别是小于、大于、等于、不等于)和一个端口号
Established—如果数据包使用一个已建连接(例如,具有ACK位组),就允许TCP信息通过 ACL不能对穿越路由器的广播流量作出有效控制。
ACL的另一个作用,那就是过滤穿越路由器的流量。这里要注意了,是“穿越”路由器的流量才能被ACL来作用,但是路由器本身产生的流量,比如路由更新报文等,ACL是不会对它起任何作用的:因为ACL不能过滤由路由器本身产生的流量.为了避免过多的查表,所以扩展ACL一般放置在离源最近的地方 PING使用的是ICMP协议
路由器常用命令大全 Access-enable允许路由器在动态访问列表中创建临时访问列表入口 Access-group把访问控制列表(ACL)应用到接口上 Access-list定义一个标准的IP ACL Access-template在连接的路由器上手动替换临时访问列表入口 Appn向APPN子系统发送命令 Atmsig 执行ATM信令命令 B 手动引导操作系统 Bandwidth 设置接口的带宽 Banner motd 指定日期信息标语 Bfe 设置突发事件手册模式
Boot system 指定路由器启动时加载的系统映像 Calendar 设置硬件日历 Cd 更改路径
Cdp enable 允许接口运行CDP协议 Clear 复位功能
Clear counters 清除接口计数器
Clear interface 重新启动接口上的件逻辑
Clockrate 设置串口硬件连接的时钟速率,如网络接口模块和接口处理器能接受的速率 Cmt 开启/关闭FDDI连接管理功能 Config-register 修改配置寄存器设置
Configure 允许进入存在的配置模式,在中心站点上维护并保存配置信息 Configure memory 从NVRAM加载配置信息 Configure terminal 从终端进行手动配置 Connect 打开一个终端连接 Copy 复制配置或映像数据
Copy flash tftp 备份系统映像文件到TFTP服务器
Copy running-config startup-config 将RAM中的当前配置存储到NVRAM Copy running-config tftp 将RAM中的当前配置存储到网络TFTP服务器上 Copy tftp flash 从TFTP服务器上下载新映像到Flash Copy tftp running-config 从TFTP服务器上下载配置文件 Debug 使用调试功能
Debug dialer 显示接口在拨什么号及诸如此类的信息 Debug ip rip 显示RIP路由选择更新数据
Debug ipx routing activity 显示关于路由选择协议(RIP)更新数据包的信息 Debug ipx sap 显示关于SAP(业务通告协议)更新数据包信息
Debug isdn q921 显示在路由器D通道ISDN接口上发生的数据链路层(第2层)的访问过程 Debug ppp 显示在实施PPP中发生的业务和交换信息 Delete 删除文件
Deny 为一个已命名的IP ACL设置条件
Dialer idle-timeout 规定线路断开前的空闲时间的长度 Dialer map 设置一个串行接口来呼叫一个或多个地点
Dialer wait-for-carrier-time 规定花多长时间等待一个载体 Dialer-group 通过对属于一个特定拨号组的接口进行配置来访问控制
Dialer-list protocol 定义一个数字数据接受器(DDR)拨号表以通过协议或ACL与协议的组合来控制控制拨号
Dir 显示给定设备上的文件 Disable 关闭特许模式 Disconnect 断开已建立的连接 Enable 打开特许模式
Enable password 确定一个密码以防止对路由器非授权的访问
Enable password 设置本地口令控制不同特权级别的访问
Enable secret 为enable password命令定义额外一层安全性(强制安全,密码非明文显示)Encapsulation frame-relay 启动帧中继封装
Encapsulation novell-ether 规定在网络段上使用的Novell独一无二的格式 Encapsulation PPP 把PPP设置为由串口或ISDN接口使用的封装方法
Encapsulation sap 规定在网络段上使用的以太网802.2格式Cisco的密码是sap End 退出配置模式
Erase 删除闪存或配置缓存
Erase startup-config 删除NVRAM中的内容
Exec-timeout 配置EXEC命令解释器在检测到用户输入前所等待的时间 Exit 退出所有配置模式或者关闭一个激活的终端会话和终止一个EXEC Exit 终止任何配置模式或关闭一个活动的对话和结束EXEC format 格式化设备
Frame-relay local-dlci 为使用帧中继封装的串行线路启动本地管理接口(LMI)Help 获得交互式帮助系统 History 查看历史记录
Hostname 使用一个主机名来配置路由器,该主机名以提示符或者缺省文件名的方式使用 Interface 设置接口类型并且输入接口配置模式 Interface 配置接口类型和进入接口配置模式 Interface serial 选择接口并且输入接口配置模式 Ip access-group 控制对一个接口的访问 Ip address 设定接口的网络逻辑地址
Ip address 设置一个接口地址和子网掩码并开始IP处理 Ip default-network 建立一条缺省路由 Ip domain-lookup 允许路由器缺省使用DNS Ip host 定义静态主机名到IP地址映射
Ip name-server 指定至多6个进行名字-地址解析的服务器地址 Ip route 建立一条静态路由
Ip unnumbered 在为给一个接口分配一个明确的IP地址情况下,在串口上启动互联网协议(IP)的处理过程
Ipx delay 设置点计数
Ipx ipxwan 在串口上启动IPXWAN协议
Ipx maximum-paths 当转发数据包时设置Cisco IOS软件使用的等价路径数量
Ipx network 在一个特定接口上启动互联网数据包交换(IPX)的路由选择并且选择封装的类型(用帧封装)Ipx router 规定使用的路由选择协议 Ipx routing 启动IPX路由选择
Ipx sap-interval 在较慢的链路上设置较不频繁的SAP(业务广告协议)更新 Ipx type-20-input-checks 限制对IPX20类数据包广播的传播的接受
Isdn spid1 在路由器上规定已经由ISDN业务供应商为B1信道分配的业务简介号(SPID)Isdn spid2 在路由器上规定已经由ISDN业务供应商为B2信道分配的业务简介号(SPID)Isdntch-type 规定了在ISDN接口上的中央办公区的交换机的类型 Keeplive 为使用帧中继封装的串行线路LMI(本地管理接口)机制 Lat 打开LAT连接
Line 确定一个特定的线路和开始线路配置 Line concole 设置控制台端口线路
Line vty 为远程控制台访问规定了一个虚拟终端 Lock 锁住终端控制台
Login 在终端会话登录过程中启动了密码检查 Login 以某用户身份登录,登录时允许口令验证 Logout 退出EXEC模式
Mbranch 向下跟踪组播地址路由至终端 Media-type 定义介质类型
Metric holddown 把新的IGRP路由选择信息与正在使用的IGRP路由选择信息隔离一段时间 Mrbranch 向上解析组播地址路由至枝端 Mrinfo 从组播路由器上获取邻居和版本信息 Mstat 对组播地址多次路由跟踪后显示统计数字 Mtrace 由源向目标跟踪解析组播地址路径 Name-connection 命名已存在的网络连接 Ncia 开启/关闭NCIA服务器
Network 把一个基于NIC的地址分配给一个与它直接相连的路由器把网络与一个IGRP的路由选择的过程联系起来在IPX路由器配置模式下,在网络上启动加强的IGRP Network 指定一个和路由器直接相连的网络地址段 Network-number 对一个直接连接的网络进行规定 No shutdown 打开一个关闭的接口 Pad 开启一个X.29 PAD连接
Permit 为一个已命名的IP ACL设置条件
Ping 把ICMP响应请求的数据包发送网络上的另一个节点检查主机的可达性和网络的连通性对网络的基本连通性进行诊断
Ping 发送回声请求,诊断基本的网络连通性 Ppp 开始IETF点到点协议
Ppp authentication 启动Challenge握手鉴权协议(CHAP)或者密码验证协议(PAP)或者将两者都启动,并且对在接口上选择的CHAP和PAP验证的顺序进行规定
Ppp chap hostname 当用CHAP进行身份验证时,创建一批好像是同一台主机的拨号路由器
Ppp chap password 设置一个密码,该密码被发送到对路由器进行身份验证的主机命令对进入路由器的用户名/密码的数量进行了限制
Ppp pap sent-username 对一个接口启动远程PAP支持,并且在PAP对同等层请求数据包验证过程中使用sent-username和password Protocol 对一个IP路由选择协议进行定义,该协议可以是RIP,内部网关路由选择协议(IGRP),开放最短路径优先(OSPF),还可以是加强的IGRP Pwd 显示当前设备名
Reload 关闭并执行冷启动;重启操作系统 Rlogin 打开一个活动的网络连接
Router 由第一项定义的IP路由协议作为路由进程,例如:router rip 选择RIP作为路由协议 Router igrp 启动一个IGRP的路由选择过程 Router rip 选择RIP作为路由选择协议 Rsh 执行一个远程命令 Sdlc 发送SDLC测试帧 Send 在tty线路上发送消息
Service password-encryption 对口令进行加密 Setup 运行Setup命令 Show 显示运行系统信息
Show access-lists 显示当前所有ACL的内容 Show buffers 显示缓存器统计信息 Show cdp entry 显示CDP表中所列相邻设备的信息 Show cdp interface 显示打开的CDP接口信息 Show cdp neighbors 显示CDP查找进程的结果
Show dialer 显示为DDR(数字数据接受器)设置的串行接口的一般诊断信息 Show flash 显示闪存的布局和内容信息
Show frame-relay lmi 显示关于本地管理接口(LMI)的统计信息 Show frame-relay map 显示关于连接的当前映射入口和信息
Show frame-relay pvc 显示关于帧中继接口的永久虚电路(pvc)的统计信息 Show hosts 显示主机名和地址的缓存列表
Show interfaces 显示设置在路由器和访问服务器上所有接口的统计信息 Show interfaces 显示路由器上配置的所有接口的状态 Show interfaces serial 显示关于一个串口的信息 Show ip interface 列出一个接口的IP信息和状态的小结 Show ip interface 列出接口的状态和全局参数
Show ip protocols 显示活动路由协议进程的参数和当前状态 Show ip route 显示路由选择表的当前状态 Show ip router 显示IP路由表信息
Show ipx interface 显示Cisco IOS软件设置的IPX接口的状态以及每个接口中的参数 Show ipx route 显示IPX路由选择表的内容 Show ipx servers 显示IPX服务器列表 Show ipx traffic 显示数据包的数量和类型
Show isdn active 显示当前呼叫的信息,包括被叫号码、建立连接前所花费的时间、在呼叫期间使用的自动化操作控制(AOC)收费单元以及是否在呼叫期间和呼叫结束时提供AOC信息
Show isdn ststus 显示所有isdn接口的状态、或者一个特定的数字信号链路(DSL)的状态或者一个特定isdn接口的状态
Show memory 显示路由器内存的大小,包括空闲内存的大小 Show processes 显示路由器的进程 Show protocols 显示设置的协议
Show protocols 显示配置的协议。这条命令显示任何配置了的第3层协议的状态 Show running-config 显示RAM中的当前配置信息
Show spantree 显示关于虚拟局域网(VLAN)的生成树信息
Show stacks 监控和中断程序对堆栈的使用,并显示系统上一次重启的原因 Show startup-config 显示NVRAM中的启动配置文件 Show ststus 显示ISDN线路和两个B信道的当前状态
Show version 显示系统硬件的配置,软件的版本,配置文件的名称和来源及引导映像 Shutdown 关闭一个接口 Telnet 开启一个telect连接
Term ip 指定当前会话的网络掩码的格式
Term ip netmask-format 规定了在show命令输出中网络掩码显示的格式 Timers basic 控制着IGRP以多少时间间隔发送更新信息 Trace 跟踪IP路由
Username password 规定了在CHAP和PAP呼叫者身份验证过程中使用的密码 Verify 检验flash文件 Where 显示活动连接
Which-route OSI路由表查找和显示结果 Write 运行的配置信息写入内存,网络或终端 Write erase 现在由copy startup-config命令替换 X3 在PAD上设置X.3参数 Xremote 进入XRemote模式
第三篇:访问列表3p原则总结
访问控制列表(Access Control List,ACL)是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,如IP、IPX、AppleTalk等。这张表中包含了匹配关系、条件和查询语句,表只是一个框架结构,其目的是为了对某种访问进行控制。ACL介绍
信息点间通信和内外网络的通信都是企业网络中必不可少的业务需求,但是为了保证内网的安全性,需要通过安全策略来保障非授权用户只能访问特定的网络资源,从而达到对访问进行控制的目的。简而言之,ACL可以过滤网络中的流量,是控制访问的一种网络技术手段。
ACL的定义也是基于每一种协议的。如果路由器接口配置成为支持三种协议(IP、AppleTalk以及IPX)的情况,那么,用户必须定义三种ACL来分别控制这三种协议的数据包。ACL的作用
ACL可以限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定数据包的优先级。
ACL提供对通信流量的控制手段。例如,ACL可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量。
ACL是提供网络安全访问的基本手段。ACL允许主机A访问人力资源网络,而拒绝主机B访问。
ACL可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞。例如,用户可以允许E-mail通信流量被路由,拒绝所有的Telnet通信流量。
例如:某部门要求只能使用 WWW 这个功能,就可以通过ACL实现;又例如,为了某部门的保密性,不允许其访问外网,也不允许外网访问它,就可以通过ACL实现。ACL 3p原则
记住 3P 原则,您便记住了在路由器上应用 ACL 的一般规则。您可以为每种协议(per protocol)、每个方向(per direction)、每个接口(per interface)配置一个 ACL:
每种协议一个 ACL 要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
每个方向一个 ACL 一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。
每个接口一个 ACL 一个 ACL 只能控制一个接口(例如快速以太网 0/0)上的流量。
ACL 的编写可能相当复杂而且极具挑战性。每个接口上都可以针对多种协议和各个方向进行定义。示例中的路由器有两个接口配置了 IP、AppleTalk 和 IPX。该路由器可能需要 12 个不同的 ACL — 协议数(3)乘以方向数(2),再乘以端口数(2)。ACL的执行过程
一个端口执行哪条ACL,这需要按照列表中的条件语句执行顺序来判断。如果一个数据包的报头跟表中某个条件判断语句相匹配,那么后面的语句就将被忽略,不再进行检查。
数据包只有在跟第一个判断条件不匹配时,它才被交给ACL中的下一个条件判断语句进行比较。如果匹配(假设为允许发送),则不管是第一条还是最后一条语句,数据都会立即发送到目的接口。如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃。这里要注意,ACL不能对本路由器产生的数据包进行控制。ACL的分类
目前有两种主要的ACL:标准ACL和扩展ACL。其他的还有标准MAC ACL、时间控制ACL、以太协议 ACL、IPv6 ACL等。
标准的ACL使用 1 ~ 99 以及1300~1999之间的数字作为表号,扩展的ACL使用 100 ~ 199以及2000~2699之间的数字作为表号。
标准ACL可以阻止来自某一网络的所有通信流量,或者允许来自某一特定网络的所有通信流量,或者拒绝某一协议簇(比如IP)的所有通信流量。
扩展ACL比标准ACL提供了更广泛的控制范围。例如,网络管理员如果希望做到“允许外来的Web通信流量通过,拒绝外来的FTP和Telnet等通信流量”,那么,他可以使用扩展ACL来达到目的,标准ACL不能控制这么精确。
在标准与扩展访问控制列表中均要使用表号,而在命名访问控制列表中使用一个字母或数字组合的字符串来代替前面所使用的数字。使用命名访问控制列表可以用来删除某一条特定的控制条目,这样可以让我们在使用过程中方便地进行修改。在使用命名访问控制列表时,要求路由器的IOS在11.2以上的版本,并且不能以同一名字命名多个ACL,不同类型的ACL也不能使用相同的名字。
随着网络的发展和用户要求的变化,从IOS 12.0开始,思科(CISCO)路由器新增加了一种基于时间的访问列表。通过它,可以根据一天中的不同时间,或者根据一星期中的不同日期,或二者相结合来控制网络数据包的转发。这种基于时间的访问列表,就是在原来的标准访问列表和扩展访问列表中,加入有效的时间范围来更合理有效地控制网络。首先定义一个时间范围,然后在原来的各种访问列表的基础上应用它。
基于时间访问列表的设计中,用time-range 命令来指定时间范围的名称,然后用absolute命令,或者一个或多个periodic命令来具体定义时间范围。ACL 常见问题
1)“ACL 的最后一条语句都是隐式拒绝语句” 是什么意思?
每个 ACL 的末尾都会自动插入一条隐含的 deny 语句,虽然ACL中看不到这条语句,它仍起作用。隐含的 deny 语句会阻止所有流量,以防不受欢迎的流量意外进入网络。
2)配置ACL后为什么没有生效?
在创建访问控制列表之后,必须将其应用到某个接口才可开始生效。ACL 控制的对象是进出接口的流量。
第四篇:网络层(IP层)知识总结
网络层
1.网络层提供的两种服务
虚电路(VC):面向链接的,由网络确保提供可靠的服务。借鉴与电信网络。两个计算机通信前先建立链接。
数据报服务:网络层向上只提供简单灵活的,无连接的,尽最大努力交付数据报服务。网络层不提供服务质量承诺。
依据:计算机比电话机智能,有很强的差错处理能力。由于传输网络不提供端到端的可靠服务,因此路由器可以设计的简单,价格低廉。
2.网际协议IP 网际协议IP是TCP/IP体系中最主要的协议之一。IP协议配套使用的有: 地址解析协议ARP(Address Resolution Protocol) 逆地址解析协议RARP(Reverse Address Resolution Protocol) 网际控制报文协议ICMP(Internet Control Message Protocol) 网际组织管理协议IGMP(Internet Group Management Protocol)ICMP和IGMP使用IP协议 IP协议使用ARP和RARP协议
IP协议实现网络互连,使参与互连的性能各异的网络从用户看起来好像是一个统一的网络
3.什么是虚拟互联网络(逻辑互联网络)互连起来的物理网络的异构性本来是客观存在的,但利用IP协议可以使这些性能各异的网络在网络层看起来好像是一个统一的网络。
网络的异构性:由于用户需求不同,网络技术发展,导致网络体系中存在不同性能,不同网络协议的网络。(那么如何使这种存在差别的网络连接到一起,感觉像是一种网络没有障碍的通信——>使用相同的网际协议IP,构成一个虚拟互联的网络。比如我们通信的过程中,有段网络使用了卫星链路,有的使用了无限局域网,但是IP协议可以使信息在这些网络传输)。
用来连接异构网络的设备:路由器。
4.将网络互连起来要使用一些中间设备,根据中间设备所在层次不同分为:
(1)物理层使用的中间设备转发器(repeater)(2)数据链路层使用的中间设备网桥或桥接器(bridge)(3)网络层使用的中间设备路由器(router)(4)网络层以上使用的中间设备网关(gateway)
转发器和网桥只是把网路扩大(因此,由转发器和网桥连接起来的若干个局域网仍属于一个网路,只能有一个网路号(主机号不同))路由器实现网络互连(路由器的每一个接口都有不同的网络号IP地址)5.IP地址和物理地址
物理地址:数据链路层和物理层使用的地址
IP地址:网络层和以上各层使用的地址,是一种逻辑地址(因为IP使用软件实现的)1.IP地址放在IP数据报首部,硬件地址则放在MAC帧首部
2.在局域网中,只能看见MAC帧。MAC帧在不同的网络上传送时,其MAC帧首部的源地址和目的地址是要发生变化的。
3.在IP层抽象的互联网上只能看到IP数据报。4.IP地址有32位,局域网的硬件地址是48位
6.物理地址与IP地址的匹配<——>ARP与RARP(由物理地址怎样找到对应的IP地址/由IP地址怎样找到对应的物理地址)由于DHCP已经包含RARP现在很少单独使用RARP ARP:在主机ARP高速缓冲中存放一个由IP地址到硬件地址的映射表,并且这个表还动态更新(新增和超时删除)。映射表中存放本局域网各主机和路由器IP地址到硬件地址的映射表。
同一局域网中,ARP解决IP地址到硬件地址映射问题:
当主机A向本局域网内某主机B发送IP报,先在自己的ARP高速缓冲中查看有无主机B的IP地址。如果有,根据IP地址找到对应的硬件地址,将硬件地址写入MAC帧中,然后把该MAC帧发往此硬件地址。
当B刚入网,或A刚开机ARP高速缓冲中是空的,则A自动运行ARP,找出B的硬件地址。
1)ARP进程在本局域网广播发送一个ARP请求分组,主要内容是“我的IP地址是209.0.0.5,硬件地址是00-00-C0-15-AD-18,我想知道IP地址为209.0.0.6主机的硬件地址”。
2)本局域网所有主机都收到此分组,但是只有目的IP会写入自己的硬件地址,以普通的单播ARP响应分组响应。同时,B也会把A的IP地址与硬件地址写入自己的ARP高速缓冲中。
3)A收到后,将B的IP和硬件地址写入ARP高速缓冲中。
不同局域网中,ARP解决IP地址到硬件地址映射问题:
A无法直接找到远程主机B的硬件地址。A首先将A所在局域网的路由器IP解析为硬件地址,将IP数据报传送到路由器。路由器从转发表中找到下一跳路由,同时用ARP解析出下一跳路由的硬件地址…直至最后。ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。为什么这样说?当主机A要与另一个网络主机B通信时,首先A是通过ARP找到路由器R1,这是一次ARP的使用,即在A和R1的局域网中使用,由R1找B或与B相连的路由器R2,是在R1和B或R1和R2的局域网中使用的ARP,这是又一次使用ARP,所以说ARP是解决同一个局域网上的IP地址和硬件地址的映射问题。
7.ARP高速缓冲每一个映射项目都设置了生存时间。超过生存时间的项目就删除掉。B的网络适配器(网卡)坏掉等都会造成B的硬件地址变化。8.既然在网络链路上传递的帧最终是按照硬件地址找到目的主机的,那么为什么不直接使用硬件地址进行通信,而是使用抽象的IP地址并调用ARP来寻找相应的硬件地址?(IP地址的意义)
因为全世界存在各种各样的网络,使用不同的硬件地址。要使这些异构的网络能够相互通信需要非常复杂的硬件地址转换工作,这由用户主机来完成几乎是不可能的,有了统一的IP地址,通信就像连在一个网络上,并且ARP工作过程是由软件自动完成的。
9.网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功机会,使用ICMP(Intetnet Control Message Protocol),ICMP不是高层协议,而是IP层协议。
ICMP分为两种:ICMP差错报告报文和 ICMP询问报文
ICMP询问报文请求报文的应用ping应用层直接使用网络层ICMP的一个例子,没有通过TCP或UDP ICMP差错报告报文时间超时的应用traceroute IP数据报中包含不可交付的UDP
10.路由选择协议(核心:路由算法):使用何种方式获得路由表中各项目
由算法能否随网络的通信量或拓扑自适应进行调整分为
静态路由选择策略:非自适应路由选择,简单,开销小,不能适应网络变化,适合简单小网络
动态路由选择策略:自适应、复杂,开销大,能适应网络变化
因特网采用的路由选择协议:自适应(动态的)、分布式路由选择协议
11.自治系统(AS):单一技术管理下的一组路由器
即一个自治系统内使用的是相同的路由选择策略。由路由选择协议是在自治系统内使用还是系统外使用分为:内部网关协议和外部网关协议。(由历史原因称为网关协议其实是路由器协议)
内部网关协议(IGP):RIP和OSPF(力求最佳路由)
外部网关协议(EGP):BGP-4(力求较好路由,不兜圈)
12.路由信息协议RIP(Routing Information Protocol)RIP协议让一个自治系统内所有路由器(交换信息时只和相邻路由器交换)都和自己相邻的路由器定期交换信息,并不断更新其路由表,使得每一个路由器到每一个目的网络的路由器都是最短的。
基于距离向量路由选择协议最大特点简单 缺点:限制网络规模,最大距离为15 每次交换完整路由表,随网络扩大,开销增大
“坏消息传的慢”
跳数:即到目的网络的距离(与路由器直接相连的网络距离为1,RIP允许一条路径最多包含15个路由器,因此跳数为16表示不可达)
RIP协议特点(与哪些路由器交换信息,交换什么信息,什么时候交换)
1)仅与相邻路由器交换信息
2)交换信息为当前本路由器所知道的全部信息。包括,我到本自治系统所有网络的距离,到每个网络的下一跳路由(只知道下一跳路由,不知道整个网络拓扑结构)3)按固定时间交换:30秒
距离向量算法:
首先,对每一个相邻路由器发送RIP报文(使用了UDP,即RIP报文+UDP首部+IP首部构成IP数据报),报文包括“目的网络N,距离d,下一跳路由是R”
然后,接受到的路由器进行分析: 1)对地址为X的路由器发来的报文,先将所有报文的下一跳路由改为X,并将所有距离+1。(对于本网络来说,如果准备按X发来的报文项目通信目的网络,则须经过X,即下一跳路由为X,而与目的网络的距离为X到目的网络的距离+1)。2)对修改后的报文,与自己原路由表对比:
a.原路由表中,没有此目的网络N,直接添加
b.原路由表有目的网络N,比较下一跳路由地址,若原来下一跳路由地址也是X,直接更新(网络状态可能发生变化,因此以此次新信息为准)c.若下一跳地址不是X,则比较距离d,以小的为准 d.否则什么也不做
3)若3分钟没有收到相邻路由器的更新路由表,则把此相邻路由器距离标为16(不可达)4)返回
一个RIP报文最多包括25个路由,RIP报文最大长度4(首部)+25*20(一个路由器信息20字节)= 504字节
13.开放最短路径优先OSPF(Open Shortest Path First)最主要特征:使用分布式链路状态协议
OSPF协议特点(与RIP比较)1)向本自治系统所有路由器发送信息,但是使用洪泛法发送,路由器向所有相邻的路由器发送信息,而每一个相邻路由器也会把此信息发送给其相邻的路由器(不发给刚刚发来信息的路由器),这样,整个系统都能收到。(RIP只给相邻发送)2)发送信息:相邻所有路由器链路状态。包括本路由器和哪些路由器相邻,以及该链路的“度量”(费用,距离,时延,带宽),可以知道整个网络拓扑。(RIP只发送到所有网络距离和下一跳路由)
3)只有链路状态发生变化,才以洪泛法再次发送信息。(RIP定期)
OSPF将自治系统划分为更小范围,区域。OSPF只在自己区域交换信息,而不再是整个自治系统。减少整个网络上通信量,此时只知道本区域网络拓扑。
OSPF报文直接使用IP数据报(OSPF+IP首部)
OSPF五种分组类型
1)类型1,问候分组,确定邻站可达性(10秒交换一次)2)类型2,数据库描述分组,向邻站发送自己的链路状态数据库摘要信息 3)类型3,链路状态请求分组,向对方请求发送某些链路状态详细信息 4)类型4,链路状态更新分组,用洪泛法全网更新链路状态协议核心部分 5)类型5,链路状态确认,对更新的确认
14.外部网关协议——BGP(边界网管协议)BGP是不同AS的路由器之间交换路由信息的协议
不同的AS为什么不能使用内部网关协议:
1)英特网规模太大,使得AS之间路由选择非常困难。主干网已超过5万路由前缀,使用链路状态数据库(OSPF方法),用Dijkstra计算花费时间也很长。不同的AS中,度量的量度也不一样,不能通用。
2)AS之间的路由选择协议必须考虑相关策略。不同的网络性能差距较大,根据最短路径找出的路径,可能并不是最快的(在同一个AS中,网络相差不大,最短路径基本实现最快速度)。并且AS间路由选择也应考虑到政治,安全和经济,允许使用多种路由选择策略,如我国国内传送数据,尽量不要经过其他国家,尤其是可能造成威胁的国家。
BGP只是力求寻找一条能够到达目的网络比较好的路由,而非一条最佳采用路径向量路由选择协议
BGP发言人:每一个AS至少选择一个作为本AS的BGP Speaker,一般是边界路由器,该路由器代表整个AS与其他AS交换信息。一个BGP Speaker与其他AS的BGP Speaker交换路由信息,首先建立TCP连接(端口号179),然后交换报文建立会话,使用TCP为了提供可靠的服务。相邻的两个Speaker成为邻站会对等站。
每一个Speaker除了运行BGP,还要运行RIP或OSPF
BGP的路由表(与RIP相似)包含
目的网络前缀下一跳路由到达目的网络所要经过AS序列(RIP是跳数)BGP在路由反生变化时更新路由表有变化的部分 BGP4种报文(TCP报文)1)OPEN(打开)报文,与邻站建立关系,通信初始化
2)UPDATE(更新)报文,通告某一路由的信息,更新路由信息核心内容
每个报文只能宣布增加1个新路由,但可以宣布撤销多个。
3)KEEPALIVE(保活)报文,周期性保持与邻站的连同 4)NOTIFICATION(通知)报文,发送检测差错
两个邻站属于不同AS,交换信息前先建立链接(某个路由器可能因为负荷过高而不愿通信),先发送OPEN,建立连接,发送KEEPALIVE(30秒一个,防止开销过大,只用BGP的首部19字节),保持连接,在用UPDATE更新信息。
15.路由器的结构
路由器:一种具有多个输入端口和多个输出端口的专用计算机,其任务就是转发分组(转发分组正是网络层的主要工作)
路由器结构可划分两大部分:路由选择+
分组转发
路由选择:控制部分,核心部件为路由选择处理机任务是根据所选定的路由选择协议构造出路由表,并不断维护路由表。
分组转发:三部分交换结构、一组输入端口和一组输出端口(此处为硬件端口,与运输层端口不同)
交换结构的作用就是根据转发表对分组进行处理,将某个输入端进入的分组从一个合适的端口转发出去,交换结构本身就是一种网络。
交换的方式:通过存储器、通过总线、通过互联网络
16.IP多播
单播(一对一)
多播(也称组播,实现一对多,但是是对选择好的多个用户播送)
广播(一对多,无法选择特定用户,对所有用户都播送,DHCP获取IP使用了广播,ARP寻找目的主机硬件地址也使用了广播)
多播可以节约网络资源,能够运行多播协议的路由器称为多播路由器 多播组的标识符就是IP地址中的D类地址(与广播的差异)。前四位1110 D类地址的范围
224.0.0.0——239.255.255.255,共可标识228个多播组 多播数据报与一般数据报的区别使用D类地址作为目的地址,并且首部协议字段值为2,表明使用IGMP协议(多播地址只用用于目的地址,不能用于源地址,对多播不产生ICMP差错报文,PING多播地址,不会受到响应)
17.IP多播的种类
a)只在本局域网上进行硬件多播,b)在因特网范围内进行多播
在硬件多播中,以太网多播地址范围01-00-5E-00-00-00到01-00-5E-7F-FF-FF只由低23位用于多播,与IPD类地址低23位对映,因此多播IP地址与以太网硬件地址的映射不是唯一的。当主机收到多播数据,还要在IP层利用软件进行过滤,把不是本机接受的数据丢弃。
IP多播需要两种协议:IGMP(网际组管理协议)和多播路由选择协议
IGMP是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出可某个多播组。IGMP使用IP数据报传送报文。
IGMP工作阶段:
1)有主机新加入多播组,向多播组地址发送IGMP报文。
2)本地多播路由器周期性检测本地局域网是否有主机处于多播组。多播数据报的发送者和接受者都不知道一个多播组有多少成员
只有IGMP协议,无法把多播数据报以最小代价传送给组成员,此时需要多播路由选择协议。
多播路由选择协议的特点:
1)多播转发必须动态适应组成员变化。只要有成员增加或退出及应更新,而普通的单播路由选择协议只在网络拓扑发生变化时才更新。2)多播路由转发协议转发数据报不仅仅要考虑目的地址。3)多播数据报的发送者可以使组成员,也可以不是。多播路由选择协议转发数据报使用的方法
1)洪泛法与减除(最小生成树,最短路径),适于较小多播组
2)隧道技术,对于多播组位置地理上分散情况使用,远距离传送在数据报外 再加普通数据报首部单播。
3)核心发现技术。多播组在较大的范围内变化也适用。
18.19.VPN(虚拟专用网)与NAT(网络地址转换)由于IP地址短缺,一个机构能申请到的IP地址小于本机构主机数,而且也不是所有主机都需连如因特网。但是这些主机还需要内部通信,从原则上讲,内部通信的主机可以由本机构自行分配IP地址(本地地址),但如果自行分配的地址与因特网上实际分配的有冲突,出现地址二义性问题。
因此,可以指明一些专用地址,这些地址只能机构内部通信,因特网上所有路由器,对目的地址是专用地址的数据报不转发。
全世界有很多专用互联网络具有相同IP地址,但这些地址只在本地内部使用,不会引起麻烦,专用IP地址也叫可重用地址。
对于很大的机构相距比较远,可以利用公用的因特网作为本机构专用网之间的通信载体,这样的专用网成为虚拟专用网VPN(相比但购买一条通信线路作为专用简单,节省)
VPN不同网点之间通过互联网通信,所以对这些数据加密,需要专门软硬件。VPN通信:每个网点至少有一个路由器有合法IP地址,这样一个内部主机向另一个主机通信时,开始使用专用地址,到达这个路由器时转换为合法到的IP(将原数据报加密,变为内部数据报,在外面再加一层数据报首部),到达另一个网点,由其路由器将合法IP转换为这个网点的本地IP。
NAT:解决VPN上多个主机想同时访问互联网。
在专用网链接因特网的路由器上安装NAT软件,这样的路由器叫做NAT路由器。一个NAT路由器至少有1个合法IP地址。这样有n个合法地址的NAT路由器即可满足n个主机同时访问互联网(转换地址)。
NAPT,将IP地址与端口号一起转换,这样当本地地址中通信具有两个相同端口号时,可以转换为同一个合法的IP,但是端口号不同。这样两个主机可以使用同一个合法的IP
20.IP数据报格式
1)版本(4位):目前是v4,以后可能IPv6
2)首部长度(4位):可表示十进制15,但是这个字段单位是32位(4字节),即当首部长度为15时,表示此首部长度为15*4字节最常用的首部20字节(0101)。数据部分总是从4字节整数倍开始。固定首部最大值是希望用户节省开销,缺点,容易不够用。
3)区分服务(8位):一般不使用
4)总长度(16位):字段单位字节,即数据报最大长度为216-1=65535字节。
由于数据链路层都有自己的最大传输单元MTU,所以IP数据报封装链路层帧时,数据报最大长度不能超过MTU。一般IP数据报长度不长于1500字节,但为了效率,所有主机和路由器处理的IP报不小于576(512+60?)字节。当IP报长度超过MTU,就需要分片,这时首部总长度字段指的是分片后总长度。
5)标识(16位):每产生一个IP报,标识加1。为了分片后区分到底哪几个片在以后组装时成为一个。(IP报是无连接的,接收也不存在顺序,所以此标识不是为了标识接受顺序)
6)标志(3位):只有两个有意义
MF: =1表示此分片后还有分片,=0表示此分片后无分片 DF:此报不能分片。DF=0允许分片
7)片偏移(13位):分片后,此片相对原片位移。此字段单位8字节,所以片偏移以8字节为单位。也就是说每个分片一定是8字节整数倍。
8)生存时间(8位):TTL,9)协议(8位):使目的主机知道此报上交给谁
10)首部检验和(16位):
11)源地址(32位)
12)目的地址(32位)
21.关于IP首部检验和
IP/ICMP/IGMP/TCP/UDP 等协议检验和算法一样,但IP只检验首部,TCP/UDP会检验首部+数据。
检验方式:二进制反码求和(若最高位产生进位,则进位和结果相加)此处以UDP首部检验和为例(考虑数据部分)
16~1列每列1的个数 2 4 1 3 5 4 4 5 0 4 2 4 7 7 7 9 1)首先是第1列9个1相加得1001(9),低位1保留,其余三位分别向上进位,即0向第二列进位,0向第3列进位,1向第4列进位。
2)然后是第2列7个1和第1列进位的0相加,为7(0111),同理低位1保留,其余三位向上进位。
3)第3列7个1和第1列进位0,第2列进位1相加得8(1000),低位0保留,高位进位 ……
4)最后第15列结果为0110,16列结果为0011,两个进位1的和(10)会与结果相加 5)计算结果为10010110 11101011与15、16列进位和10相加结果为10010110 11101101 然后求反码。
22.23.