号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
下午好,我的网工朋友。
今天我想和大家聊聊几个与我们日常工作紧密相关的技术问题,它们都多多少少地影响了咱们的工作效率和网络的稳定性。
比如数据链路层,它作为OSI模型的第二层,是我们网络架构中不可或缺的一环。它定义了如何封装数据帧,如何进行错误检测和纠正,以及如何管理MAC地址。倘若出了岔子,那你的交换机可就别想着正确传输信息了。
再比如MPLS VPN网络中的VPN实例和VRF的关系。VPN实例和VRF的配置和管理,则直接关系到企业数据的安全传输和网络的隔离性。
这两个问题只是冰山一角,对于设计和维护网络,确保数据的高效和安全传输,还有不少问题需要了解,接着往下看你就明白了。
今日文章阅读福利:《 MPLS-华为详解指南 》
私信我,发送暗号“MPLS”,即可获取此份优质资源。
01 数据链路层有什么用?
数据链路层,作为OSI第二层,里面包含的设备就是交换机,包含的协议通常是一些局域网和广域网协议,那些协议的定位是什么呢?
就是当设备之间连线线连好之后,所组成的网络是一个什么样的架构,设备之间通信需要些什么样的规则,每一个节点的地址使用什么样的格式,在通讯的时候发送的数据在二层应该封装一个什么样的报头,里面包含什么样的内容,这些,都是数据链路层决定的。
数据链路层,对于所谓的局域网和广域网的协议,他们所定义的东西是完全一致的。
第一就是通过这种标准组成的网络,是一个什么类型的网络。是一个MA网络也就是多路访问网络,还是一个点到点网络,这个叫P2P网络。
以及在这个网络中节点之间通信有什么样的规则,什么时候能够发送数据,什么时候不能发送,发送的数据,携带一个什么样的报头,里面包含什么内容,并且在这个网络中每一个节点也就是每一个接口,有一些什么样的二层地址,这些都是由二层的这些局域网和广域网协议所规定的。
02 如何理解MPLS VPN网络中的VPN实例和VRF的关系?
MPLS VPN是利用MPLS所实现那种VPN技术。
这是个peer to peer VPN,它的最大特点就是运营商的PE设备,会通过一张私网路由表来帮助客户维护他的私网路由。
然后再把这些帮客户维护的私网路由,以 VPNV4形式发送给另外一台PE。再由这个PE以IPV4形式把路由发送给对方的协议,通过这种方式来让控制方面来实现联通。那这个时候VPN和VRF的关系是什么呢,就是在PE路由器上。
通过CE收到的路由,正常情况下是会通过公网路由表来接收的,那这个肯定不行。
而不行的原因,就是因为所有的客户使用的是私有地址,这个私有地址可能会冲突,A客户和B客户如果使用了相同的地址段的话,这两个相同地址段,如果要接收了,可能会通过控制层面来比较一个好坏,最终收一个,没有办法做到全部都收。
基于国际公约,在公网路由器的公网路由表中,只允许包含公网路由,不允许包含私网路由的。
所以这个时候需要一个独立的路由表来针对每一个客户去缓存他的私网路由,也就是说一个客户对应一个私网路由表。
这个时候可以通过创建一个VRF来实现这一点,在路由器上创建一个VRF,就会针对这个VRF形成一个私网路由表,然后把这个VRF跟连接CE的接口,做一个绑定。
当绑定完毕之后,通过这个接口学到的任何CE给你通告的路由都会直接加入到VRF路由表。要是在数据层面,通过这种VRF的接口收到一个数据。也会查找VRF路由表来做一个最终转发。
03 pppoe协议,adsl,宽带,以太网这几者之间的关系是什么?
PPPoE是在以太网技术之上虚拟PPP连接的技术,这个技术是ADSL常用的一个接入技术,通过这个技术。
即便使用比较常见的以太网连接,来把用户连到运营商网络。
也可以通过PPP自带的认证机制来实现3A的计费功能,实现业务的流畅性。
ADSL就是一种宽带接入技术,ADSL,还有HDSL ADSL 2代,这都是相应的标准,ADSL叫异步数据用户线。
通过这种方式接入的一个网络,上下行的带宽是不对等的,通常对于客户而言,下行带宽会高于上行带宽。
而宽带则是一种业务,主要指的就是这个运营商的连接的一个速率,只要达到多少多少带宽以上,这个连接成为一个宽带业务,对应宽带的就是窄带,窄带是早期的项目,56K Modem,64K Modem。
做一个连接,只有几十K的传输速率,这种就是窄带连接。
简单来说,窄带和宽带指的是业务的区分,ADSL是这个业务所使用的技术,PPPoE就是一个拨号方式,通过就是以太网连接,结合PPP的技术,在以太网之上形成一个虚拟的PPP连接。通过这个链接来实现计费的功能。
04 VLAN划分与子网划分联系与区别?
划分VLAN一般是基于部门的,一个VLAN就是一个基于2层实现的LAN,每个VLAN都要使用一个独立IP地址段。
简单来说有多少VLAN可以理解为有多少网络,在做VLSM子网化的时候要根据VLAN数量决定借位多少,然后根据每个VLAN的大小,里面成员数量决定借位时给主机位预留多少位。
一般是先决定有多少个VLAN,如何划分VLAN,再根据VLAN的数量和VLAN内成员数量决定VLSM的借位多少。
05 划分VLAN的作用是什么?
因为交换机默认没有划分网络的能力,默认交换机连接的所成员属于同一个网络,IPv4下主机通信时偶尔会产生广播。
例如ARP,这类广播对网络内所有主机都会产生影响,浪费大家的链路带宽以及CPU内存资源.
因此一个网络里主机数量越多,每个主机收到莫名其妙的广播数量就越多,进而整体网络品质会越发下降。
为了增加网络高可用性,我们建议在设计网络的时候尽可能避免在一个网络中包含过多主机。
因此需要将主机分布在不同网络之间,这样第一不影响大家彼此通信,第二也不会让主机收到过多不必要的广播,保证了网络的品质。
早期隔离网络更多用的是路由器,在内网使用大量路由器分割网络的问题是成本很高,并且浪费路由器的功能性以及增加了端到端传输延迟(路由器转发数据效率很低)。
通过使用VLAN交换机自身就可以分割网络,通过二层隔离的方式实现广播域划分,有了这个技术后内网可以大量部署交换机,成本低,转发延迟低,不会浪费设备功能性;
并且通过少量MLS一样可以实现网络间通信,并且结合一些交换安全技术后还能保证VLAN内VLAN间通信的安全性,因此VLAN的作用是廉价的解决网络分隔问题。
06 如何形象说明路由协议RIP和OSPF?
RIP是一个距离矢量协议,也叫基于传闻的协议,路由器之间运行RIP,虽然彼此会传递更新报文,路由器也能学习到非直连网络的路由信息。
但是网络是如何连接而成的,有几台路由器,各有几个接口,接口类型是什么样的,从自身出发去往一个非直连网络有哪些路径,这些信息路由器一概不知,只是听从邻居的话,使用邻居做为去往一个又一个非直连网络的下一跳。
例如R1---R2---X 该例子中R1连接R2,R2身后连接X网络,当在R1和R2之间运行RIP之后,R2给R1发送的更新报文中会包含X网络路由,这相当于R2在告诉R1,想去往X网络请使用我R2做下一跳,R1会照办,将路由加入本地路由表,下一跳地址设置为R2。
但R1其实并不知道X在哪里,自己去往X有哪些可行路径,路径包含哪些路由都不知道,因为不能证明R2传递的路径信息的真伪,因此只能选择相信。
但如果X网络不在R2身后,R2认可的X网络路径信息如果是错的,R1收到更新也无法辨别,只能选择信任。
在这种情况下,路由器之间彼此传递错误的路径信息就会导致路由选择环路,导致去往X网络的数据在环中不停传递,浪费大量资源。
OSPF是一个链路状态协议,也叫基于拓扑的协议。
路由器之间运行OSPF之后彼此交互的更新报文中包含的不是路由条目而是LSA,虽然LSA有很多类型,不同场合路由器会使用特定LSA传输特定信息,但是大体上LSA包含的内容既包含拓扑信息又包含路由信息,比如说路由器产生的1类LSA里包含该路由器自身的信息。
比如他的路由器ID,他是什么类型的路由器,以及该路由器宣告进OSPF的接口信息,有几个接口,连接的是什么类型的链路,有没有通过接口建立其他OSPF邻居,如果有邻居的RID是多少,每个接口IP地址,子网掩码,度量值是多少,都会在1类LSA中包含。
路由器收到邻居的LSA后会在一个区域内泛洪扩散,使得区域内所有路由器都能收到这条LSA。
当OSPF运行一段时间后,每台路由器都能收到区域内所有路由器所产生的LSA,基于这些LSA路由器能知道整个区域是怎么连接而成的,有多少台路由器,每台路由器有多少接口,都是什么类型的,每个网络分布在什么位置都一清二楚。
届时每台路由器都使用一个树形结构算法,将自身设置为树根,利用SPF算法判断去往每个一个非直连网络的最优路径,最终将最优路径的路由加入路由表转发数据。
可以理解为运行OSPF的路由器是先知道网络的拓扑再基于拓扑计算路由,而不是听从邻居的建议使用相应邻居做下一跳转发数据去往相应目的网络。
07 如何生动形象、切中要点地讲解OSI七层模型和两主机传输过程?
OSI是一个协议栈,在角逐中失利最终被TCP/IP协议栈取代,中国地区网络教学者觉得OSI分层比较细致,故用其做参照于网络研究。
简单来说两台主机通过Internet通信,具体来看,这是两个主机上的两个App之间的通信,APP想要利用网络连接收发数据就需要OSI应用层的协议配合,一般这些协议都内置在APP的网络模块内。
开发人员在开发应用的时候都会将OSI应用层必要协议写入网络模块里,通过这些协议APP虽然可以利用网络连接接口收发数据,但是可能由于通信双方主机的操作系统不同,跨平台的应用由于数据编码压缩加密机制都不尽相同。
源主机使用的编码目的主机未必能理解,从而通信数据到达目的主机后可能会以乱码形式出现,故通信失败。
为了避免这样的事频繁出现,APP通信前需要通过OSI表示层协议沟通彼此兼容的数据表示格式,通过统一的编码加密压缩机制处理待传输的数据从而避免接收方收到数据后无法顺利识别。
通常这类表示层协议和应用层协议一样被写入APP的网络模块内,这些通常也是由研发工程师负责。
需要注意的是,APP之间想通过表示层协议协商数据的标识格式的前提是APP之间通过Internet建立逻辑连接,这往往也称之为会话,负责建立会话的工作通常由OSI协议栈的会话层协议负责,当然这类协议通常也存在于APP以及操作系统平台的网络模块中。
通常这三层的协议都内部集成在APP以及操作系统之内,因此我们将OSI上三层称之为操作系统层。
APP之间要建立会话的前提是网络中的网络设备能识别并知晓源目主机所在的位置也就是地址,能顺利传递彼此的通信数据,并且主机上的APP本身也需要相应的标识,这些内容在上三层中并不包含,一般这些内容更多集中于下四层中。
OSI传输层的协议顾名思义负责数据的传输,主要做两件事,第一将应用产生的数据流切片,满足每个分片大小足够小以便于被网卡传输,第二在每个分片前添加4层报头,将数据分片形成数据段,其段头中主要包含源目端口来标识通信的源目APP。
数据段缺乏地址信息无法被直接发送,因此OSI网络层对数据段进行3层报头添加,在报头中包含用来标识源目主机位置的源目地址信息,将每个数据段封装成数据包,虽说数据包包含了标识源目应用和源目主机的端口地址信息,但接入网络设备通常为2层交换机无法识别3层报头的地址信息。
因此OSI数据链路层协议针对数据包做了2层报头报尾的添加,将数据包形成数据帧,2层报头中包含源目2层地址信息方便接入网络设备识别以便精确转发数据,最终数据帧交由OSI物理层处理,物理层将数据帧转换成bit将bit转换成电子脉冲或光子脉冲通过相应介质发送走。
这便是端到端通信中OSI各层的功能,简单来说发送发发送数据的流程是从7层到1层,接收方收到数据的流程是从1层到7层。
08 怎样通过静态路由实现跨网段互通?
路由器作为网关设备主要负责网络间的数据转发,不过转发前提是路由器知道目的网络在哪里,知晓去往目的网络的路径信息,所谓的路由就是一台路由器去往一个目的网络的路径信息。
默认情况下路由器接口配置好IP地址,保证接口状态为UP下,路由器能自动获得直连网络的路径信息,但是非直连网络路由默认是没有的,静态路由使得路由器获得那些非直连网络的路径信息。
言归正传,如何通过静态路由让网络间访问能通,简单要看有多少网络,哪些网络没有直连哪些路由器,在相应路由器上配置静态路由去往相应非直连网络就可以解决连通性问题。
09 如何配置默认路由,静态路由?
对于企业园区网而已,一般一个园区都有一个边界设备通过连接企业宽带到达ISP,这个设备通常是一台路由器或一台防火墙,由于通过企业宽带,企业网内主机可以访问整个Internet内的全部资源。
Internet太大了,包含了太多的网络,如果让企业边界路由器/防火墙一条条写静态去往这些网络效率太低,劳动密集型严重,并且在没有冗余链路的连接下也不存在选路问题,因为一般会通过配置静态默认指向ISP实现内网去往任意外网的访问。
静态默认的命令如下:
Cisco: ip route 0.0.0. 0.0.0.0 出接口 下一跳地址
Huawei: ip route-static 0.0.0.0 0 出接口 下一跳地址
10 如何理解STP生成树协议?
一个网络里可以包含多台交换机,但是交换机是有认知缺陷的。
通过自动学习MAC地址表项的机制使得交换机总是认为网络内的所有节点都和其直连,通过一个接口收到一个数据帧,则认为发送源主机就直接连接在该接收接口之上。
正是因为交换机无法了解完整网络连接情况,因此在多交换机存在的情况下,会出现交换环路,在环路内转发组播广播数据会进一步导致广播风暴。
当然也不是所有多交换机存在的网络中都一定会出现环路,归根结底来说导致环路和广播风暴的根因是交换机间的冗余连接。
虽然为了避免单点故障,交换机间的冗余连接是必不可少的,但是冗余如果换来的是整体网络的中断就有点得不偿失了,因为STP协议的定位就是在一个带有冗余的交换网络中通过阻塞冗余路径,让端到低端通信路径形成树形,保证端到端有且只有一条可行路径,从而防止环路产生。
并且由于STP会实时监控网络内各个链路状态,从而能在某根交换机间路径崩溃的情况下迅速启用之前逻辑阻塞的链路,在保证高可用性的基础上,防止环路发生。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部