01 NA回顾(2020.0411)

电子书籍准备

  1. TCP/IP路由技术卷1(IGP)
  2. TCP/IP路由技术卷2(BGP)
  3. OSPF/ISIS详解

HCIE重认证以及考试

证书有效期2年,重认证3年,如在证书有效期2年内通过重认证,证书有效期刷新自成绩发布起计算2年;如在缓冲期1年内通过重认证,证书有效期刷新自原证书截止日起计算2年。
证书挂靠,>4000/年,挂靠除了经济利益之后,升级设备系统或者下载ensp都需要挂靠之后才能取得相应权限。
需要双证,第一证件(身份证、驾照、军官证等)和第二证件或者两个第一证件。

HCIE考试

笔试:90min,600/1000
实验:480min,80/100,上午(3hour)排错和诊断,下午(5hour)环境搭建
面试:60min,通过/不通过,3道题(项目,最重要,时间最长,注意措辞;2道理论)

课程内容

  1. IGP路由(OSPF和ISIS以及路由控制)
  2. BGP部分
  3. 交换知识
  4. MPLS VPN
  5. QoS
  6. 组播
  7. IPv6
  8. IPSEC VPN技术

组织

  1. ISO:国际标准化组织。OSI七层模型
  2. IEEE:国际电子电气工程协会。定义二层标准,例如802.1D、802.1w、802.1s、802.11
  3. IETF:互联网工程任务组。定义RFC文档

知识点

网络模型

  1. 冲突域:CSMA\CD,发送数据之前先侦听,先听后发,边发边听,冲突停发,延迟后发
  2. 广播域:处在同一个逻辑组,属于二层概念
  3. OSI七层协议:
    1. 物理层:传输比特流,规定电平、速率、针脚等,物理设备有双绞线、集线器、中继器、RJ45、同轴电缆、无线电波、光纤
    2. 数据链路层:传输数据帧,Mac,二层交换机
    3. 网络层:传输数据包(报文),IP等,路由器,三层交换机路由器和三层交换机的区别:本质上,路由器的本质是路由转发,三层交换机的本质是数据转发;功能上,路由器有VPN和NAT;使用上,内部网络用交换机,外部网络上用路由器;接口上,路由器可以接串口线,但是交换机没有
    4. 传输层:传输数据段,TCP(面向连接)/UDP(无连接)等,端到端的连接,建立、维护、拆除连接的功能
    5. 会话层:向两个实体提供建立连接和使用连接的方法
    6. 表示层:编码,数据格式转换,加解密
    7. 应用层:应用数据,直接面向用户
  4. TCP/IP
    1. 网络接口层:对应OSI物理层和数据链路层
    2. 网络层:对应OSI网络层
    3. 传输层:对应OSI传输层
    4. 应用层:对应OSI剩下三层

二层:数据链路层

当Type字段值<=1500(0x5DC)时为802.3,>=1536(0x0600)为Ethernet Ⅱ 以太帧

Ethernet Ⅱ 以太帧

  1. 帧格式
    Ethernet Ⅱ 以太帧
  2. Type值对应的协议
    Type值对应的协议

802.3 LLC SNAP以太帧

  1. 帧格式
    802.3 LLC SNAP以太帧

MAC地址

  1. 长度
    6字节(48bit):前24比特是OUI(厂商标识符),例如AA-BB-CC为思科的标识;后24字节为厂商自定义。
  2. 三种数据帧
    BUM报文:未知单播帧、广播帧、组播帧的统称,收到BUM报文之后进行泛洪处理
    1. 单播第1个字节的第8个比特为0
      已知单播帧,在交换机表项中,根据CAM表项直接转发(三层交换机也维护一张用于二层交换的地址表(通常称为CAM表),该表是MAC地址与出接口的对应关系)
      未知单播帧,不在交换机表项中,泛洪
    2. 组播第1个字节的第8个比特为1
      泛洪,常见组播帧:01-00-5E-xx-xx-xx(IP二层组播地址),33-33-33-xx-xx-xx(IPv6二层组播地址)等等,具体请参考以下两个链接:IEEE分配的OUI组播地址完整列表
    3. 广播FF-FF-FF-FF-FF-FF
  3. 交换机的工作机制
    交换机根据源MAC地址进行学习,构建CAM表项。收到数据帧根据目的MAC,查找CAM表项,如果匹配直接进行转发,否则进行泛洪。
    MAC地址表的老化时间:300秒

三层:网络层

IP

  1. IP报文格式
    IP报文格式
  2. 特殊的IP地址
    1. 默认路由:0.0.0.0/32
    2. 环回地址:127.0.0.0/8
    3. DHCP获取失败产生的地址(Windows):169.254.0.0/16
    4. 广播地址:255.255.255.255
    5. 定向广播(即子网内广播):网段192.168.10.0/24内的广播地址为192.168.10.255
    6. DHCP请求报文的源地址:0.0.0.0/32
    7. 私有地址:A类-10.0.0.0-10.255.255.255;B类-172.16.0.0-172.31.255.255;C类-192.168.0.0-192.168.255.255

ARP/RARP(反向ARP)

严格来讲属于2.5层

  1. ARP报文格式
    ARP报文格式

MAC地址表和ARP表的区别?MAC地址表,老化时间300s(5m),二层转发,接口和MAC关联;ARP地址表:老化时间1200s(20m),IP和MAC关联
交换机的一个接口是否可以关联多个MAC?可以。交换机A接口1连接交换机B接口2,交换机B上连接n台设备,此时交换机A的接口1可以学习到交换机B上连接的那n台设备的mac地址
交换机的多个接口是否可以关联一个MAC?不可以。否则mac地址震荡(flapping)
总结:一个接口对应多个mac,一个mac只能对应一个接口

  1. ARP分类
    1. 免费ARP:用来检测IP地址冲突;在VRRP时使用(在主机没有配置网关时);通过让网关定期发送免费ARP来防护MAC地址欺骗;通过定期发送免费ARP报文来防止ARP表项的老化。华为设备首先发送 Arp Request报文,思科首先发送Arp Reply报文,如果收到响应,则IP地址冲突
    2. ARP代理:局域网中,终端没有配置网关的情况下,请求的目标地址在路由器或者交换机的路由表中,则由路由器或者交换机代替目标地址作为应答。

ICMP

  1. 报文格式
    ICMP报文格式
  2. ICMP重定向
    ICMP重定向
    在同一个局域网中,网关和数据的下一跳在同一个网段中,从该接口收到的数据要从该接口再发送出去
    解决次优路径问题,ICMP报文中类型为5,代码为0
  3. tracert和traceroute区别
  • traceroute是Linux场景。发送的是UDP报文,端口号大于30000。第一个报文端口是33434,ttl=1;第一个报文端口是33435,ttl=2;......未到达目的之前回应的ICMP传输期间生存为0报文,达到目的主机之后,目的主机回应端口不可达
  • tracert是Windows场景。发送的是ICMP request报文(请求回显),第一次报文ttl=1,第二次报文为ttl=2,......未到达目的之前回应的ICMP传输期间生存为0报文,达到目的主机之后,目的主机回应回显应答报文

四层:传输层

TCP

  1. 报文格式
    TCP报文格式
  2. 3次握手
    3次握手
    第1次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)
    第2次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态
    第3次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手
  3. 4次挥手
    4次挥手
    第1次挥手:客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
    第2次挥手:服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。
    第3次挥手:服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
    第4次挥手:客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。
  4. 常见问题
    1. 为什么连接的时候是三次握手,关闭的时候却是四次握手?
      因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
    2. 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?
      虽然按道理,四个报文都发送完毕,我们可以直接进入CLOSE状态了,但是我们必须假象网络是不可靠的,有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。
    3. 为什么不能用两次握手进行连接?
      3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。现在把三次握手改成仅需要两次握手,死锁是可能发生的。作为例子,考虑计算机S和C之间的通信,假定C给S发送一个连接请求分组,S收到了这个分组,并发 送了确认应答分组。按照两次握手的协定,S认为连接已经成功地建立了,可以开始发送数据分组。可是,C在S的应答分组在传输中被丢失的情况下,将不知道S 是否已准备好,不知道S建立什么样的序列号,C甚至怀疑S是否收到自己的连接请求分组。在这种情况下,C认为连接还未建立成功,将忽略S发来的任何数据分 组,只等待连接确认应答分组。而S在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
    4. 如果已经建立了连接,但是客户端突然出现故障了怎么办?
      TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

UDP

  1. 报文格式
    UDP报文格式

数据传输过程

数据传输过程
  1. 第一阶段:判断新浪网是否在同一网段
  • 如果在同一网段,直接进行2层转发
  • 如果不在一个网段,则需要进行3层转发(进入第二阶段)
  1. 第二阶段:查找网关
  • 如果本地有网关的mac,直接封装数据发送至网关(进入第三阶段)
  • 如果本地没有网关mac,
    则会发送ARP请求(源IP为PC1的IP,源mac为PC1的mac,目的IP为AR1-g0/0/0的IP,目的mac为全F),
    网关回复ARP请求(源IP为AR1的IP,源mac为AR1-g0/0/0的mac,目的IP为PC1的IP,目的mac为PC1的mac),
    PC1封装数据发送至网关(源IP为PC1的IP,源MAC为PC1的mac,目的IP为server的IP,目的mac为AR1-g0/0/0的mac),
    (进入第三阶段)
  1. 第三阶段:数据传输
  • 网关已经设置NAT:
    AR1如果有AR2的mac直接封装数据发送,否则进行ARP。
    数据封装发送(源IP为AR1-g0/0/1的IP,源mac为AR1-g0/0/1的mac,目的IP为新浪服务器IP,目的mac为AR2-g0/0/1的mac)
    (进入第四阶段)
  • 网关没有设置NAT:
    AR1如果有AR2的mac直接封装数据发送,否则进行ARP。
    数据封装发送(源IP为PC1的IP,源mac为AR1-g0/0/1的mac,目的IP为新浪服务器IP,目的mac为AR2-g0/0/1的mac)
    (进入第四阶段)
  1. 第四阶段:数据到达服务器
  • AR3到AR4,AR4至SW1,SW1至新浪服务器之间的数据传输源目IP不变,但是mac地址为传输段两端的mac

五层:应用层

RIP

RIP的计时器

  • 更新定时器:30s,会更新本地路由表给邻居
  • 老化定时器:180s,如果180s没有收到邻居发送过来的更新报文,会认为该路由失效(不可达,但不删除)
  • 垃圾收集定时器:120s,在路由标记为无效后不会立刻从路由表中删除,只是会标记为不可达,再经过I垃圾收集定时器才会从路由表中删除
  • 抑制定时器:华为默认0

其他RIP相关知识

  • RIP的16跳即不可达
  • RIP是UDP协议承载的,端口号是520
  • RIP两种报文传播方式:广播和组播(地址224.0.0.9)
  • RIP的防环:
    • 水平分割:从一个接口收到的路由不会再从该接口发送出去
    • 毒性反转:从一个接口收到的路由,会从该接口发送会去,但是跳数改为16
    • 触发更新:只要路由信息发生变化,就立刻更新出去

FTP协议

端口:21(控制)和20(主动模式数据传输)

工作方式

  • 主动模式:PORT方式,Standard。首先客户端主动与服务器的21端口建立连接,然后服务器使用任意端口主动连接客户端的20端口。
  • 被动模式:PASV方式,Passive。首先客户端主动与服务器的21端口建立连接,然后服务器随机开放一个端口(>1023),通知客户端来连接本端口,最后客户端去连接那个端口进行数据传输。如果客户端与服务器中间有防火墙,建议服务器使用被动模式

路由协议

路由协议的分类

  • 按照工作的范围:
    • IGP内部网关协议:RIP、OSPF、ISIS、EIGRP(思科)
    • EGP外部网关协议:BGP
  • 按照工作原理:
    • 距离矢量:RIP(贝尔曼斯特算法)、EIGRP(弥散修正算法DUAL)、BGP(路径矢量算法,一跳为一个AS)
    • 链路状态:OSPF(SPF,迪杰科斯特拉算法)、ISIS(SPF算法)
  • 按照更新时是否携带掩码:
    • 有类(不带掩码,使用默认的ABC类):RIPv1
    • 无类(带掩码):RIPv2、OSPF、ISIS、EIGRP、BGP等等

静态路由和默认路由的区别

默认路由是静态路由的一种,默认路由是0.0.0.0 0.0.0.0。
思科的管理距离==华为的优先级

静态路由配置

  • 指明下一跳:意为着目标网络本地不可达,请求的是下一跳的地址**(在以太网中配置下一跳)**
  • 指明出接口:意为着目标网络本地可达,请求的是出接口的地址**(在PPP链路中配置出接口)**

迭代路由(递归路由)

对于需要迭代的路由,其下一跳不在路由器直连的网段内。在转发时,必须将此非直连下一跳地址做一次或多次迭代处理,以找出一个直连的下一跳地址,从而进行二层寻径。使用迭代的路由可以是静态路由、BGP路由。路由迭代功能可以使路由表项比较灵活,不依赖于特定的接口。缺省情况下,BGP协议学到的路由和手工配置的路由都支持迭代功能。

RIB和FIB

RIB:路由信息数据库
FIB:转发信息数据库

不同设备上RIB和FIB的区别

  • 框式设备:FIB和RIB分离。SPU,主控板卡,控制层面,必须配置,一般两块作为主备,负责构建RIB,形成FIB,将FIB下发到每个LPU;LPU,业务板卡,转发层面,可以不配置
  • 盒式设备:RIB和FIB在同一台设备上。

负载分担和负载均衡

  • 负载均衡:n条链路同发同收,每条链路承载1/n
  • 负载分担:n条链路按照比例进行分担,例如带宽大的负载大,带宽小的负载小

路由的选路

  1. 从不同协议学习到同一条路由,该如何选路?
  • 华为路由协议有两种优先级:外部优先级和内部优先级
  • 外部:比较优先级,越小越优;优先级相同,会比较内部优先级,越小越优(华为设备只能改外部优先级(preference),内部优先级无法更改
  • 路由协议的优先级:
    • 外部:直连(0)、OSPF(10)、ISIS(15)、静态(60)、RIP(100)、OSPF AES和OSPF NSSA(150)、IBGP和EBGP(255)
    • 内部:直连(0)、OSPF(10)、ISIS Level1(15)、ISIS Level2(18)、EBGP(20)、静态(60)、RIP(100)、OSPF AES和OSPF NSSA(150)、IBGP(200)
  1. 如果去往目标网络在本地有多条路由可以匹配,如何选路?
    最长匹配原则:掩码越精细越好,如果都不匹配则会优选默认路由
  2. 如果从同一协议不同接口学习到同一路由,该如何选路?
    会比较开销值,越小越优;如果开销值相等,都加入路由表,进行负载均衡

零散知识点

  1. VLAN
    VLAN:隔离广播域
    Vlan帧格式
  2. 三种生成树
    802.1D传统生成树STP(对应思科的PVST+,每个VLAN一棵树)
    802.1w快速生成树RSTP(对应思科RPST+)
    802.1s多实例生成树MSTP
    VBST(仅仅华为交换机,为了与思科交换机进行对接)
  3. Eth-trunk(链路聚合)
    华为有两种:normal(手工)、LACP
    思科有两种:PAGP(私有)、LACP
  4. VRRP升级版
    思科是HSRP,华为为GLBP
  5. VRRP和Eth-trunk的区别
    vrrp主要是备份;eth-trunk主要是负载
  • Vrrp利用率低。两条上联线路正常的话只用一条,而eth-trunkl两条都跑流量
  • vrrp需要配合STP,所以需要一定的收敛时间
  • 管理维护方便,做eth-trunk一般核心交换机都采用集群方式,相当于一台设备,所以配置管理方便
  • 做集群,两台核心交换机之间的互联带宽更高
  • 做集群,主备交换机切换时间很短
  • 使用场景区分:有二台核心,要和接入做双机热备,但不支持堆叠或集群,这时候只能用VRRP+STP了,不是用Eth-Trunk。如果核心支持堆叠或集群的话,这时候核心和接入就做Eth-Trunk了,而不用VRRP了,因为核心堆叠后就成一台设备了,二台设备之间的双链路,肯定用Eth-Trunk更好。