ip基础知识
更新时间:2024-04-11 12:28:01 阅读量: 综合文库 文档下载
LAN定义:通常指几公里以内的,可以通过某种介质互联的计算机、打印机、modem或其他设备的集合。
特点:距离短、延迟小、数据速率高、传输可靠。
WAN定义:在大范围区域内提供数据通信服务,主要用于互连局域网。 WAN分类:
共用电话网:PSTN 综合业务数字网:ISDN 数字数据网:DDN X.25共用分组交换网 帧中继:Frame Relay 异步传输模式:ATM
WAN交换模式:
电路交换:基于电话网的电路交换
优点:时延小、透明传输;
缺点:带宽固定,网络资源利用率低。
分组交换:以分组为单位存储转发
优点:多路复用,网络资源利用率高; 缺点:实时性差
网络的时延(delay):又称延迟,定义了网络把一位数据从一个网络节点传送到另一个网络
节点所需要的时间
网络延迟主要由传导延迟(propagation delay)、交换延迟(switching delay)、介质访问延迟(access delay)和队列延迟(queuing delay)组成
LAN的拓扑结构:总线(bus)型、星型(star)
WAN的网络拓扑结构:星型、树型、全网状(Full meshed)、半网状
电子电器工程师协会(IEEE,Institute of Electrical and Electronics Engineers):
提供了网络硬件上的标准使各种不同网络硬件厂商生产的硬件设备相互连通。IEEE LAN标准是当今居于主导地位的LAN标准。它主要定义了802.X协议族,其中
802.1描述了基本的局域网需要解决的问题,例如802.1d描述了生成树协议。
802.1q描述VLAN
802.2 小组负责逻辑链路子层(LLC)标准的制定。 802.3为以太网标准协议簇、
802.4为令牌总线网(Toking Bus)标准、 802.5为令牌环网(Toking Ring)标准、 802.11为无线局域网(WLAN)标准。
OSI参考模型依层次结构来划分:第一层,物理层(Physical layer);
第二层,数据链路层(data link layer); 第三层,网络层(network layer); 第四层,传输层(transport layer); 第五层,会话层(session layer); 第六层,表示层(presentation layer); 第七层,应用层(application layer)。
模型第一层到第三层称为底层(lower layer),又叫介质层(Media Layer)。这些层负责数据在网络中的传送,网络互连设备往往位于下三层。底层通常以硬件和软件相结合的方式来实现。OSI参考模型的第五层到第七层称为高层(upper layer),又叫主机层(host layer)。高层用于保障数据的正确传输,通常以软件方式来实现
数据终端设备(DTE,Data Terminal Equipment):DTE指位于用户网络接口用户端设备。数据电路终端设备(DCE,Data Circuit Equipment):DCE提供到网络的物理连接口,提供了用于同步DTE和DCE设备之间数据传输的时钟信号。
DTE设备接近用户侧,DCE设备接近网络侧。常用于DTE设备的有:终端主机、路由器;常用于DCE设备的有:广域网交换机、Modem、CSU/DSU(Channel Service Unit/Data Service Unit)
数据链路层分为两个子层:逻辑链路控制子层(LLC,Logic Link Control sublayer),介质访问控制子层(MAC,Media Access Control sublayer)。
逻辑链路控制子层提供了面向连接与面向无连接的网络服务环境的需要。该层用于管理通过单一链路连接的两个系统间的通讯,它允许多个高层网络协议共享一条链路。 LLC子层位于网络层和MAC子层之间,是上层和下一层的管理层,负责流量控制、同步等。LLC子层通过SSAP(源服务访问点,Source Service Access Point)和DSAP(目的服务访问点,Destination Service Access Point)负责底层协议与网络层协议的通信。 MAC子层负责把物理层的“0”,“1”比特流组建成帧,并且通过帧尾部的CRC(Cyclic Redundancy Check,循环冗余校验)子段进行错误检测。总之,MAC子层定义了网络对共享介质的访问。
PPP协议:由LCP(Link Control Protocol)、NCP(Network Control Protocol)以及PPP扩展协议簇组成。LCP规定了链路建立、维护以及拆除。
HDLC:是ISO开发的一种面向位同步的数据链路层协议,它规定了使用帧字符和校验和的同步串行链路的数据封装方法。
可路由协议(routed protocol):可路由协议是定义数据包内各个字段的格式和用途的网络层封装协议,该网络层协议允许将数据包从一个网络设备转发到另外一个网络设备。常见的可路由协议有TCP/IP协议栈中的IP协议、Novell IPX/SPX协议栈的IPX协议。
路由协议(routing protocol):路由协议通过在路由器之间共享路由信息来支持可路由协议。路由信息在相邻路由器之间传递,确保所有路由器知道到其他路由器的路径。总之,路由协议创建了路由表,描述了网络拓扑结构;可路由协议与路由协议协同工作,执行路由选择和数据包转发功能。
在每一个协议栈中都制定了一些路由协议创建路由表。例如,OSI参考模型的IS-IS(Intermediate System to Intermediate System)协议;TCP/IP协议栈的RIP(Routing Information Protocol,路由信息协议)协议、OSPF(Open Shortest Path First,开放式最短路径优先)协议;IPX/SPX协议栈的IPX RIP协议等。
传输层主要定义了主机应用程序间端到端的连通性,它一般包含四项基本功能。 1.将应用层发往网络层的数据分段或将网络层发往应用层的数据段合并。 2.建立端到端的连接,主要是建立逻辑连接以传送数据流。
3.将数据段从一台主机发往另一台主机。在传送过程中通过计算校验和以及通过流控制的方式保证数据的正确性,流控制可以避免缓冲区溢出。
4.部分传输层协议保证数据传送正确性。主要是在数据传送过程中确保同一数据既不多次传送也不丢失。同时还要保证数据包的接收顺序与发送顺序一致。
传输层协议主要有TCP/IP协议栈的TCP协议和UDP协议,IPX/SPX协议栈的SPX协议等。其中,TCP协议和SPX协议为应用程序提供可靠的、面向连接的服务;UDP协议提供不可靠的、无连接的服务。
三种常用的流量控制技术:缓存(buffering)技术、源抑制报文(source quench messages)、窗口机制(windowing)
窗口机制流量控制过程。
1、源设备向目的设备发送一定数量(如果窗口大小为3,就发送3个)的数据包; 2、目的设备收到数据包,向源设备发送确认报文;
3、源设备收到确认报文,向目的设备发送同样数量的数据包;
4、如果目的设备由于某些原因(例如缓冲区数据溢出等)没有收到全部或者部分数据包,则不向源设备发送后续的确认报文。源设备通过调节窗口大小,降低数据传送速率,重发数据包
面向连接的服务:适合延迟敏感性应用 建立连接 数据传输 断开连接
无连接的服务:适合延迟不敏感的应用 无需建立连接 资源动态分配
TCP/IP协议简化了层次设计,只有五层:应用层、传输层、网络层、数据链路层和物理层
网络层的主要协议:IP、ICMP(Internet Control Message Protocol,互联网控制报文协议)、IGMP(Internet Group Management Protocol,互联网组管理协议)、ARP(Address Resolution Protocol,地址解析协议)和RARP(Reverse Address Resolution Protocol,反向地址解析协议)
传输层的主要协议:TCP、UDP(User Datagraph Protocol,用户数据报协议) 应用层:常用的应用程序,HTTP(HyperText Transfer Protocol文本传输协议)、Telnet(远程登录)、FTP(File Transfer Protocol)
传输控制协议TCP:为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。目前,许多流行的应用程序都使用TCP。
用户数据报协议UDP:提供了无连接通信,且不对传送数据包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。
TCP协议通过以下过程来保证端到端数据通信的可靠性:
1、TCP实体把应用程序划分为合适的数据块,加上TCP报文头,生成数据段;
2、当TCP实体发出数据段后,立即启动计时器,如果源设备在计时器清零后仍然没有收到目的设备的确认报文,重发数据段;
3、当对端TCP实体收到数据,发回一个确认。
4、TCP包含一个端到端的校验和字段,检测数据传输过程的任何变化。如果目的设备收到的数据校验和计算结果有误,TCP将丢弃数据段,源设备在前面所述的计时器清零后重发数据段。
5、由于TCP数据承载在IP数据包内,而IP提供了无连接的、不可靠的服务,数据包有可能会失序。TCP提供了重新排序机制,目的设备将收到的数据重新排序,交给应用程序。 6、TCP提供流量控制。TCP连接的每一端都有缓冲窗口。目的设备只允许源设备发送自己可以接收的数据,防止缓冲区溢出。 7、TCP支持全双工数据传输。
UDP报文没有可靠性保证和顺序保证字段,流量控制字段等,可靠性较差。当然,使用传输层UDP服务的应用程序也有优势。正因为UDP协议较少的控制选项,在数据传输过程中,延迟较小,数据传输效率较高,适合于对可靠性要求并不高的应用程序,或者可以保障可靠性的应用程序像DNS、TFTP、SNMP等;UDP协议也可以用于传输链路可靠的网络。
TCP协议和UDP协议使用16bits端口号(或者socket)来表示和区别网络中的不同应用程序,网络层协议IP使用特定的协议号(TCP 6,UDP 17)来表示和区别传输层协议。
任何TCP/IP实现所提供的服务都是1~1023之间的端口号,这些端口号由IANA(Internet Assigned Numbers Authority,Internet号码分配机构)分配管理。其中,低于255的端口号保留用于公共应用;255到1023的端口号分配给各个公司,用于特殊应用;对于高于1023的端口号,称为临时端口号,IANA未做规定。
常用的TCP端口号有:HTTP 80,FTP 20/21,Telnet 23,SMTP 25,DNS 53等;常用的保留UDP端口号有:DNS 53,BootP 67(server)/ 68(client),TFTP 69,SNMP 161等。
TCP协议的协议号为6,UDP协议的协议号为17。
IP(Internet Protocol)协议:IP协议和路由协议协同工作, 寻找能够将数据包传送到目的端的最优路径。IP协议不关心数据报文的内容,提供无连接的、不可靠的服务。 ARP协议(Address Resolution Protocol,地址解析协议):把已知的IP地址解析为MAC地址;
RARP(Reverse Address Resolution Protocol,反向地址解析协议):用于数据链路层地址已知时,解析IP地址;
ICMP(Internet Control Message Protocol,网际控制消息协议):定义了网络层控制和传递消息的功能。
IGMP(Internet Group Management Protocol,网际组管理协议):一种组播应用协议。
ARP、RARP请求以广播方式发送,ARP、RARP应答一般以单播方式发送,以节省网络资源。
网际控制消息协议ICMP:是一个网络层的协议,它提供了错误报告和其它回送给源点的关于 IP 数据包处理情况的消息。ICMP通常为IP层或者更高层协议使用,一些ICMP报文把差错报文返回给用户进程。ICMP报文通常被封装在IP数据包内传输。
ICMP包含几种不同的消息,其中ping程序借助于echo request消息,主机可通过它来测试网络的可达性,ICMP Echo Reply 消息表示该节点是可达的。ICMP还定义了源抑制(source quench)报文。
IP包结构:
▏版本 ▏ 部首长度 ▏ 服务类型 ▏总长度 ▏ IP ▏ 标识符 ▏ 标志 ▏ 片偏移 ▏ 报 ▏ 生存时间 ▏协议 ▏部道校验和 ▏ 文 ▏ 源IP地址 ▏ 头 ▏ 目的IP地址 ▏
▏ 长度可变的任选字段 ▏ 填充 ▏ ▏ 数据 ▏
版本:4比特 IPv4
首部长度:单位为4字节最大60字节 总长度:单位字节最大65535字节 标识:数据包分片后重组
标志:占3比特,只用到低位的两个比特
MF More Fragment
MF=1,后面还有分片的数据包 MF=0,分片数据包的最后一个 DF Don't Fragment DF=1,不允许分片 DF=0,允许分片
段偏移:分片后的分组在原分组中的相对位置总共13比特单位为8字节 生存时间:TTL( Time To Live),丢弃TTL=0的报文 协议:携带的是何种协议报文
1 ICMP 6 TCP 17 UDP 89 OSPF
IP报文头固定为20个字节
TCP连接的三步握手:
1、主机发送一个序列号为a的报文段1;
2、服务器发回包含序列号为b的报文段2,并用确认号a+1对主机的报文段1进行确认; 3、主机接收服务器发回的报文段2,发送报文段3,用确认号b+1对报文段2进行确认。 这样在主机和服务器之间建立了一条TCP连接,这个过程被称为三步握手(three-way handshake)。接下来,数据传输开始
IP地址共分为五类(127.0.0.0网段用于回环测试)
A类:1.0.0.0~126.255.255.255 私网地址:10.0.0.0~10.255.255.255 B类:128.0.0.0~191.255.255.255 私网地址:172.16.0.0~172.31.255.255 C类:192.0.0.0~223.255.255.255 私网地址:192.168.0.0~192.168.255.255 D类:224.0.0.0~239.255.255.255 E类:240.0.0.0~255.255.255.255
PPP(Point-to-Point Protocol)协议:是在SLIP的基础上发展起来的,由于SLIP只支持异步传输方式、无协商过程,它逐渐被PPP协议所替代。PPP协议作为一种提供在点到点链路上封装、传输网络层数据包的数据链路层协议,处于OSI参考模型的第二层,主要被设计用来在支持全双工的同异步链路上进行点到点之间的数据传输。 物理层可以是同步电路或异步电路
PPP协议及PPP协议中的五个阶段
PPP 主要由三类协议组成链路控制协议族(LCP) 网络层控制协议族(NCP)和PPP扩展协议族组成。
链路控制协议(LCP):建立、配置、测试PPP数据链路连接 ; 网络控制协议族(NCPs):协商在该链路上所传输的数据包的格式与类型,建立、配置不同网络层协议;
PPP扩展协议族:提供对PPP功能的进一步支持。
PPP协商分为五个阶段: 1、Dead阶段
当物理层不可用时,PPP链路处于dead阶段,链路必须从这个阶段开始和结束。当物理层可用时, PPP在建立链路之前首先进行LCP协商,协商内容包括工作方式是SP还是MP、验证方式和最大传输单元等。 2、Establish阶段
LCP协商过后就进入Establish阶段,此时LCP状态为Opened,表示链路已经建立 3、Authenticate阶段
如果配置了验证(远端验证本地或者本地验证远端)就进入Authenticate阶段,开始CHAP或PAP验证。 4、Network阶段
如果验证失败进入Terminate阶段,拆除链路,LCP状态转为Down;如果验证成功就进入Network协商阶段(NCP),此时LCP状态仍为Opened,而IPCP状态从Initial转到Request。 5、Terminate 阶段
NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址。通过NCP协商来选择和配置一个网络层协议。当选中的网络层协议配置成功后,该网络层协议就可以通过这条链路发送报文了。
PPP用于网络安全方面的验证协议族:PAP、CHAP
PAP:PAP验证为两次握手验证,口令为明文,PAP验证的过程如下: 1、被验证方发送用户名和口令到验证方;
2、验证方根据用户配置查看是否有此用户以及口令是否正确,然后返回不同的响应(Acknowledge or Not Acknowledge)。
3、如正确则会给对端发送ACK报文,通告对端已被允许进入下一阶段协商;否则发送NAK报文,通告对端验证失败。此时,并不会直接将链路关闭。只有当验证不通过次数达到一定值(缺省为4)时,才会关闭链路,来防止因误传、网络干扰等造成不必要的LCP重新协商过程。
PAP的特点是在网络上以明文的方式传递用户名及口令,如在传输过程中被截获,便有可能对网络安全造成极大的威胁。因此,它适用于对网络安全要求相对较低的环境。
CHAP:CHAP验证为三次握手验证,口令为密文(密钥),CHAP验证过程如下:
1、验证方向被验证方发送一些随机产生的报文,并同时将本端的主机名附带上一起发送给被验证方;
2、被验证方接到对端对本端的验证请求(Challenge)时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,如找到用户表中与验证方主机名相同的用户,便利用接收到的随机报文、此用户的密钥用Md5算法生成应答(Response),随后将应答和自己的主机名送回;
3、验证方接到此应答后,利用对端的用户名在本端的用户表中查找本方保留的口令字,用本方保留的口令字(密钥)和随机报文用Md5算法得出结果,与被验证方应答比较,根据比较结果返回相应的结果(ACK or NAK)。
它的特点是只在网络上传输用户名,而并不传输用户口令,因此它的安全性要比PAP高。
MP:是MultiLink PPP的缩写,是人们出于增加带宽的考虑,将多个PPP链路捆绑使用产生的,简称MP。MultiLink PPP允许将报文分片,分片将从多个点对点链路上送到同一个目的
地
MP方式下链路协商过程
1) 首先和对端进行LCP协商,协商过程中,除了协商一般的LCP参数外,还验证对端接口是否也工作在MP方式下。如果对端不工作在MP方式下,则在LCP协商成功后,进行一般的NCP协商步骤,不进行MP捆绑。 2) 然后对PPP进行验证,得到对方的用户名。如果在LCP协商中得知对端也工作在MP方式下,则根据用户名找到为该用户指定的虚拟接口模板,并以该虚拟模板的各项NCP参数(如IP地址等)为参数进行NCP协商,物理接口配置的NCP参数不起作用。NCP协商通过后,即可建立MP链路,用更大的带宽传输数据。
E1/CE1:在PDH中,以两种基本的PCM 通信系统作为其基础,一种是由ANSI 推荐的T1系统,一种是ITU-T 推荐的E1系统。T1系统主要在北美得到广泛使用(日本采用的J1,与T1 基本相似),而欧洲以及中国使用的则是E1系统。
PCM:即脉冲编码调制, 它通常包含三个过程:抽样、量化和编码。
PCM量化方法有两种: 一种是北美和日本的u律压扩(15折线法分段);令一种是欧洲和我国采用的A律压扩(13折线法分段)。T1系统采用u律压扩方法,它有24个时隙。E1系统采用A律压扩,它有32个时隙。
DS0:量化后的数据进行编码,就实现了将模拟信号变化成64K标准速率的PCM信号了,我们通常称其为DS0(digital signal-level zero )
时分复用:是将某一信道按时间加以分割,各路信号的抽样值依一定的顺序占用某一时间间隔(也称作时隙),即多路信号利用同一个信道在不同的时间进行各自独立的传输。
E1:相当于一个不分时隙、数据带宽为2M的接口,其逻辑特性与同步串口相同,支持PPP、帧中继等链路层协议,支持IP网络协议。
CE1:在物理上分为32个时隙,对应编号为0~31。其中的31个时隙可以被任意地分成若干组(时隙0用于传送帧同步信号,不能被捆绑),每组时隙捆绑以后作为一个接口(channel-group)使用,其逻辑特性与同步串口相同,支持PPP、HDLC、FR、LAPB和X.25等链路层协议,支持IP等网络协议。
POS (Packet Over SONET/SDH):是一种新出现的在SONET/SDH上承载IP和其他数据包的传输技术。
SONET(Synchronous Optical Network)同步光学网络:是ANSI定义的同步传输体制,包含一组以51.840Mbps(STS-1)为基数的速率,如STS-3(155.520)、STS-9(466.560)、STS-12(622.080)、STS-18(933.120)、STS-24(1,244.160)、STS-36(1,866.240)、STS-48(2,488.320)。
SONET是一种全球化的标准传输协议。它通过工业标准化接口提供了强大,速率可选的传输机制。
SDH(Synchronous Digital Hierarchy)同步数字系列:是CCITT定义的,它使用了SONET速率的一个子集。基本速率是155.520Mbps(STM-1),以4的倍数递增如STM-4(622.080)、STM-16(2,488.32)。
802.3 线缆
名称 电缆 最大区间长度 10BASE-5 粗同轴电缆 500m 10BASE-2 细同轴电缆 200m 10BASE-T 双绞线 100m 10BASE-F 光纤 2000m
802.3规定两个收发器间不得超过2.5km,任意两个收发器间的路径上不得有4个以上的中继器。
以太网帧结构:
802.3 帧64到1518字节字节7PRE1SFD6DA622 or 34DATAPADCRCSALENLLC 控制信息LLC 帧???????PRE: 先导字节, 7个10101010 SFD: 帧开始标志, 10101011 DA: 目的MAC地址SA: 源MAC地址LEN: LLC帧长度DATA: 数据字段PAD: 填充字段CRC: 校验字段
VLAN:虚拟局域网(VLAN——Virtual Local Area Network)逻辑上把网络资源和网络用户按照一定的原则进行划分,把一个物理上实际的网络划分成多个小的逻辑的网络
IEEE802.1Q协议:IEEE802.1Q是虚拟桥接局域网的正式标准,定义了同一个物理链路上承载多个子网的数据流的方法。IEEE 802.1Q定义了VLAN帧格式,为识别帧属于哪个VLAN提供了一个标准的方法。这个格式统一了标识VLAN的方法,有利于保证不同厂家设备配置的VLAN可以互通。
IEEE 802.1Q定义了以下内容: VLAN的架构;
VLAN中所提供的服务;
VLAN实施中涉及的协议和算法
IEEE802.1Q协议不仅规定VLAN中的MAC帧的格式,而且还制定诸如帧发送及校验、回路检测,对业务质量(QOS)参数的支持以及对网管系统的支持等方面的标准。
VLAN的划分方法: 1、 基于端口的VLAN
这种划分VLAN的方法是根据以太网交换机的端口来划分,比如交换机的1~4端口为VLAN A,5~17为VLAN B,18~24为VLAN C。当然,这些属于同一VLAN的端口可以不连续,如何配置,由管理员决定。
2、基于MAC地址的VLAN
这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对所有主机都根据它的MAC地址配置主机属于哪个VLAN;交换机维护一张VLAN映射表,这个VLAN表记录MAC地址和VLAN的对应关系。这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN。
这种方法的缺点是初始化时,所有的用户都必须进行配置,如果用户很多,配置的工作量是很大的。此外这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停的配置。 3、基于协议的VLAN
这种情况是根据二层数据帧中协议字段进行VLAN的划分。通过二层数据中协议字段,可以判断出上层运行的网络协议,如IP协议或者是IPX协议。如果一个物理网络中既有IP网络又有IPX等多种协议运行的时候,可以采用这种VLAN的划分方法。 4、基于子网的VLAN
基于IP子网的VLAN根据报文中的IP地址决定报文属于哪个VLAN:同一个IP子网的所有报文属于同一个VLAN。这样,可以将同一个IP子网中的用户被划分在一个VLAN内。
VLAN的帧格式:
DA DA SA SA Type Type Data CRC CRC 标准的以太网帧
tag Data
▏ TCI ▏ TPID Priority CFI VLANID 带有IEEE802.1Q标记的以太网帧
1、 每一个支持802.1Q协议的交换机端口,在发送数据包时,都在原来的以太网帧头中的 源地址后增加了一个四个字节的802.1Q标签头,这个标签头包含了2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI)。
TPID(Tag Protocol Identifier)是IEEE定义的新的类型,表明这是一个加了802.1Q
标签的帧。TPID包含了一个固定的值0x8100。
TCI是包含的是帧的控制信息,它包含了下面的一些元素:
Priority:这3 位指明帧的优先级。一共有8种优先级,0-7。IEEE 802.1Q标准使用这三位信息。
Canonical Format Indicator( CFI ):CFI值为0说明是规范格式,1为非规范格式。它被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
VLAN Identified( VLAN ID ): 这是一个12位的域,指明VLAN的ID,一共4096个,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。 在一个交换网络环境中,以太网的帧有两种格式:有些帧是没有加上这四个字节标志的,称为未标记的帧(ungtagged frame),有些帧加上了这四个字节的标志,称为带有标记的帧(tagged frame)。
2、VLAN Identified( VLAN ID ): 这是一个12位的域,指明VLAN的ID,一共4096个,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
3、在一个交换网络环境中,以太网的帧有两种格式:有些帧是没有加上这四个字节标志的,称为未标记的帧(ungtagged frame),有些帧加上了这四个字节的标志,称为带有标记的帧(tagged frame)。
接入链路:指的是用于连接主机和交换机的链路。通常情况下主机并不需要知道自己属于哪些VLAN,主机的硬件也不一定支持带有VLAN标记的帧。主机要求发送和接收的帧都是没有打上标记的帧。
接入链路属于某一个特定的端口,这个端口属于一个并且只能是一个VLAN。这个端口不能直接接收其它VLAN的信息,也不能直接向其它VLAN发送信息。不同VLAN的信息必须通过三层路由处理才能转发到这个端口上。
干道链路:是可以承载多个不同VLAN数据的链路。干道链路通常用于交换机间的互连,或者用于交换机和路由器之间的连接。干道链路的英文叫做“trunk link”。 数据帧在干道链路上传输的时候,交换机必须用一种方法来识别数据帧是属于哪个VLAN的。IEEE 802.1Q定义了VLAN帧格式,所有在干道链路上传输的帧都是打上标记的帧(tagged frame)。通过这些标记,交换机就可以确定哪些帧分别属于哪个VLAN。
干道链路是用来在不同的设备之间(如交换机和路由器之间、交换机和交换机之间)承载VLAN数据的,因此干道链路是不属于任何一个具体的VLAN的。通过配置,干道链路可以承载所有的VLAN数据,也可以配置为只能传输指定的VLAN的数据。 ? 干道链路虽然不属于任何一个具体的VLAN,但是可以给干道链路配置一个pvid(port VLAN ID)。当干道链路不论因为什么原因,trunk链路上出现了没有带标记的帧,交换机就给这个帧增加带有pvid的VLAN标记,然后进行处理。
干道链路上传送的都是Tagged Frame,接入链路上传送的都是Untagged Frame。这样做的最终结果是:网络中配置的VLAN可以被所有的交换机正确处理,而主机不需要了解VLAN信息。
GVRP(GARP VLAN Registration Protocol):是VLAN注册协议, GVRP基于GARP的工作机制,是GARP的一种应用,维护交换机中的VLAN动态注册信息并传播该信息到其他的交换机中。所有支持GVRP特性的交换机能够接收来自其它交换机的VLAN注册信息,并动态更新本地的VLAN注册信息,包括当前的VLAN成员、这些VLAN成员可以通过哪个端口到达等。而且所有支持GVRP特性的交换机能够将本地的VLAN注册信息向其他交换机传播,以便使同一交换网内所有支持GVRP特性的设备的VLAN信息达成一致。 GVRP传播的VLAN注册信息包括本地手工配置的静态注册信息和来自其它Switch的动态注册信息。
端口对接收报文的处理 收报文:
Acess端口: 1、收到一个报文
2、判断是否有VLAN信息:如果没有则转到第3步,否则转到第4步 3、打上端口的PVID,并进行交换转发 4、直接丢弃(缺省) trunk端口: 1、收到一个报文
2、判断是否有VLAN信息:如果没有则转到第3步,否则转到第4步 3、打上端口的PVID,并进行交换转发
4、判断该trunk端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃 hybrid端口: 1、收到一个报文
2、判断是否有VLAN信息:如果没有则转到第3步,否则转到第4步 3、打上端口的PVID,并进行交换转发
4、判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃
发报文:
Acess端口: 1、将报文的VLAN信息剥离,直接发送出去
trunk端口: 1、比较端口的PVID和将要发送报文的VLAN信息 2、如果两者相等则转到第3步,否则转到第4步 3、剥离VLAN信息,再发送 4、直接发送
hybrid端口:1、判断该VLAN在本端口的属性(disp interface 即可看到该端 口对哪些VLAN是untag,哪些VLAN是tag)
2、如果是untag则转到第3步,如果是tag则转到第4步 3、剥离VLAN信息,再发送 4、直接发送 VLAN与端口的关系 ACCESS端口:这种端口只能属于一个VLAN,并且从该端口进来的数据包都不包含TAG标记,数据包进入之后,会被加上该端口的VLAN ID(加上TAG标记)。如果有数据需要从这种接口发送出去,数据帧中的TAG标记将被删除。这种端口一般用于连接用户主机或路由器 TRUNK端口:这种端口可以属于多个VLAN,或者说这种端口可以传送多个VLAN的数据帧。从这种端口发送出去的数据帧都包含有TAG标记(缺省VLAN ID的数据帧除外);从这种端口接收到的报文,如果已经有TAG标记,则直接转发;如果没有TAG标记,则加上带有缺省VLAN ID的TAG标记。这种端口一般用于连接交换机或路由器。 HYBRID端口:这种端口可以属于多个VLAN。但是与TRUNK端口不同的是它所传送的数据帧,
可以包含TAG标记也可以不包含TAG标记;而TRUNK端口则必须包含TAG标记。其发送数据帧时根据配置信息进行判断是否加上TAG标记;接收数据帧时和TRUNK端口相同。这种端口一般用于连接交换机。
PVLAN技术简介
PVLAN技术解决VLAN ID不足的问题。 采用VLAN ID屏蔽的办法,将接入层的用户VLAN ID对汇聚层设备屏蔽起来,在接入层使用VLAN的方法进行用户二层隔离。 接入层设备Primary VLAN ID访问汇聚层设备,对于会聚层设备来说,它只知道Primary VLAN ID,数据包返回时,送往Primary VLAN ID所包含的所有Secondary VLAN用户。 VLAN路由技术简介
VLAN路由技术模拟路由器的三层接口,在以太网上创建出虚拟局域网三层接口。 这些接口具有三层报文转发的功能。将二层不能转发的数据帧进行数据帧头的剥离,然后根据IP报文头信息进行转发。
路由:是指导IP报文发送的路径信息
根据路由的目的地不同,可以划分为: ? 子网路由:目的地为子网 ? 主机路由:目的地为主机
根据目的地与该路由器是否直接相连,又可分为: ? 直接路由:目的地所在网络与路由器直接相连
间接路由:目的地所在网络与路由器不是直接相连
路由表中包含了下列关键项: 目的地址(Destination):用来标识IP包的目的地址或目的网络。 网络掩码(Mask):与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。 输出接口(Interface):说明IP包将从该路由器哪个接口转发。 下一跳IP地址(Nexthop):说明IP包所经由的下一个路由器的接口地址。
路由的来源主要有3 种:
1、链路层协议发现的路由(Direct)
开销小,配置简单,无需人工维护,只能发现本接口所属网段拓扑的路由。 2、手工配置的静态路由(Static) 静态路由是一种特殊的路由,它由管理员手工配置而成。通过静态路由的配置可建立一个互通的网络,但这种配置问题在于:当一个网络故障发生后,静态路由不会自动修正,必须有管理员的介入。静态路由无开销,配置简单,适合简单拓扑结构的网络。 3、动态路由协议发现的路由(RIP、OSPF ……) 当网络拓扑结构十分复杂时,手工配置静态路由工作量大而且容易出现错误,这时就可用动态路由协议,让其自动发现和修改路由,无需人工维护,但动态路由协议开销大,配置复杂。
华为 Quidway 路由器的缺省优先级:0表示直接连接的路由,255 表示任何来自不可信源端
的路由。
路由协议或路由种类 DIRECT OSPF STATIC RIP IBGP OSPF ASE EBGP UNKNOWN 相应路由的优先级 0 10 60 100 130 150 170 255 除了直接路由(DIRECT)外,各动态路由协议的优先级都可根据用户需求,手工进行配置。另外,每条静态路由的优先级都可以不相同。
路由的花费(metric):标识出了到达这条路由所指的目的地址的代价,通常路由的花费值会受到线路延迟、带宽、线路占有率、线路可信度、跳数、最大传输单元等因素的影响,不同的动态路由协议会选择其中的一种或几种因素来计算花费值(如RIP用跳数来计算花费值)。该花费值只在同一种路由协议内有比较意义,不同的路由协议之间的路由花费值没有可比性,也不存在换算关系。静态路由的花费值为0。
动态路由协义的特点:
所有的动态路由协议在TCP/IP协议栈中都属于应用层的协议。但是不同的路由协议使用的底层协议不同。
OSPF将协议报文直接封装在IP 报文中,协议号89,由于IP协议本身是不可靠传输协议,所以OSPF传输的可靠性需要协议本身来保证。
BGP使用TCP作为传输协议,提高了协议的可靠性,TCP的端口号是179。 RIP使用UDP作为传输协议,端口号520。
自治系统AS:由同一机构管理,使用同一组选路策略的路由器的集合。
自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。
按照工作区域,路由协议可以分为IGP 和EGP:
IGP(Interior gateway protocols)内部网关协议:在同一个自治系统内交换路由信息,RIP 和IS-IS 都属于IGP。IGP的主要目的是发现和计算自治域内的路由信息。
EGP(Exterior gateway protocols)外部网关协议:用于连接不同的自治系统,在不同的自治系统之间交换路由信息,主要使用路由策略和路由过滤等控制路由信息在自治域间的传播,应用的一个实例是BGP。
按照路由的寻径算法和交换路由信息的方式,路由协议可以分为 距离矢量协议(Distant-Vector)和链路状态协议。
距离矢量协议包括 RIP 和 BGP,链路状态协议包括 OSPF、IS-IS。
距离矢量协议(Distant-Vector)和链路状态协议的区别:
距离矢量路由协议:基于贝尔曼-福特算法,使用D-V算法的路由器通常以一定的时间间隔向相邻的路由器发送他们完整的路由表。接收到路由表的邻居路由器将收到的路由表和自己的路由表进行比较,新的路由或到已知网络但开销(Metric)更小的路由都被加入到路由表中。相邻路由器然后再继续向外广播它自己的路由表(包括更新后的路由)。距离矢量路由器关心的是到目的网段的距离(Metric)和矢量(方向,从哪个接口转发数据)。在发送数据前,路由协议计算到目的网段的Metric;在收到邻居路由器通告的路由时,将学到的网段信息和收到此网段信息的接口关联起来,以后有数据要转发到这个网段就使用这个关联的接口。
距离矢量路由协议的优点:配置简单,占用较少的内存和CPU处理时间。缺点:扩展性较差,比如RIP最大跳数不能超过16 跳
链路状态路由协议:基于Dijkstra算法,有时被称为最短路径优先算法。L-S算法提供比RIP等D-V算法更大的扩展性和快速收敛性,但是它的算法耗费更多的路由器内存和处理能力。D-V算法关心网络中链路或接口的状态(up或down、IP地址、掩码),每个路由器将自己已知的链路状态向该区域的其他路由器通告,这些通告称为链路状态通告(LSA:Link State Advitisement)。通过这种方式区域内的每台路由器都建立了一个本区域的完整的链路状态数据库。然后路由器根据收集到的链路状态信息来创建它自己的网络拓朴图,形成一个到各个目的网段的带权有向图。
链路状态算法使用增量更新的机制,只有当链路的状态发生了变化时才发送路由更新信息,这种方式节省了相邻路由器之间的链路带宽。部分更新只包含改变了的链路状态信息,而不是整个的路由表。
路由环路避免方案:定义一个最大值、路由中毒和抑制时间、水平分割、触发更新
定议一个最大值:我们给跳数定义一个最大值,在RIP 路由协议中,允许跳数最大值为16。在图中,当跳数到达最大值时,网络被认为是不可达的。 通过定义最大值,距离矢量路由协议可以解决发生环路时路由权值无限增大的问题,同时也校正了错误的路由信息。但是,在最大权值到达之前,路由环路还是会存在。也就是说,以上解决方案只是补救措施,不能避免环路产生,只能减轻路由环路产生的危害。路由协议的设计者们又提供了诸如水平分割、触发更新等多种避免环路产生几率的方案。
水平分割:是在距离矢量路由协议中最常用的避免环路发生的解决方案之一。分析产生路由环路的原因,其中一条就是因为路由器将从某个邻居学到的路由信息又告诉了这个邻居。水平分割的思想就是在路由信息传送过程中,不再把路由信息发送给接收此路由信息的接口上。
路由中毒和抑制时间: 路由中毒和抑制时间结合起来,也可以在一定程度上避免路由环路产生,同时也可以抑制因复位接口等原因,引起的网络动荡。这种方法在网络故障或接口复位时,使相应路由中毒,同时启动抑制时间,控制 路由器在抑制时间内不要轻易更新自己的路由表。从而,避免环路产生、抑制网络动荡。
触发更新:触发更新机制是在路由信息产生某些改变时,立即发送给相邻路由器一种称为触发更新的信息。路由器检测到网络拓扑变化,立即依次发送触发更新信息给相邻路由器,如果每个路由器都这样做,这个更新会很快传播到整个网络。
RIP:是Routing Information Protocol (路由信息协议)的简称。它是一种相对简单的动态路由协议,但在实际使用中有着广泛的应用。RIP是一种基于D-V算法的路由协议,它通过UDP交换路由信息,每隔30秒向外发送一次更新报文。如果路由器经过180秒没有收到来自对端的路由更新报文,则将所有来自此路由器的路由信息标志为不可达,若在其后120 秒内仍未收到更新报文,就将该条路由从路由表中删除。
RIP 使用跳数(Hop Count)来衡量到达目的网络的距离,称为路由权(Routing Metric)。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定metric取值0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。
为提高性能,防止产生路由环路,RIP支持水平分割(Split Horizon)与路由中毒(Poison Reverse),并在路由中毒时采用触发更新(Triggered Update)。另外,RIP协议还允许引入其它路由协议所得到的路由。
RIP包括RIP-1和RIP-2两个版本,RIP-1 不支持变长子网掩码(VLSM),RIP-2 支持变长子网掩码(VLSM),同时RIP-2支持明文认证和 MD5 密文认证。
RIP-1使用广播发送报文,RIP-2有两种传送方式:广播方式和组播方式,缺省将采用组播发送报文,RIP-2的组播地址为224.0.0.9。组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接收RIP的广播报文;另外,组播发送报文还可以使运行RIP-1的网段避免错误地接收和处理RIP-2中带有子网掩码的路由。
RIP状态机
RIP 启动时的初始路由表仅包含本路由器的一些直连接口路由。 RIP 协议启动后向各接口广播一个 Request 报 文。 邻居路由器的 RIP 协议从某接口收到 Request 报文后,根据自己的路由表,形成 Response 报文向该接口对应的网络广播。
RIP 接收邻居路由器回复的包含邻居路由器路由表的Response 报文,形成自己的路由表。
RIP 协议以 30 秒为周期用 Response 报文广播自己的路由表。
RIP 路由表的更新原则:
1、对本路由表中已有的路由项,当发送报文的网关相同时,不论度量值增大或是减少,都更新该路由项(度量值相同时只将其老化定时器清零);
2、对本路由表中已有的路由项,当发送报文的网关不同时,只在度量值减少时,更新该路由项;
3、对本路由表中不存在的路由项,在度量值小于不可达(16)时,在路由表中增加该路由项;
4、路由表中的每一路由项都对应一老化定时器,当路由项在 180 秒内没有任何更新时,定时器超时,该路由项的度量值变为不可达(16)。
5、某路由项的度量值变为不可达后,以该度量值在 Response 报文中发布四次(120 秒),之后从路由表中清除。
RIP-1与RIP-2接收或发送报文的原则:RIP-1采用广播形式发送报文; RIP-2有两种传送方式,广播方式和多播方式,缺省将采用多播发送报文。 RIP-2中多播地址为224.0.0.9。多播发送报文的好处是在同一网络中那些未运行RIP的主机可以避免接收RIP的广播报文。另外,多播发送报文还可以使运行RIP-1的主机避免错误地接收和处理RIP-2中带有子网掩码的路由。
当接口运行RIP-1时,只接收与发送RIP-1与RIP-2广播报文,不接收RIP-2多播报文。当接口运行在RIP-2 广播方式时,只接收与发送RIP-1与RIP-2广播报文,不接收RIP-2多播报文; 当接口运行在RIP-2多播方式时,只接收和发送RIP-2多播报文;不接收RIP-1与RIP-2 广播报文。
缺省情况下,接口运行RIP-1报文,即只能接收与发送RIP-1报文。
路由聚合是指:同一自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一条自然掩码的路由发送。路由聚合减少了路由表中的 路由信息量,也减少了路由交换的信息量。
RIP与路由聚合:
RIP-1只发送自然掩码的路由,即总是以路由聚合形式向外发送路由,关闭路由聚合对RIP-1将不起作用。RIP-2支持无类别路由,当需要将子网的路由广播出去时,可关闭RIP-2 的路由聚合功能。
缺省情况下,允许RIP-2进行路由聚合。 RIP与报文认证:
RIP-1不支持报文认证,但当接口运行RIP-2时, 可进行报文的认证。 RIP-2支持两种认证方式:明文认证Simple 和 MD5 密文认证。
OSPF 是 Open Shortest Path First(即“开放最短路由优先协议”)的缩写:它是 IETF (Internet Engineering Task Force)组织开发的一个基于链路状态的自治系统内部路由协议。在 IP 网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。当前OSPF协议使用的是第二版,最新的RFC是2328。
OSPF协议具有如下特点:
适应范围: OSPF 支持各种规模的网络,最多可支持几百台路由器。
快速收敛: 如果网络的拓扑结构发生变化,OSPF 立即发送更新报文,使这一变化在自治系
统中同步。
无 自 环: 由于 OSPF 通过收集到的链路状态用最短路径树算法计算路由,故从算法本身
保证了不会生成自环路由。
子网掩码 : 由于 OSPF 在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码
的限制,对VLSM 提供很好的支持。
区域划分 : OSPF 协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息
被进一步抽象,从而减少了占用网络的带宽。
等值路由 : OSPF 支持到同一目的地址的多条等值路由。
路由分级 : OSPF 使用 4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路
由、第一类外部路由、第二类外部路由。
支持验证 : 它支持基于接口的报文验证以保证路由计算的安全性。
组播发送 : OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播
的作用,又最大程度的减少了对其他网络设备的干扰。
Router ID
一个32bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一。 协议号
OSPF的协议号是89。 OSPF协议报文不转发
通常OSPF的协议报文是不被转发的,只能传递一跳,即在IP报文头中TTL值被设为1。(虚连接除外)
OSPF 将不同的网络拓扑抽象为以下四种类型: 1、该接口所连的网段中只有本路由器自己。(stub networks) 2、该接口通过点到点的网络与一台路由器相连。(point-to-point ) 3、该接口通过广播或NBMA的网络与多台路由器相连。(broadcast or NBMA networks) 4、该接口通过点到多点的网络与多台路由器相连。(point-to-multipoint)
NBMA与点到多点的区别:
在OSPF协议中NBMA和点到多点都是指非广播多点可达的网络,但NBMA网络必须满足全连通(full meshed)的要求,即任意两点都可以不经转发而使报文直达对端。否则,我们称该网络是点到多点网络。
OSPF协议计算出路由主要有以下三个主要步骤: 1、描述本路由器周边的网络拓扑结构,并生成LSA。
2、将自己生成的LSA在自治系统中传播。并同时收集所有的其他路由器生成的LSA。 3、根据收集的所有的LSA计算路由。
OSPF的五种协议报文: HELLO 报文、DD报文、LSR报文、LSU报文、LSAck报文 HELLO 报文:发现及维持邻居关系,选举DR,BDR。 DD报文:描述本地LSDB的情况。
LSR报文:向对端请求本端没有或对端的更新的LSA。 LSU报文:向对方更新LSA。
LSAck报文:收到LSU之后,进行确认。
OSPF状态机最重要的三步:Down、2-way、 Full
OSPF状态机Down、Attempt、Init、2-Way、ExStart、Exchange、Loading、Full
Down:邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello
报文。
Attempt:只适用于NBMA类型的接口,处于本状态时,定期向那些手工配置的邻居发送HELLO
报文。
Init:本状态表示已经收到了邻居的HELLO报文,但是该报文中列出的邻居中没有包含我的
Router ID(对方并没有收到我发的HELLO报文)。 2-Way:本状态表示双方互相收到了对端发送的HELLO报文,建立了邻居关系。在广播和NBMA
类型的网络中,两个接口状态是DROther的路由器之间将停留在此状态。其他情况状态机将继续转入高级状态。
ExStart:在此状态下,路由器和它的邻居之间通过互相交换DD报文(该报文并不包含实际
的内容,只包含一些标志位)来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。
Exchange:路由器将本地的LSDB用DD报文来描述,并发给邻居。 Loading:路由器发送LSR报文向邻居请求对方的DD报文。
Full:在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即,本路由器和
邻居建立了邻接(adjacency)状态。
DR:OSPF协议指定一台路由器DR(Designated Router)来负责传递信息。所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本网段内的其他路由器
DR的选举过程: 登记选民
本网段内的OSPF路由器; 登记候选人
本网段内的priority>0的OSPF路由器; 竞选演说
所有的priority>0的OSPF路由器都认为自己是DR。 投票
选priority值最大的,若priority值相等,选Router ID最大的;
DR选举中的指导思想: 选举制
DR是各路由器选出来的,而非人工指定的。 终身制
DR一旦当选,除非路由器故障,否则不会更换。 世袭制
DR选出的同时,也选出BDR来。DR故障后,由BDR接替DR成为新的DR
由于DR的出现带来协议的变化
将同一网段内LSDB同步的次数由N*(N-1)/2 减少为2N。 在同一网段中,路由器的角色划分为DR、BDR、DROther。 路由器之间的关系分为Unknown、Neighbor、Adjacency。 增加了一种接口类型——Point-to-Multipoint。
增加了一种LSA——Network-LSA,由DR生成,描述了本网段的链路状态。
OSPF在大型网络中可能遇到的问题
1、LSDB非常庞大,占用大量存储空间。
2、计算最小生成树耗时增加,CPU负担很重。
3、网络拓扑结构经常发生变化,网络经常处于“动荡”之中。
解决上述问题的关键主要有两点:减少LSA的数量;屏蔽网络变化波及的范围。
OSPF 协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是在逻辑上将路由器划分为不同的组。区域的边界是路由器,这样会有一些路由器属于不同的区域,(这样的路由器称作区域边界路由器——ABR),而一个网段只能属于一个区域。 划分成区域之后给OSPF协议的处理带来的变化。 ? 每一个网段必须属于一个区域,或者说每个运行OSPF协议的接口必须指名属于某一个特定的区域,区域用区域号(Area ID)来标识。区域号是一个从0开始的32位整数。 ? 不同的区域之间通过ABR来传递路由信息。
OSPF将自治系统划分为不同的区域后路由计算方法的变化: 1、只有同一个区域内的路由器之间会保持LSDB的同步,网络拓扑结构的变化首先在区域内更新。
2、区域之间的路由计算是通过ABR来完成的。ABR首先完成一个区域内的路由计算,然后查询路由表,为每一条OSPF路由生成一条Type3类型的LSA,内容主要包括该条路由的目的地址、掩码、花费等信息。然后将这些LSA发送到另一个区域中。
3、在另一个区域中的路由器根据每一条Type3的LSA生成一条路由,由于这些路由信息都是由ABR发布的,所以这些路由的下一跳都指向该ABR。
划分区域后的好处:
1、由于划分区域后ABR是根据本区域内的路由生成LSA,则可以根据IP地址的规律先将这些路由进行聚合后再生成LSA,这样做可以大大减少自治系统中LSA的数量。
2、划分区域之后,网络拓扑的变化首先在区域内进行同步,如果该变化影响到聚合之后的路由,则才会由ABR将该变化通知到其他区域。大部分的拓扑结构变化都会被屏蔽在区域之内了。
骨干区域:OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是0,通常被称为骨干区域(Backbone Area)。
LSA:链路状态广播 LSA分类:
Router-LSA(TYPE=1):由每个路由器生成,描述了路由器的链路状态和花费。传递到整个区域。
Network-LSA(TYPE=2):由DR生成,描述了本网段的链路状态,传递到整个区域。 Net-Summary-LSA(TYPE=3):由ABR生成,描述了到区域内某一网段的路由,传递到相关区域。 Asbr-Summary-LSA(TYPE=4):由ABR生成,描述了到ASBR的路由,传递到相关区域。
AS-External-LSA(TYPE=5):由ASBR生成,描述了到AS外部的路由,传递到整个AS(STUB区域除外)。
虚连接:虚连接是指在两台ABR之间,穿过一个非骨干区域(转换区域——transit Area),建立的一条逻辑上的连接通道。
可以理解为两台ABR之间存在一个点对点的连接。“逻辑通道”是指两台ABR之间的多台
运行OSPF的路由器只是起到一个转发报文的作用(由于协议报文的目的地址不是这些路由器,所以这些报文对于他们是透明的,只是当作普通的IP报文来转发),两台ABR之间直接传递路由信息。这里的路由信息是指由ABR生成的type3的LSA,区域内的路由器同步方式没有因此改变。
OSPF的自治系统:OSPF是自治系统内部路由协议,负责计算同一个自治系统内的路由。在这里“自治系统”是指彼此相连的运行OSPF路由协议的所有路由器的集合。对于OSPF来说,整个网络只有“自治系统内”和“自治系统外”之分。需要注意的是:“自治系统外”并不一定在物理上或拓扑结构中真正的位于自治系统的外部,而是指那些没有运行OSPF的路由器或者是某台运行OSPF协议的路由器中没有运行OSPF的接口。
ASBR(Autonomous System Boundary Router):
作为一个IGP,OSPF同样需要了解自治系统外部的路由信息,这些信息是通过ASBR(自治系统边界路由器)获得的,ASBR是那些将其他路由协议(也包括静态路由和接口的直接路由)发现的路由引入(redistribute)到OSPF中的路由器。同样需要注意的是:ASBR并不一定真的位于AS的边界,而是可以在自治系统中的任何位置。
计算自治系统外部路由:ASBR为每一条引入的路由生成一条Type5类型的LSA,主要内容包括该条路由的目的地址、掩码和花费等信息。这些路由信息将在整个自治系统中传播(STUB AREA除外)。计算路由时先在最短路径树中找到ASBR的位置,然后将所有由该ASBR生成的Type5类型的LSA都当作叶子节点挂在ASBR的下面。以上的方法在区域内部是可行的,但是由于划分区域的原因,与该ASBR不处于同一个区域的路由器计算路由时无法知道ASBR的确切位置(该信息被ABR给过滤掉了,因为ABR是根据区域内的已生成的路由再生成Type3类型的LSA)。为了解决这个问题,协议规定如下:如果某个区域内有ASBR,则这个区域的ABR在向其他区域生成路由信息时必须单独为这个ASBR生成一条Type 4类型的LSA,内容主要包括这个ASBR的Router ID和到他所需的花费值。
路由分级管理:OSPF将所引入的自治系统外部路由分成两类:type 1和type 2。 第一类是指引入的是IGP路由(例如RIP,STATIC),由于这类路由的可信程度高一些,所以计算出的外部路由的花费与自治系统内部的路由花费的数量级是相同的,即到第一类外部路由的花费值 = 本路由器到相应的ASBR的花费值+ASBR到该路由目的地址的花费值。对于第二类外部路由是指引入的是BGP路由,由于这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的花费远远大于在自治系统之内到达ASBR的花费。所以计算路由花费时将主要考虑前者,即到第二类外部路由的花费值 = ASBR到该路由目的地址的花费值。如果该值相等,再考虑本路由器到相应的ASBR的花费值。
OSPF一共将路由分为四级,按优先级从高到低排列:
1、区域内路由 ? 2、区域间路由 ? 3、自治系统外一类路由 ? 4、自治系统外二类路由
其中前两种路由在路由表中的优先级是一样的,缺省值为10;后两种路由在路由表中的优先级是相同的,缺省值是150。
STUB区域:STUB区域是指那些不传播Type5类型(即引入的外部路由)的LSA的区域。
在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。为了保证到自治系统外的路由依旧可达,由该区域的ABR生成一条缺省路由(0.0.0.0)传播到区域内,因为所有到自治系统外部的路由都必须通过ABR才能到达。STUB区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常的,STUB区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。或者该区域虽然有多个ABR,但这些ABR之间没有配置虚连接。
配置STUB区域的一些注意事项: ?1、骨干区域不能配置成STUB区域,虚连接不能穿过STUB区域。 ?2、如果想将一个区域配置成STUB区域,则该区域中的所有路由器都必须都配置该属性。 ?3、STUB区域内不能存在ASBR,即自治系统外部路由不能引入到区域内,区域的自治系统外部路由也不能在本区域内传播和传递到区域外。
NSSA(Not-So-Stubby Area)区域:STUB 区域虽然为合理的规划 OSPF 网络描绘了美好的前景,但她在实际的组网中又不具备可操作性,因为实际网络中不可能每台路由、每个接口都运行 OSPF 路由协议,STUB 区域必然需要存在 ASBR 路由器。
为此协议设计者提出了一种新的概念 NSSA,并且作为 OSPF 协议的一种扩展属性单独在RFC 1587中描述。
NSSA 需要完成如下任务: 1)自治系统外的 ASE 路由(自治系统外部路由)不可以进入到 NSSA 区域中,但是 NSSA 区域内的路由器引入的 ASE 路由可以在 NSSA 中传播并发送到区域之外。即:取消了 STUB 关于 ASE 的双向传播的限制(区域外的进不来,区域里的也出不去),改为单向限制(区域外的进不来,区域里的能出去)。
2)由于是作为 OSPF 标准协议的一种扩展属性,应尽量减少与不支持该属性的路由器协调工作时的冲突和兼容性问题。
为了解决ASE路由(自治系统外部路由)单向传递的问题,NSSA 中重新定义了一种LSA——Type 7类型的 LSA,作为区域内的路由器引入外部路由时使用,该类型的 LSA 除了类型标识与 Type 5 不相同之外,其它内容基本一样。这样区域内的路由器就可以通过 LSA 的类型来判断是否该路由来自本区域内。但由于Type 7类的 LSA 是新定义的,对于不支持 NSSA 属性的路由器无法识别,所以协议规定:在 NSSA 的 ABR 上将 NSSA 内部产生的Type 7类型的 LSA 转化为Type 5类型的 LSA 再发布出去,并同时更改 LSA 的发布者为 ABR 自己。这样 NSSA 区域外的路由器就可以完全不用支持该属性。
从上述描述可以看出:在 NSSA 区域内的所有路由器必须支持该属性(包括NSSA的ABR),而自治系统中的其他路由器则不需要。
由于NSSA是由STUB区域的概念改进得来,所以她的名字叫做: \,本意是:不是那么STUB的区域
路由聚合:
自治系统被划分成不同的区域,其主要目的是为了减少路由信息及路由表的规模。这主要是通过区域间的路由聚合来实现。ABR在计算出一个区域的区域内路由之后,查询路由表,将其中每一条OSPF 路由封装成一条Type3类型的LSA发送到区域之外。需要注意的是:路由
聚合只有在ABR上配置才会有效。
OSPF协议根据链路层封装协议不同分为以下四种网络类型:
Broadcast:当链路层协议是Ethernet时,OSPF缺省认为网络类型是Broadcast。在这种类型网络中, 以组播地址(224.0.0.5,224.0.0.6)发送协议报文,需要选举DR,BDR。 NBMA
当链路层协议是Frame Relay、X.25时,OSPF缺省认为网络类型是NBMA。在这种类型网络中, 以单播地址发送协议报文,必须手工配置邻居的IP地址,需要选举DR,BDR。 Point-to-Multipoint
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型,通常由NBMA的类型手工修改而来,如果NBMA类型的网络不是全连通的。 在这种类型网络中,以组播地址(224.0.0.5)发送协议报文,不需要选举DR,BDR。 Point-to-Point
当链路层协议是PPP,HDLC,LAPB时,OSPF缺省认为网络类型是Point-to-Point。在这种类型网络中, 以组播地址(224.0.0.5)发送协议报文,不需要选举DR,BDR。
路由器根据在自治系统中的不同位置划分为以下四种类型: IAR(Internal Area Router):
区域内路由器,是指该路由器的所有接口都属于同一个OSPF区域。这种路由器只生成一条Router LSA,只保存一个LSDB。 ABR(Area Border Router):
区域边界路由器,该路由器同时属于两个以上的区域(其中必须有一个是骨干区域,也就是区域0)。该路由器为每一个所属的区域生成一条Router LSA,为每一个所属的区域保存一个LSDB。并根据需要生成Network Summary LSA(Type = 3)和 ASBR Summary LSA(Type = 4)。
BBR (BackBone Router):
骨干路由器,是指该路由器属于骨干区域(也就是0 区域)。由定义可知,所有的ABR都是骨干路由器,所有的骨干区域内部的IAR也属于BBR。 ASBR(AS Boundary Router): 自治系统边界路由器,是指该路由器引入了其他路由协议(也包括静态路由和接口的直接路由)发现的路由。需要注意的是ASBR并不一定在拓扑结构中位于自治系统的边界。ASBR生成AS External LSA(Type = 5)。
一个运行OSPF协议的接口状态根据接口的不同类型可划分为以下四种: DR、BDR、DROther:
当接口的类型为Broadcast、NBMA时,需要在网段内选举DR、BDR,根据选举的结果不同,接口的状态可能是以上三种中的一种。 Point-to-Point:
当接口的类型为Point-to-Point、Point-to-Multipoint时,不需要在网段内选举DR、BDR,此时接口的状态是Point-to-Point。
OSPF计算出的路由不会有自环,主要有以下原因:?
1、每台路由器描述的是自己能够确保正确的信息——自己周边的网络拓扑结构。并且在生成的LSA中标记了该信息的生成者——写入自己的Router ID。其他的路由器只负责在网络
中传输该信息,而不会有任何的更改。这一点保证了无论网络的拓扑结构如何,无论路由器位于网络中的什么位置,都可以准确无误的接收到全网的拓扑结构图。
2、路由计算的算法是SPF算法。计算的结果是一棵树,路由是树上的叶子节点。从根节点到叶子节点是单向不可回复的路径。
3、当网络的拓扑结构发生变化时(此时最易产生路由自环),会有一台(或多台)路由器感知到这一变化,重新描述网络拓扑结构,并将其通知给其他路由器。每个路由器接收到更新信息后,都会立即重新运行SPF算法,得到新的路由。
OSPF协议不会产生路由自环”这句话的严格定义应该是:OSPF协议生成的自治系统内部路由是无自环的,引入的自治系统外部路由则无法保证。
默认路发布方式:
(1)强制发布默认路由
default-route-advertise always I 不管本地有没有默认路都会向外发布
II强制发布默认路由不接收OSPF其它邻居发布的OSPF默认路由 (2)半强制发布默认路由
default-route-advertise
只有在本地有默认路由的情况下才会向外发布默认路由
IS-IS(Intermediate System-to-Intermediate System:中间系统到中间系统):是一种路由选择协议,是基于OSI域内(intradomain)的路由选择协议,Intermediate System是OSI中Router的叫法。IS-IS可以用作IGP(Interior Gateway Protocol:内部网关协议)以支持纯IP环境、纯OSI环境和多协议环境。IS-IS是一种链路状态协议,基于SPF算法,以寻找到目标的最佳路径,由于SPF算法本身的优势,IS-IS协议天生具有抵抗路由环路的能力。
LSP:Link State PDU,含有链路状态信息的IS-IS报文。
Level-1:用于区域内路由
Levle-2 (Backbone,骨干区):用于区域间路由
结点(Nodes):
Level-1 Routers(L1) Level-2 Routers(L2)
Level-1 and Level-2 Routers(L1/L2)
Levle-1-2:一个L1/L2路由器如果和其它区域的路由器形成邻接关系,那么它将通告本区域内的L1路由器,它有区域的出口点。
L1路由器: 接收来自其他系统的报文,如果报文的目的地址在本区域内,就直接将报文转发到目的系统;如果报文的目的地址在本区域外,则将报文转交给离自己最近的一个L1L2路由器。 ? 仅拥有同一区域中的路由器。
? 拥有自己区域中的信息。 ? 观察L1 LSP,寻找“最近”的L1L2路由器。 ? 安装一条通向“最近”L1L2路由器的缺省路径。
L2路由器:接收来自L1路由器的报文,并按照目的地址将报文转交给其他区域的L2路由器。接收来自其他区域的L2路由器的报文,并按照目的地址将报文转发。 ? 可能拥有其他区域中的邻居。 ? 拥有关于L2拓扑的信息。 ? 拥有关于什么L1目标可以到达,以及如何通过L2拓扑到达它的信息。 ? L2路由其通常也执行L1路由,因此通常称可以执行L1路由的L2路由器为L1L2路由器。 ? 骨干区L2必须是连续的。
L1/L2:完成它所在的区域和骨干之间的路由信息的交换,既承担L1的职责也承担L2的职责。
Intergrated IS-IS协议适用的链路(Links):
1、点对点的链路(Point to Point Links):PPP,HDLC等 2、广播网链路(Broadcast Links):Ethernet,Tokingring等 3、NBMA(Non-Broadcast Multi-Access ):Frame-relay,ATM等 并不能真正支持,只有将NBMA链路配置成子接口来支持IS-IS 子接口类型为P2P或广播网络
注意:和OSPF不同,它不能支持P-2-MP(点到多点)的网络类型
ISIS区域的划分:
区域(area)可以随便划分,便具有以下特点:
(1)要保证一个IGP内各个区域(area)的level 2 设备至少是串联
(2)一个区域内的level1设备必须和本区域内的具有level 1功能的设备对接 (3)区域间必然是具有level2功能的路由器对接
(3)区域划分的主要原则是要适合于管理及将来网络的扩容
(目前实际部署的网络使用level2进行部署,便于将来对网络进行扩展)
ISIS路由选路:
(1)ISIS首先优选level 1 的路由 (2)cost 值选路(基本、扩展cost) 基本cost:1-63
高级cost:1-16777215
(3)level 1设备选择距离自己最近的level2设备作为出口,在本地生成默认路由、次优
路由、路由渗透
ISIS默认路由的发布
默认路由发布的几种方式:
(1)Level会自动计算出一条指向边界路由器的默认路由
(2)强制发布默认路由
在ISIS视图下通过default-route-advertise 命令强制发布,只有在同一级别的路由器传播(在本地不生成默认路由,在L1路由器上比根据ATT自动生成的优先)
IS-IS的报文及作用:
LSP ----- 链路状态报文
IS-IS HELLO ---------- 维护邻接
CSNP ------ 完全序列号报文 用于广播链路上的LSPDB 同步 PSNP ------- 部分序列号报文 非广播链路时,响应LSP报文
DIS:Designated IS,指定中间系统,广播网上的领袖路由器,相当于OSPF中的DR。 Pseudonodes:伪结点。
1、将多重访问链路模拟成伪结点,由DIS产生,和本网络中的所有路由器建立联系。 2、DIS负责生成伪节点的LSP,伪节点和本网络中的所有路由器建立联系,并且不允许它们之间直接联系。
3、IS-IS 协议中,广播子网和NBMA网络在外部被看成一个伪节点。同一网络中的IS 之间会根据各自优先权选出一个DIS(Designated IS)。网络中的非DIS 会向DIS 报告自己的链路状态信息,而DIS 则代表整个网络中所有的IS 报告链路状态信息。选举DIS 的原因与OSPF 中选举DR 的原因一样,其目的是为了减少不必要的邻接关系和路由信息的交换。 伪节点不是一个真实的路由器,但它要占用一个额外的LSP 项。伪节点LSP是由DIS 创建的。
DIS的选举过程:
IS-IS 协议中,DIS 的选举是自动进行的。选举的依据是同一网络中各接口的优先权,如果最高的优先权的接口不止一个则从这些优先权相同的接口中找MAC 地址最大的。DIS 的选举是在IS 自身进行的,网络中的各个IS 根据所在网络的接口上的邻居信息来进行选举。由于整个网络中的邻居信息是一致的,所以各自进行的选举结果是相同的。
DIS的选举原则:
1.只有在广播和NBMA类型的网络接口上才会选举DIS,在Point-to-Point类型的接口上不需要DIS 的选举;
2.DIS 是针对IS 的接口而言的。某台IS 在这个接口上可能是DIS ,而在另一个接口却可能不是;
3.不同层次有不同层次的DIS,即L1级的广播网选举L1级的DIS,L2级的广播网选举L2级的DIS;
4.IS-IS中不存在备份DIS,当一个DIS不能工作时,直接选举另一个;
5.DIS由整个广播网络上优先级最高的IS担当,如果两个路由器拥有相同的优先权,则选择具有最大MAC地址的一个。
IS-IS协议地址称为NET(Network Entity Title)的组成可分成三部分:
?区域地址: 该部分长度是可变的。区域地址标识区域的路由域长度,并在路由域里固定。 ?System ID: 长度为6个八位字节,在一个自治系统中值是唯一的。 ?N选择器: 长度总是1个八位字节,用来指定上层协议。当N选择器设置成0时,用于
IP网络。
所有的IS-IS地址必须遵从如下限制:
1、一个中间系统(路由器)至少有一个NET(实际中最多有3个,所有NET 必须有相同的System ID),不能有两个中间系统具有相同的NET 。 2、一个路由器可以有一个或多个区域地址。 多NET设置只有当区域需要重新划分时才需要使用,例如多个区域的合并或者将一个区域划分为多个不同的区域。这样可以保证在进行重新配置时仍然能够保证路由的正确性。
3、IS-IS NET地址至少需要八个字节:一个字节的区域地址,六个字节的系统标识和一个字节的N 选择器,最多为20个字节。
节点识别:
1、在IS-IS中,每个IS由其系统ID来标识,系统ID的长度为6个字节。但由于在广播子网和NBMA引入了伪节点的概念,为了识别伪节点在系统ID后面扩展了一个字节: 2、正常节点(非伪节点)直接在系统ID后扩展一个字节的零。
3、伪节点根据DIS的系统ID加上伪节点所在DIS上的接口ID的一个字节。
1. 系统ID
唯一标识自治系统内的一个IS。 2. 伪节点ID
伪节点ID只有在广播子网或者NBMA上才有,它的值是伪节点在DIS 上对应接口的接口ID,DIS的伪节点ID 不为0。 3. LSP Number
由于一个IS 中的链路状态信息太多从而导致在一个链路状态的报文中不能装下,这些信息只能装在多个报文中。IS 给每一个分片分配一个LSP Number 号。 4. 链路状态报文ID
LSPID=System ID + Pseudonode ID + LSP Number 例子:
0001.0002.0003.00-00 粗体字:系统ID 斜体字:伪节点ID 下划线:LSP Number
泛洪算法:
泛洪算法的作用:
用来保证各个IS之间的链路状态数据库的一致性。 泛洪原则:
收到的信息比自己的新,更新自己的数据库并在网络上扩散开去,检查是否需要运行SPF算法;
收到的信息比自己的旧,更新信息的发送者; 收到的信息和自己相同,发确认消息。
IS-IS vs. OSPF 相同点:
1、都是内部网关协议(IGP),在同一自治系统(AS)内使用;
2、都是基于链路状态数据库的路由协议,采用SPF算法计算路由; 3、都有收敛速度快,无环路等特点,适合应用于大型网络; 4、都采用Hello协议来形成和维护邻居关系;
5、都是利用区域形成两层的层次性拓扑,都有Area的概念;
6、都能在区域间聚合路由,都支持VLSM和CIDR,适合大型网络; 7、在广播网络上都选举DR,且都产生LSA(LSP)来描述整个网段; 8、都有协议报文验证的能力。
9、都采用接口cost来描述并计算路由开销;
10、路由信息更新是触发更新的,而不是周期性发送整个路由信息;
11、对于链路状态数据库都有一个老化更新机制来保证数据库的正确和完整性;
12、通过合理的规划,能使得网络边缘区域的处理性能不够强的路由器能很好地运行协议。 不同点:
1、协议标准最初起源及设计目的不同;
2、协议报文的封装方式及所能支持的网络协议不同; 3、路由器与区域的关系及链路状态数据库组织方式不同; 4、对于骨干区域的定义不同;
5、Hello协议的复杂程度和形成邻居关系的要求不同; 6、数据库中LSP(LSA)老化方式不同; 7、广播网络上的DR选举方式不同;
8、对不同模型的网络类型支持能力不同;
9、对于链路层metric的区分能力及所能支持的最大metric不同。
不同点详解:
1、IS-IS最初是为ISO的标准协议,为CLNS(connect less network service 无连接网络服务)设计的,后来增加了对IP的支持;而OSPF一开始就是IETF为IP网络设计的;由于IS-IS历史上是为CLNS路由而制定的,发展比较缓慢,对于IP的支持很多地方需要改进,虽然已经提出了draft,但大部分还没有形成RFC,CNLP(connect less network protocol 无连接网络协议)和IP双环境使用的优势并不明显,是一个不是很成熟的协议; OSPF是专门为IP设计的,更适合IP的路由,发展成熟,标准化程度高,支持厂商多,使用多缺点暴露多,改进也多。
2、IS-IS协议直接在链路层上运行,报文直接封装在链路层报文中,支持CLNS、IP等多种协议;OSPF报文封装在IP中,只支持IP协议;
3、IS-IS协议中整个路由器只能全部属于一个区域,区域边界位于两个路由器之间,路由器的LSDB按Level来维护;而OSPF按接口来,一个路由器可以属于多个区域,为每个区域维护一个LSDB数据库; 4、OSPF通过特殊的区域ID Area0区来定义骨干区,而IS-IS是通过连续的L2路由器来组成骨干区; 5、IS-IS的采用的Hello协议比较简单,OSPF比较复杂;而且IS-IS检查比较宽松,邻居之间的Hello和Dead等间隔不一定必须一样,不像OSPF要求必须一致才能形成邻居关系;
IS-IS的LSP生存时间是从20分钟(可配置)往下计算到0来清除旧的LSP,而OSPF是从0往最大值涨到60分钟(周期不可配置)来清除更新旧的LSA的;
6、IS-IS协议的DR选举比较简单,而且是抢占式可预见的,优先级最高的是DR,优先级别为0的也可能
成为DR;为了保证变动比较小,OSPF协议DR选举机制比较复杂并不可预见,优先级最高的不一定是DR,优先级为0的不可能成为DR,并且有BDR的概念,DR失败,BDR立即承担DR的职责,而IS-IS没有BDR,DR失败,重新选举DR;
7、IS-IS不支持P-2-MP类型的网络,并且NBMA网络都只能设置为子接口模拟成P2P来运行;OSPF可以很好地支持以下各种网络类型:Broadcast,NBMA,P-2-P,P-2-MP;
8、标准的IS-IS 接口cost取值为:0-63,对链路层区分不够,并且一个网络的metric达到1024就认为不可达;而OSPF接口cost取值范围为:0-1024,一个网络的metric达到65535才认为不可达。
OSPF 与ISIS 在区域划分上和支持的网络类型上有何区别:
OSPF 区域划分是基于接口上的,每个接口属于一个特定的区域,区域的边界在区域边界路由器内部ASBR。ISIS是以路由器为单位进行区域划分的,一个路由器属于一个区域,区域的边界在两个路由器之间。
支持的网络类型,OSPF--- 广播、NBMA、点到点、点到多点。 ISIS ------ 广播、点到点 在NBMA网络中,只能通过配置多个子接口方式解决,如果一个NBMA网络中有N个RT,OSPF中是N,ISIS是N*N。
区域间路由选择:LEVEL-1中间系统会将路由器发给离最近的LEVEL-2中间系统,当存在多个出口时,选路可能不是最优但LEVEL-2中路由最少。
OSPF在这一点上可选配置,缺省为支持最优选路,如希望减少流量,可配置为STUB区域。
BGP概述:
1、BGP是外部路由协议,用来在AS之间传递路由信息
2、是一种距离矢量的路由协议,从设计上避免了环路的发生 3、为路由附带属性信息
4、传送协议:TCP,端口号179 5、支持CIDR(无类别域间选路) 6、路由更新:只发送增量路由 7、丰富的路由过滤和路由策略 8、BGP协议从1989年以来就已经开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP- 4)。
BGP两种邻居:IBGP和EBGP
IBGP:如果两个交换BGP报文的对等体属于同一个自治系统,那么这两个对等体就是IBGP对等体(Internal BGP)
EBGP:如果两个交换BGP报文的对等体属于不同的自治系统,那么这两个对等体就是EBGP对等体 (External BGP)
BGP 的路由通告原则:
多条路径时,BGP Speaker只选最优的给自己使用; BGP Speaker只把自己使用的路由通告给相邻体;
BGP Speaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP); BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告; BGP Speaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定;
连接一建立,BGP Speaker将把自己所有BGP路由通告给新相邻体。
按照注入的方式可分为三类:纯动态注入、半动态注入、静态注入。 纯动态注入是指:路由器将通过IGP路由协议动态获得的路由信息直接注入到BGP中去。纯
动态注入方式没有对路由信息做任何过滤和选择,它会把路由器获得的所有IGP 路由信息都引入到BGP系统中。
半动态注入是指:路由器有选择性的将IGP发现的动态路由信息注入到BGP系统中去。它和
纯动态注入的区别在于不是将IGP发现的所有路由信息注入到BGP中去。
静态注入是指:路由器将静态配置的某条路由注入到BGP系统中
BGP的四种报文:
OPEN ---- 建立BGP 对等体 KEEPALIVE ------- 保持激活 UPDATE -------- 更新
NOTIFICATION --------- 通知
BGP对等体间通过发送OPEN报文来交换各自的版本、自治系统号、保持时间、BGP标识符等信息,进行协商。
UPDATE报文携带的是路由更新信息。其中包括撤销路由信息和可达路由信息及其路径属性。
当BGP检测到差错(连接中断、协商出错、报文差错等)时,发送NOTIFICATION 报文,关闭同对等体的连接。
KEEPALIVE报文在BGP对等体间周期地发送,以确保连接保持有效。
BGP状态机:IDLE -- CONNECT -- ACTIVE--OPEN SENT -- OPEN CONFIRM -- ESTABLISHED Idle(空闲):Idle 是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。 Connect(连接):在Connect 状态,BGP发起第一个TCP连接,如果 连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect 状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就转入Active 状态。 Active(活跃):在Active状态,BGP总是在试图建立TCP 连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect 状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就继续保持在Active状态,并继续发起TCP连接。 OpenSent(打开消息已发送):在OpenSent 状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open 报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive 报文,并复位Keepalive 计时器,开始计时。同时转入OpenConfirm状态。
OpenConfirm(打开消息确认)状态:在OpenConfirm状态,BGP等待一个Keepalive 报文,同时复位保持计时器,如果收到了一个Keepalive 报文,就转入Established 阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle 状态。 Established(连接已建立):在Established 状态,BGP 邻居关系已经建立,这时,BGP将和它的邻居们交换Update 报文,同时复位保持计时器
BGP协议中消息的应用:
1、通过TCP建立BGP连接时,发送open消息
2、连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息 3、稳定后此时要定时发送KEEPALIVE消息以保持BGP连接的有效性
4、当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对端
BGP协议中消息的应用详解:
1、BGP使用TCP 建立连接,本地监听端口为179。 和TCP建立相同,BGP连接的建立也要经过一系列的对话和握手。TCP通过握手协商通告其端口等参数,BGP的握手协商的参数有:BGP版本、BGP连接保持时间、本地的路由器标识(Router ID)、授权信息等。这些信息都在Open 消息中体现。
2、BGP 连接建立后,如果有路由需要发送则发送Update 消息通告对端路由信息。Update消息主要用来通告路由信息,包括失效(撤消)路由。Update 消息发布路由时,还要指定此路由的路由属性,用以帮助对端BGP协议选择最佳的路由。关于路由属性在BGP选择路由时的应用,参见BGP协议路由属性的应用部分。 3、在本地BGP路由变化时,也使用Update 消息修正对端BGP的路由表。
4、经过一段时间的路由信息交换后,本地BGP和对端BGP都无新路由通告,趋于稳定了。此时要定时发送5、KEEPALIVE消息以保持BGP连接的有效性。对于本地BGP,如果在超过保持时间的时间内,还未收到任何对端BGP消息,就认为此BGP连接已经无效,将此BGP连接断开。
6、当本地BGP在运行中发现错误时,要发送NOTIFY消息通告BGP对端。如对端BGP版本本地不支持,本地BGP收到了结构非法的Update 消息等。本地BGP退出BGP连接时也要发送NOTIFICATION消息。BGP收到NOTIFICATION消息后,要作相应处理。
路由属性被分为以下几类:
必遵属性:在路由更新数据报文中必须存在的路由属性,这种属性域在BGP 路由信息中有着不可替代的作用,如果缺少必遵属性,路由信息就会出错。如AS-Path 就是必遵属性,BGP用它来避免路由环路,没有它路由就可能出问题。
可选属性:它是可选的,不一定存在于路由更新数据报文中,我们设置它完全是根据需要。如MED属性,我们就用它来控制选路。
过渡属性:具有AS间可传递性的属性就是过渡属性,过渡属性的域值可以被传递到其他AS中去并继续起作用。如Origin属性,路由信息的起源一旦确定,域值会一直存在,无论此路由信息被传到哪个AS中去。 非过渡属性:只在本地起作用,出了自治系统,域值就恢复成缺省值。如Local-preference 。
以下列出几种常用属性的情况:
代码 Origin AS-Path Next-hop MED Local-preference 属性名 必遵 必遵 必遵 可选 可选 必遵/可选 过渡/非过渡 过渡 过渡 过渡 非过渡 非过渡 Community 可选 过渡 每个属性都有特定的含义并可以灵活的运用,使得BGP的功能十分强大。 BGP属性可以扩展到256种。
BGP常用的六种属性:
Origin 起点属性:定义路径信息的来源,标记一条路由是怎样成为BGP路由的。如IGP、EGP、Incomplete等。
As-Path AS 路径属性:是路由经过的AS 的序列,即列出在到达所通告的网络之前所经过的AS 的清单。BGP发言者将自己的AS前置到接收到的AS 路径的头部,它可以防止路由循环,并用于路由的过滤和选择。
Next hop 下一跳属性:包含到达更新消息所列网络的下一跳边界路由器的IP地址。BGP的下一跳与IGP有所不同,它可以是通告此路由的对等体的地址,如EBGP,这同IGP是相同的。而在其它情况下,BGP使用第三方的下一跳,如IBGP对从EBGP对等体获得的下一跳不加改变的在自治系统内传递;在多路访问媒体上,BGP以路由的实际来源为下一跳,即使它不是BGP对等体。
MED (Multi-Exit-Discriminators)属性: 当某个AS有多个入口时,可以用MED属性来帮助其外部的邻居路由器选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。 Local-Preference 本地优先属性: 本地优先属性用于在自治系统内优选到达某一个目的地的路由。反映了BGP发言人对每个外部路由的偏好程度。本地优先属性值越大,路由的优选程度就越高。
Community 团体属性: 团体属性标识了一组具有相同特征的路由信息,与它所在的IP子网和自治系统无关。公认的团体属性值有:NO-EXPORT、NO-ADVERTISE、LOCAL-AS 和 INTERNET。
起点(Origin)属性 一般情况下: 1)BGP 把聚合路由和用直接注入到BGP路由表的具体路由看成是AS内部的,起点类型设置为IGP。
2)BGP把通过其它IGP协议引入的路由起点类型设置为Incomplete。 3)BGP把通过EGP得到的路由的起点类型设置为 EGP。
在其它因素相同的情况下,按IGP、EGP、Incomplete 的顺序选择路由。
下一跳(Next Hop)属性
下一跳属性也是一个公认必遵属性,BGP 中的下一跳不同于IGP 中的下一跳,BGP中的下一跳 概念稍微复杂,它可以是以下三种形式之一:
1)BGP在向IBGP通告从其它EBGP得到的路由时,不改变路由的下一跳属性,本地BGP将从EBGP得到的路由的下一跳属性直接传递给IBGP。
2)BGP在向EBGP对等体通告路由时,下一跳属性是本地BGP与对端连接的端口地址。 3)对于可以多路访问的网络(如:以太网或帧中继),下一跳情况有所不同
团体(Community)属性
团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界。公认的团体: no-export
不通告给联盟/AS外的BGP相邻体
no-advertise
不通告给任何BGP相邻体 local-AS
不通告给EBGP相邻体 Internet
通告给所有其他路由器
local-preference的使用
在本域内进行BGP路由优选,local-preference的缺省值是100,值越大优先级越高。 local-preference 设置:
(1)route-policy tian permit node 1 if-match acl 101 apply local-preference 555 (2)改变默认本地优先级
default local-preference XXX
MED值的使用
主要在输出路由进行控制:
(1)route-policy tian permit node 1 if-match acl 101 apply cost 777 (2)更改默认输出MED值: default med XXX
(3)复制iBGP路由的下一跳的IGP路由的cost值到eBGP路由的MED中
route-policy igpcost permit node 1
if-match acl 101 apply cost-type internal
As-path的使用
每经过一AS域,在出域时将自己的域号添加到AS-path属性内,主要作用: (1)进行路由选路 (2)环路检测
路由反射器的使用:
为了较少由于全连接而造成的N平方问题,建立了路由反射器。 RR路由传播规则:
(1)从EBGP邻居来的路由发布自己所有客户机和非客户机 (2)从IBGP邻居来的路由发布自己所有客户机和EBGP邻居 (3)从client邻居来的路由发布自己所有客户机和非客户机
EBGP路由的负载分担
方法一:使用Balance BGP路由分担命令改变优选策略,形成等值路由
方法二:ASBR间多链路,使用Loopback接口创建EBGP连接,通过到Loopback的IGP等值
路由迭代形成BGP路由的负载分担。
BGP路由的引入
按路由的类型引入 2、Network引入 精确引入路由
默认路由发布:
1、通过peer XXXX default-route-advertise 向BGP邻居发布默认路由
bgp 100 undo synchronization peer 20.0.0.5 as-number 100 peer 20.0.0.5 default-route-advertise peer 20.0.0.5 connect-interface LoopBack0
2、使用default-route imported命令引入IGP的默认路由 (import-route不能引入默认路由)
BGP路由选择过程
综合起来,本地BGP路由选择的过程为: 1、如果此路由的下一跳不可达,忽略此路由 2、选择本地优先级较大的路由
3、选择本地路由器始发的路由(本地优先级相同) 4、选择AS路径较短的路由
5、依次选择起点类型为IGP,EGP,Incomplete类型的路由 6、选择MED较小的路由
7、选择RouterID较小的路由
BGP路由聚合的使用 两种聚合方式: (1)自动聚合:
summary automatic (2)手动聚合: aggregate 手动聚合三类结果:
1、通告聚合路由和具体路由 2、只通告聚合路由
增加detail-suppressed 3、通告聚合路由和部分具体路由 增加suppress-policy
BGP组网规则:
(1)iBGP路由器全联接从IBGP邻居来的路由不向它的IBGP邻居转发路由反射器RR的替
代方案
(2)BGP邻居-内部TCP可达 (3)同步和非同步:
1、同步要求BGP路由必须引入到IGP内
2、非同步要求在网络规划时保证路由的双向可达 eBGP连接的建立方法: 1、使用对接接口地址
2、使用Loopback管理地址
注意此时必须使用peer XXX ebgp-multihop使能多跳 eBGP路由器配置注意点:
1、对于AS内部的iBGP邻居,配置 peer XXX next-hop-local
2、如果本AS不是transit AS,对于eBGP邻居,过滤所有非本AS路由
配置BGP注意的事项:
忠告一、永远不要试图把BGP的路由引入到IGP中
如果你这样做了,不仅仅是被同行耻笑的问题,你所在的AS内99%的路由器都瘫机了,全国人民都上不了网了 原因如下:
1、一台低端路由器上能装下10万条路由吗?能吗?
2、一台低端路由器需要知道整个因特网的路由吗?需要吗? 以上的命题可以推出如下结论:
每一台只运行IGP的路由器上一定会有一条缺省路由
忠告二、永远不要试图执行下面这两条命令(向外发送缺省路由) default-information originate neighbor A.B.C.D default-originate
如果你这样做了,不仅仅是被同行耻笑的问题,整个internet网都被你搞乱了。全世界人民都上不了网了。 原因如下:
1、我是远行的BGP的路由器,我知道整个internet的路由表,我还需要缺省路由吗?需要吗?
2、如果某条路由不在我的路由表中,它一定是不可达的。我不需要请教别人,因为他们也不知道。
忠告三、基于忠行(二)的原因,为了防止恐怖分子破坏,请在EBGP路由器上执行下列命令
access-list 1 deny 0 access-list 1 permit any router bgp 1
distribute-list 1 in
不将无效的流量指向他人,是一台BGP路由器应尽的义务。 以上命题可以推出如下结论:
每一台运行EBGP的路由器上一定不会有一条指向其它EBGP邻居的缺省路由。
忠告四:如果你的在的AS不是transit AS,请务必在之EBGP上执行如下命令: ip as-path access-list 10 permit^$ ip as-path access-list 10 deny * route-map my_route permit 20 match as-path 10
neighbor A.B.C.D route-map my_robte out
既然你不希望有外部的流量穿越你的AS,就不要将不属于你所在的AS的路由通告出去。
忠告五:鉴于目前的国际局势日益动荡,请务必执行如下的命令: bgp dampening
实践证明,目前internet上每分钟都有大量的路由在振荡。启动BGP的衰减功能非常具有现实的意义。
MPLS——Multi-Protocol Label Switching Multi-Protocol
支持多种三层协议,如IP、IPv6、IPX、SNA等 Label Switching
给报文打上标签,以标签交换取代IP转发
MPLS包头结构
通常,MPLS包头有32Bit,其中有: 20Bit用作标签(Label)
3个Bit的EXP, 协议中没有明确,通常用作COS
1个Bit的S,用于标识是否是栈底,表明MPLS的标签可以嵌套。 8个Bit的TTL 020232432 32比特标签CoSSTTL 2层头部MPLS头部IP头部数据 IP头部数据 2层头部MPLS头MPLS头
理论上,标记栈可以无限嵌套,从而提供无限的业务支持能力。这是MPLS技术最大的魅力所在。
标签(Label)
是一个比较短的,定长的,通常只具有局部意义的标识,这些标签通常位于数据链路层的数据链路层封装头和三层数据包之间,标签通过绑定过程同FEC相映射。 FEC:
Forwarding Equivalence Class,FEC(转发等价类),是在转发过程中以等价的方式处理的一组数据分组, MPLS创始人在秘笈本来规定:可以通过地址、隧道、COS等来标识创建FEC,
只可惜后辈弟子大多资质愚钝,不能理解其中的精妙之处,所以我们现在看到的MPLS中只是一条路由对应一个FEC。通常在一台设备上,对一个FEC分配相同的标签。 LSP:
标签交换通道。一个FEC的数据流,在不同的节点被赋予确定的标签,数据转发按照这些标签进行。数据流所走的路径就是LSP。 LSR:
Label Switching Router,LSR是MPLS的网络的核心交换机,它提供标签交换和标签分发功能。 LER:
Label Switching Edge Router,在MPLS的网络边缘,进入到MPLS网络的流量由LER分为不同的FEC,并为这些FEC请求相应的标签。它提供流量分类和标签的映射、标签的移除功能。
当一个链路层协议收到一个MPLS报文后,是如何判断这是一个MPLS报文
在以太网中:使用值是0x8847(单播)和0x8848(组播)来表示承载的是MPLS报文(0800是IP报文)
在PPP中:增加了一种新的NCP:MPLSCP,使用0x8281来标识
LDP(Label Distribution Protocol),是一个动态的生成标签的协议 具备如下的几大要素: 报文(或者叫消息)
邻居的自动发现和维护机制
一套算法,用来根据搜集到的信息计算最终结果。
MPLS的优点:
1、以短的、固定长度的标签代替IP头作为转发依据,提高转发速度 2、IP与ATM更好地结合
3、提供增值业务,同时不损害效率: VPN
流量工程 QOS
LDP消息
在LDP协议中,存在4种LDP消息: 发现(Discovery)消息
用于通告和维护网络中LSR的存在。 会话(Session)消息
用于建立,维护和结束LDP对等实体之间的会话连接。 通告(Advertisement)消息
用于创建、改变和删除特定FEC-标签绑定。 通知(Notification)消息
用于提供消息通告和差错通知。
LDP邻居状态机 接收到Keep Alive以外消息
NON EXISTENT或超时;发送
会话连接建立接收到Init以外消息
或超时
INITIALIZED 发送Init消息收到可接受的Init消息;发送Init消(息主动方)
发送Keep Alive消息(被动方)
OPENSENTOPENREC 接收到可接收的Init消息;发送Keep Alive消息接收到Init以外消息
或超时; 接收到Keep Alive消息
OPERATIONAL接收到Shutdown消息
或超时;发送Shutdown消息
其他LDP消息
LDP会话建立的状态迁移图
标签的分配和管理 标记分发方式
DOD(Downstream On Demand)下游按需标记分发 DU(Downstream Unsolicited)下游自主标记分发 标记控制方式:
有序方式(Odered)标记控制
独立方式(Independent)标记控制 标签保留方式 保守方式 自由方式
上游与下游:在一条LSP上,沿数据包传送的方向,相邻的LSR分别叫上游LSR(upstream LSR )和下游LSR(downstream LSR)。下游是路由的始发者
LDP标签分配方式(DU)
1、下游主动向上游发出标记映射消息。
2、标签分配方式中同样存在水平分割,即:对我已经选中的出口标签,就不再为下一跳分配出标签。
3、标签是设备随机自动生成的,16以下为系统保留。
LDP标签分配方式(DOU)
还有一种DOD方式(由上游向下游请求),较少使用
LDP标签保留方式
自由方式(Liberal retention mode) 保留来自邻居的所有发送来的标签
优点:当IP路由收敛、下一跳改变时减少了lsp收敛时间 缺点:需要更多的内存和标签空间。
保守方式(Conservative retention mode)
只保留来自下一跳邻居的标签,丢弃所有非下一跳邻居发来的标签。 优点:节省内存和标签空间。
缺点:当IP路由收敛、下一跳改变时lsp收敛慢 比较流行的是自由方式。
LDP标签控制方式
有序方式(Odered)标记控制: 除非LSR是路由的始发节点,否则LSR必须等收到下一跳的标记映射才能向上游发出标记映射。
独立方式(Independent)标记控制:
LSR可以向上游发出标记映射,而不必等待来自LSR下一跳的标记映射消息。 比较流行的是有序方式。
LDP标签分配
如果采用(DU+自由+有序)的标签分配及控制方式:
1、发现自己有直连接口16:53 2006-6-29路由时会发送标签;
2、收到下游到某条路由的标签并且该路由生效(也就是说,在本地已经存在该条路由,并且路由的下一跳和 标签的下一跳相同)时会发送标签。 3、标签表中会存在大量的非选中的标签。
标签转发表
标签转发表中的IN和OUT,是相对于标签转发而言,不是相对于标签分配的IN和OUT: 心法口诀:入标签是我分给别人的,出标签是别人分给我的。 我分配的标签是给别人用的,我不会添加到报文中。
倒数第二跳弹出(PHP)
1、在最后一跳,最外层的标签已经没有意义,因此可以在倒数第二跳将标签弹出,减少最后一跳的负担。
2、如果只有一层标签,则最后一跳直接进行IP转发;否则,对内层标签做标签转发。
上游设备如何知道自己是倒数第二跳呢?
其实很简单,在倒数第一跳为其分配标签时做一下特殊说明即可(分配一个特殊的标签3)
路由环路的预防与检测
在MPLS域中建立LSP也要防止路径循环。
防止LSP的路径循环有两种方式: 最大跳数方式 路径向量方式
VPN中的角色: CE(Custom Edge):直接与服务提供商相连的用户设备。 PE(Provider Edge Router):指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。
P (Provider Router):指骨干网上的核心路由器,主要完成路由和快速转发功能。 由于网络规模不同,网络中可能不存在P路由器。PE路由器也可能同时是P路由器。
Overlay VPN-隧道建立在CE上 特点:
在CE与CE之间建立隧道,并直接传递路由信息,路由协议数据总是在客户设备之间交换,服务商对客户网络结构一无所知。典型代表是GRE、IPSec 优点:
不同的客户地址空间可以重叠,保密性、安全性非常好。 缺点:
需要客户自己创建并维护VPN。通常客户不愿意,也没有这个能力。
Overlay VPN-隧道建立在PE上 特点:
在PE上为每一个VPN用户建立相应的GRE隧道,路由信息在PE与PE之间传递,公网中的P设备不知道私网的路由信息。 优点:
客户把VPN的创建及维护完全交给服务商,保密性、安全性比较好。 缺点:
不同的VPN用户不能共享相同的地址空间,即使可以共享,则PE与CE之间的地址、tunnel之间的地址一定不能相同,并且必须使用大量的ACL和策略路由。在实际中不具备可行性。
Overlay VPN的本质
Overlay VPN的本质是一种“静态”VPN,这好比是静态路由,所以 他具有类似静态路由的全部缺陷:
1、所有的配置与部署都需要手工完成,而且具有N^2问题:如果某个客户的VPN中新增了一个结点,则需要完成如下工作
a、在这个新增结点上建立与所有已存在的N个结点的隧道及相关的路由。
B、对于已存在的N个结点,需要在每个结点上都建立一个与新增结点之间的隧道及相关的路由。
2、由于是“静态”VPN,则无法反应网络的实时变化。
而且,如果隧道建立在CE上,则必须由用户维护,如果建立在PE上,则又无法解决地址冲突问题。
Peer-to-Peer VPN
1、如同静态路由一样,所有具有“静态”性质的东西都不太适合大规模的应用和部署,难
以担当重任。所以,首先要解决的问题就是将VPN的部署及路由发布变为动态性。Peer-to-Peer VPN的产生就是源于这种思想。 2、这里的 Peer-to-Peer是指CE-to-PE,也就是要在CE与PE之间交换私网路由信息,然后由PE将这些私网路由在P-Network中传播(P-Network上肯定是运行了一种动态路由协议),这样这些私网路由会自动的传播到其他的PE上。
3、这种VPN由于私网路由会泄露到公网上,所以必须严格的通过路由来控制,即:要确保同一个VPN的CE路由器上只能有本VPN的路由。
所以,通常CE与PE之间运行的路由协议,与P-Network上运行的路由协议是不同的,即使相同,也要有很好的路由过滤和选择的机制。
Peer-to-Peer VPN——共享PE方式
1、所有VPN用户的CE都连到同一台PE上,PE与不同的CE之间运行不同的路由协议(或者是相同路由协议的不同进程,比如OSPF)。
2、由路由始发PE将这些路由发布到公网上,在接收端的PE上将这些路由过滤后再发给相应的CE设备。
缺点:为了防止连接在同一台PE上的不同CE之间互通,必须在PE上配置大量的ACL。
Peer-to-Peer VPN——专用PE方式 为每一个VPN单独准备一台PE路由器,PE和CE之间可以运行任意的路由协议,与其他VPN无关。PE与P之间运行BGP,并使用路由属性进行过滤。 优点:无需配置任何的ACL了。 缺点:每一个VPN用户都有新增一台 专用的PE,代价过于昂贵了。
Peer-to-Peer VPN的本质
Peer-to-Peer VPN虽然很好的解决了“静态的问题”,但是仍旧有很多局限性: 1、由于没有使用隧道技术,导致私网路由泄露到公网上,安全性很差。
2、VPN的“私有”特性完全靠路由来保证,导致在CE设备上无法配置缺省路由。(why?) 3、仍旧存在所有的设备无法共享相同的地址空间问题。
要解决地址冲突问题,必须对现有的路由协议进行大规模的修改,这就要求一个路由协议具有良好的可扩展性。而具备条件的协议一定是基于TLV元素的。符合标准的只有EIGRP、BGP、ISIS。为什么选择BGP:
1、网络中VPN路由数目可能非常大,BGP是唯一支持大量路由的路由协议;
2、BGP是基于TCP来建立连接,可以在不直接相连的路由器间交换信息,这使得P路由器中无须包含VPN路由信息;
3、BGP可以运载附加在路由后的任何信息,作为可选的BGP属性,任何不了解这些属性的BGP路由器都将透明的转发它们,这使在PE路由器间传播路由非常简单。
VRF---VPN路由转发实例(VPN Routing & Forwarding Instance)
每一个VRF可以看作虚拟的路由器,好像是一台专用的PE设备。该虚拟路由器包括如下元素:
一张独立的路由表,当然也包括了独立的地址空间。
一组归属于这个VRF的接口的集合。 一组只用于本VRF的路由协议。
对于每个PE,可以维护一个或多个VRF,同时维护一个公网的路由表(也叫全局路由表),多个VRF实例相互分离独立。
其实实现VRF并不困难,关键在于如何在PE上使用特定的策略规则来协调各VRF和全局路由表之间的关系。 RT
BGP的扩展community属性:RT(Route Target)
扩展的community有如下两种格式:其中type字段为0x0002或者0x0102时表示RT。
Route Target本质
RT的本质是每个VPN实例表达自己的路由取舍及喜好的方式。可以分为两部分:Export Target与import Target
在一个VPN实例中,在发布路由时使用RT的export规则。直接发送给其他的PE设备 在接收端的PE上,接收所有的路由,并根据每个VPN实例配置的RT的import规则进行检查,如果与路由中的RT属性match,则将该路由加入到相应的VPN实例中。
RD(Route Distinguisher)
在成功的解决了本地路由冲突的问题之后,路由在网络中传递时的冲突问题就迎刃而解了。只要在发布路由时加上一个标识即可,这个标识就是RD。
编者注:RD主要是用来解决在同一PE中,不同的VPN有相同的IP地址时,用RD来标识路由下一跳应该送给那个VPN,其它情况下,值没任何意义。
RD的本质:
1、理论上可以为每个VPN实例配置一个RD。通常建议为每个VPN都配置相同的RD,不同的VPN配置不同的RD。但是实际上只要保证存在相同地址的两个VPN实例的RD不同即可,不同的VPN可以配置相同的RD,相同的VPN也可以配置不同的RD。
2、如果两个VPN实例中存在相同的地址,则一定要配置不同的RD,而且两个VPN实例一定不能互访,间接互访也不成。
3、RD并不会影响不同VPN实例之间的路由选择以及VPN的形成,这些事情由RT搞定。 PE从CE接收的标准的路由是IPv4路由,如果需要发布给其他的PE路由器,此时需要为这条路由附加一个RD。
VPNv4和IPv4 地址族
1、在IPv4地址加上RD之后,就变成VPN-IPv4地址族了——VPNv4。而原来的标准的地址族就称为IPv4。
2、VPNv4 地址族主要用于PE路由器之间传递VPN路由
3、VPN-IPv4地址仅用于服务供应商网络内部。在PE发布路由时添加,在PE接收路由后放在本地路由表中,用来与后来接收到的路由进行比较。CE不知道使用的是VPN-IPv4地址。 4、在VPN数据流量穿越供应商骨干时,包头中没有携带VPN-IPv4地址。
概念集合:
VRF:在一台PE上虚拟出来的一个路由器,包括一些特定的接口,一张路由表,一个路由协议,一个RD和一组RT规则。
RT:表明了一个VRF的路由喜好,通过他可以实现不同VRF之间的路由互通。他的本质就是BGP的community属性。 RD:为了防止一台PE接收到远端PE发来的不同VRF的相同路由时不知所措,而加在路由前面的特殊信息。在PE发布路由时加上,在远端PE接收到路由后放在本地路由表中,用来与后来接收到的路由进行比较。
Label:为了防止一台PE接收到远端PE发给本地不同VRF的相同地址的主机时不知所措,而加在报文前面的特殊信息。由本地PE在发布路由时加上,远端PE接收到保存在相应的VRF中。
SITE:一个VRF加上与其相连的所有的CE的集合。
VPN:是一些SITE的集合,这些SITE由于共享了相同的路由信息可以互通。
MP-BGP协议
MP-BGP (Multiprotocol Extensions for BGP-4 )
1、BGP-4仅仅支持IPv4,MP-BGP是为了让BGP可以用于传输更多协议(IPv6, IPX,...)的路由信息而进行的扩展。 2、为了保持兼容性,MP-BGP仅仅添加了两个BGP属性:MP_REACH_NLRI( MP_UNREACH_NLRI )和扩展团体属性。
3、MP_REACH_NLRI( MP_UNREACH_NLRI )可以用在BGP Update消息中用于通告或废止网络可达性信息。
4、私网Label映射消息携带在MP_REACH_NLRI属性中,前20位是标签,后4位则的前3位是EXP域,最后一位用于指示是否是栈底。
CE与PE之间如何交换路由 VRF在PE上配置。
PE 维护独立的路由表,包括公网和私网(VRF)路由表
公网路由表:包含全部PE和P 路由器之间的路由,由骨干网IGP产生。 私网路由表:包含本VPN用户可达信息的路由和转发表。
PE 和 CE 通过标准的EBGP、OSPF、RIP或者静态路由交换路由信息。
1、静态路由、RIP都是标准的协议,但是每个VRF运行不同的实例。相互之间没有干扰。
与PE的MP-iBGP之间只 是的redistribute操作。
2、EBGP也是普通的EBGP,而不是MP-EBGP,只交换经过PE过滤后的本VPN路由。
3、OSPF则做了很多修改,可以将本site的LSA放在bgp的扩展community属性中携带,
与远端VPN中的ospf之间交 换LSA。每个site中的OSPF都可以存在area 0,而骨干网则可以看作是super area 0。此时的OSPF由两极拓 扑(骨干区域+非骨干区域)变为3级拓扑(超级骨干区域+骨干区域+非骨干区域)
PE和CE设备之间的关系
1、PE 和 CE 路由器通过EBGP、RIP和静态路由交换信息,CE 运行标准路由协议 2、PE 维护独立的路由表:公网路由表和VPN实例的私网路由表
VPN实例路由的发布
1、PE路由器通过MPLS/VPN骨干网发布本地的VPN路由信息。
2、发送端 PE通过使用 MP-iBGP 将VPN实例路由从本地发布出去(带有export-target属性)
3、接收端 PE 将路由引入到所属的VPN实例中(有相匹配的import-target属性)
VPN实例路由注入到MP-iBGP
1、PE路由器需要对一条路由进行如下操作: 加上RD(RD为手工配置),变为一条VPN-IPV4路由。 更改下一跳属性为自己(通常是自己的loopback地址) 加上私网标签(随机自动生成,无需配置) 加上RT属性(RT需手工配置) 2、发给所有的PE邻居
MP-iBGP路由注入到VPN实例
1、每个VPN实例都有import route-target和 export route-target 的配置 2、发送PE发出MP-iBGP updates时,报文携带 export 属性。
3、接受PE 收到VPN-IPv4的MP-iBGP updates 时,判断收到的export是否与本地的VPN实例的import相等,相等就加入到相应的VPN实例路由表中,否则丢弃
MPLS/VPN 公网标签分配
1、PE 和 P 路由器通过骨干网IGP具有到bgp下一跳的可达性;
2、通过运行IGP和LDP,分配标签,建立LSP,获得到BGP下一跳的LSP通道
3、标签栈用于报文转发,外层标签用来指示如何到达BGP下一跳 ,内层标签表示报文的出接口或者属于哪个VPN实例(属于哪个VPN)
4、MPLS 节点转发是基于外层标签,而不管内层标签是多少
MPLS/VPN 报文转发
1、入口PE收到CE的普通IP报文后,PE根据入接口所属的VPN实例加入到相应的VPN转发表,查找下一跳和标签
2、倒数第二跳路由器弹出外层标签,根据下一跳发送至出口PE 3、出口PE路由器根据内层标签判断报文是去向哪个CE 4、弹出内层标签,用普通IP报文向目的CE进行转发
MPLS VPN 配置步骤
要实现BGP/MPLS VPN的功能一般需要完成以下步骤: 1、在PE、CE、P上配置基本信息
2、建立PE到PE的具有IP能力的逻辑或物理的链路 3、发布、更新VPN信息
BGP/MPLS VPN的配置包括 : 1、定义BGP/MPLS VPN
2、PE-CE间路由交换的配置 3、PE-PE间路由交换的配置
正在阅读:
ip基础知识04-11
管理会计计算题 - 图文05-21
网络经济时代的管理变革10-17
如何转化学困生03-15
人力资源若干管理办法下发稿06-05
《热力发电厂》习题解答04-01
中成药的常用剂型08-14
应用统计学实习报告 - 图文11-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 基础知识
- JK Rowling的哈佛毕业演讲
- 队列队形及基本体操
- 初三历史教师教学工作总结
- 机器人竞赛
- 财务管理学习题(修改版有答案)
- 最高院裁判规则集合:债务加入的法律效力解析
- 附1 变电站设备运行规程
- 最新汽车修理厂承包经营合同
- 2013年监理工程师《监理基本理论与法规》预测试卷一
- 平安文明工地建设实施方案
- 地下室施工方案
- 机械电子工程复试面试问题汇总
- 传感器原理及工程应用 部分习题答案
- “外国文学名著选读”学习提纲(全)
- 2018年2月份隐患排查、安全风险管控检查会议纪要 - 图文
- 七(6)班 班主任计划
- 2018-2024年中国裂缝检测仪行业市场分析及投资前景研究预测报告
- 个人形象设计必知七大礼仪
- 青岛版八年级数学下学期复习题一
- 典当纠纷裁判规范与案例适用集成