赞
踩
IP 地址是互联网协议特有的一种地址,它是 IP 协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
在单个局域网网段中,计算机与计算机之间可以使用网络访问层提供的 MAC 地址进行通信。如果在路由式网络中,计算机之间进行通信就不能利用 MAC 地址实现数据传输了:因为 MAC 地址不能跨路由接口运行;即使强行实现跨越,使用 MAC 地址传输数据也是非常麻烦的。
这是由于内置在网卡里的固定 MAC 地址不能在地址空间上引入逻辑结构,使其无法具备真正的地址来表示国家、省、市、区、街道、路、号这类层次。因此,要进行数据传输,必须使用一种逻辑化、层次化的寻址方案对网络进行组织,这就是 IP 地址。
IP地址表示
IP地址是长度是32 bit,由4个字节组成。为了阅读和书写方便,IP地址通常采用点分十进制数来表示。
点分十进制表示法
IP地址表现形式能够帮助我们更好的使用和配置网络,但通信设备在对IP地址进行计算时使用的是二进制的操作方式,因此掌握十进制、二进制的转换运算非常有必要。
IPv4地址范围
00000000.00000000.00000000.00000000~11111111.11111111.11111111.11111111,即0.0.0.0~255.255.255.255。
IPv4地址由如下两部分组成:
网络部分 (网络号):用来标识一个网络。
IP地址不能反映任何有关主机位置的地理信息,只能通过网络号码字段判断出主机属于哪个网络。
对于网络号相同的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。
主机部分 (主机号):用来区分一个网络内的不同主机。
网络掩码 (Netmask),又称子网掩码 (Subnet Mask):
网络掩码为32 bit,与IP地址的位数一样,通常也以点分十进制数来表示。
网络掩码不是一个IP地址,在二进制的表示上是一堆连续的1、后面接一堆连续的0。
通常将网络掩码中1的个数称为这个网络掩码的长度。如:掩码0.0.0.0的长度是0,掩码252.0.0.0的长度是6。
网络掩码一般与IP地址结合使用,其中值为1的比特对应IP地址中的网络位;值为0的比特对应IP地址中的主机位,以此来辅助我们识别一个IP地址中的网络位与主机位。即网络掩码中1的个数就是IP地址的网络号的位数,0的个数就是IP地址的主机号的位数。
为了方便IP地址的管理及组网,IP地址分成五类:
A、B、C、D、E类的类别字段分别是二进制数0、10、110、1110、1111,通过网络号码字段的前几个比特就可以判断IP地址属于哪一类,这是区分各类地址最简单的方法。
A、B、C三类地址是单播IP地址 (除一些特殊地址外),只有这三类地址才能分配给主机接口使用。
D类地址属于组播IP地址。
E类地址专门用于特殊的实验目的。
本节内容,只关注A、B、C三类地址。
A、B、C类地址比较:
使用A类地址的网络称为A类网络;使用B类地址的网络称为B类网络;使用C类地址的网络称为C类网络。
A类网络的网络号为8 bit,个数很少,但所允许的主机接口的个数很多;首位恒定为0,地址空间为:0.0.0.0~127.255.255.255。
B类网络的网络号为16 bit,介于A类和C类网络之间;首两位恒定为10,地址空间为:128.0.0.0~191.255.255.255。
C类网络的网络号为24 bit,个数很多,但所允许的主机接口的个数就很少;首三位恒定为110,地址空间为:192.0.0.0~223.255.255.255。
注:
主机 (Host),通常指路由器和计算机的统称。并且常把主机的某个接口的IP地址简称为主机IP地址。
组播地址:组播能实现一对多传递消息。
特殊的IP地址
公网IP地址:IP地址是由IANA统一分配的,以保证任何一个IP地址在Internet上的唯一性。这里的IP地址是指公网IP地址。
私网IP地址:实际上一些网络不需要连接到Internet,比如一个大学的封闭实验室内的网络,只要同一网络中的网络设备的IP地址不冲突即可。在IP地址空间里,A、B、C三类地址中各预留了一些地址专门用于上述情况,称为私网IP地址。
A类:10.0.0.0~10.255.255.255
B类:172.10.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
255.255.255.255
这个地址称为有限广播地址,它可以作为一个IP报文的目的IP地址使用。
路由器接收到目的IP地址为有限广播地址的IP报文后,会停止对该IP报文的转发。
0.0.0.0
如果把这个地址作为网络地址,它的意思就是"任何网络"的网络地址;如果把这个地址作为主机接口地址,它的意思就是"这个网络上主机接口"的IP地址。
例如:当一个主机接口在启动过程中尚未获得自己的IP地址时,就可以向网络发送目的IP地址为有限广播地址、源IP地址为0.0.0.0的DHCP请求报文,希望DHCP服务器在收到自己的请求后,能够给自己分配一个可用的IP地址。
127.0.0.0/8
这个地址为环回地址,它可以作为一个IP报文的目的IP地址使用。其作用是测试设备自身的软件系统。
一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。
169.254.0.0/16
如果一个网络设备获取IP地址的方式被设置成了自动获取方式,但是该设备在网络上又没有找到可用的DHCP服务器,那么该设备就会使用169.254.0.0/16网段的某个地址来进行临时通信。
注:DHCP (Dynamic Host Configuration Protocol),动态主机配置协议,用于动态分配网络配置参数,如IP地址。
我们目前常说的IP地址指的是IPV4地址,但IPv4可用地址有限,在2011年2月3日,IANA已经宣布将其最后的468万个IPv4地址平均分配到全球5个RIR(Regional Internet Registry,区域互联网注册管理机构),此后IANA再没有可分配的IPv4地址。
NAT技术的应用,缓解了IPv4地址不足产生的问题,但是部署IPv6是解决IPv4地址不足的最终方案。当前世界上不同地区对部署IPv6的需求强烈程度不一,且当前IPv4网络仍然占主流地位,因此短时间内IPv6和IPv4将会共存。
二、子网划分
1、需要划分成多少个网络(子网)?
假如要划分4个网络,则2X=4,X=2、要划分8个网络,则2X=8,X=3,现在知道为什么要先搞懂2的幂了吧,这里X就是=2的幂值。
那么X代表什么意思呢?X就是取值多少位1,如11000000,就是借2位,即X=2,反推知道一个字节(8位)如果为11000000,则表示可以划分4个网络(22=4);如果为11110000,则表示借4位,可以划分16个网络(24=16)。
2、每个网络需要多少个IP?
计算公式:2y-2,y代表取值多少位0,如11111000,代表取值3位0,即y=3,得出23=8-2=6,即每个网络可用的IP数量是6个。
假如每个网络需要60台主机的IP,那么如何计算呢?即2y≥60,根据2的幂算法得出,26=64-2=62,所有y的值为6。
3、有哪些子网网络(块大小)?
计算公式:256-子网掩码。假如子网掩码为255.255.255.192,则块大小为256-192=64,即块大小为64。从0开始以64为基数不断递增,直到达到子网掩码值,中间的结果即为子网,本例中子网即0、64、128、192。
再举例,加入子网掩码为255.255.255.128,则块大小为256-128=128,即块大小为128,子网0、128。
4、每个子网的子网号和广播地址是多少?
子网号很简单,即子网块值,如掩码为192,则子网块为256-192=64,得出子网为0、64、128、192,即子网号为0、64、128、192。再如掩码为128,则子网为128,则子网好0、128。
广播地址也很简单,总是下一个子网前面的数。如子网号为0、64、128、192、则广播地址为63、127、191。再如子网号为0、128,则广播地址为127.
看到这里大家知道为啥在计算每个网络可用的IP数时,公式里要-2吗?这是因为每个子网号(子网号也是一个IP地址)和广播地址是不能配给主机用的。
5、每个子网的可用(合法)的主机地址是哪些?
规则就是除去每个每个子网的子网号、广播地址,剩下的就是可用的主机地址,如子网号为0、64、128、192,则可用的主机地址为1-62、65-126、129-190,因为0是子网地址,63是广播地址,同样128、192是子网地址,127、191是广播地址。
6、C类网络子网划分
举例,192.168.10.0,255.255.255.224
1、可划分成多少个子网?
根据前面的知识,首先把224转换成二进制,得出为11100000,1占了3位,因此23=8,可用划分8个子网。
2、每个子网有多少个可用的IP?
这里看0占了5位,因此25-2=30,可用IP数为30.
3、有哪些子网网络?
256-224=32,即以32为基数不断递增,直到224,即0、32、64、96、128、160、192、224。即192.168.10.0、192.168.10.32、192.168.10.64、192.168.10.96、192.168.10.128、192.168.10.160、192.168.10.192、192.168.10.224。
4、每个子网网络的广播地址是多少?
每个子网网络的广播地址总是下一个子网前面的数,即31、63、95、127、159、191、223,即192.168.10.31、192.168.10.63、192.168.10.95、192.168.10.127、192.168.10.159、192.168.10.191、192.168.10.223。
5、每个子网的可用地址是哪些?
即减去每个子网的子网地址和广播地址,剩下的就是可用地址。本例中的可用地址为1-30、33-62、65-94、129-158、161-190、193-222。
再举例,192.168.10.0/30
1、可划分成多少个子网?
因为CIDR表示的子网掩码,首先得算出占用了多少位1,即30-24(因为是C类网络,前面三个字节都是255,即8位1,共24位1)=6,即6位1。所以26=64,即64个子网。
2、每个子网有多少个可用的IP?
因为1位占了6个,0位只有2个了,得出22-2=2,所以是2个可用IP地址。
3、有哪些子网网络?
因为1位占了6个,所以得出21+22+23+24+25+26=252,即256=252=4,得出块大小为4,子网网络为0、4、8、12、16、……、240、244、248、252,即192.168.10.0、192.168.10.4、192.168.10.8、……192.168.10.248、192.168.10.252.
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,即192.168.10.3、192.168.10.7、192.168.10.11、……、192.168.10.247、192.168.10 .251,你算对了吗。
5、每个子网的可用地址是哪些?
除去子网地址和广播地址就是可用地址,本例中的可用地址为1,2、5,6、……、249,250。
无论是A类、B类、C类网络,在使用子网掩码/30时,每个子网只包含2个主机地址,这种子网掩码只适合用于点到点链路。
7、B类网络子网划分
通过前面的知识我们知道B类地址中,有16位可用的主机地址,这意味着我们可将其中的14位用于子网划分,因为至少要保留2位用于主机编址。
举例,172.17.0.0 255.255.128.0
1、可划分成多少个子网?
首先128转换成二进制位10000000,因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=1,得出21=2。答案是可以划分2个子网。
2、每个子网有多少个可用的IP?
这里0位总共占了15位,215-2=32766.
3、有哪些子网网络?
256-128=128,即0.0、128.0,得出172.17.0.0、172.17.128.0
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,172.17.127.255、172.17.255.255.
5、每个子网的可用地址是哪些?
子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.127.254;子网128.0第一个可用地址为172.17.128.1,最后一个可用地址为172.17.255.254.
再举例,172.17.0.0/20
1、可划分成多少个子网?
因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=4,得出24=16。答案是可以划分16个子网。
2、每个子网有多少个可用的IP?
这里1位占了4位,所以这里0位总共占了12位,212-2=4094.
3、有哪些子网网络?
因为1位占了4位,得出24+25+26+27=240。
256-240=16,即0.0、16.0、……、240.0,得出172.17.0.0、172.17.16.0、……、172.17.240.0。
4、每个子网网络的广播地址是多少?
下一个子网之前的数字,172.17.15.255、……、172.17.223.255.
5、每个子网的可用地址是哪些?
子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.15.254;……。
A类子网划分与B类、C类子网划分类似。
三、TCP/IP协议
一、什么是TCP/IP?
顾名思义 TCP/IP(Transmission Control Protocol/Internet Protocol),传输控制协议/网际协议,TCP/IP是现代Internet的核心技术,由IETF定义。所有的系统、终端、线路、用户、开发者,都必须遵守TCP/IP协议族所规定的法则!IP世界的根本法就是TCP/IP协议族。这里我又扯到协议族了,就像快乐家族,不仅仅我们很熟悉的何炅、谢娜。不仅包括主持人,还有导演、摄像等等其他工作人员。TCP/IP也就像一个组,协议族。其中还包括HTTP、Telnet、FTP、RIP、UDP等等。其名字来源于其中最主要的两个协议-------TCP与IP。它们分别在TCP/IP模型的第二层与第三层。
二、OSI参考模型和TCP/IP参考模型
IP世界是由通信实体过程的,而通信实体,是要分层的。分层的好处在于:
1、各层之间是独立的。
2、灵活性好。
3、结构上可分割开。
4、易于实现和维护。
5、能促进标准化工作。
所以通信实体必须分出层次,以保证各种网络技术能和谐地共存和良好地配合,并不断激励技术创新。所以在1984年,国际标准化组织(ISO)建立了一套非常抽象的分层结构,这就是著名的ISO/OSI(国际标准化组织的开发网络架构),这对我们分析网络通信是非常有帮助的。
物理层(第一层):物理层解决最基础的传送通道,涉及问题主要是建立、维护和释放物理链路所需的机械的、电气的/光学的、功能的和规程的特性,如光缆如何抗衰耗,无线设备如何提高发射功率,为什么双绞线要有屏蔽层等。
数据链路层(第二层):数据链路在物理层按"位"服务的基础上,在相邻的网络节点直接提供简单的、传输以帧为单位的数据,同时还负责流量控制、差错控制(信号会因机器、电器气等原因出现错误)。以我们经常听到的"以太网帧"可以知道以太网就是属于这层的。
网络层(第三层):网络层对上层-----传输层提供两种服务,一种叫做"面向连接"的网络服务,一种叫做"无连接"的网络服务。网络层担负着四大任务:1.路由选择 2.拥塞控制 3.局域网间互联 4.统计和控制。我们津津乐道的IP协议就在这层起着重要的作用。
传输层(第四层):传输层的任务是向用户提供可靠地、透明的端到端的数据传输以及差错控制和流量控制机制。由于它的存在会话层、表示层、应用层的设计不必考虑底层细节,因此起到"承上启下"的作用。假如两台计算机A、B需要通信,那么A、B之间进行直接的传输层的通信,而在A、B之间如果有若干网络节点,如路由器X、Y、Z那么A与X,X与Y,Y与Z,Z与B之间都要进行第三层的通信。TCP与UDP就属于传输层。
会话层(第五层):会话层提供许多增值服务,如交互式对话管理,允许一路交互、两路交换、两路同时回话;管理用户登录远程分时系统;在两机器之间传输文件,进行同步控制等。
表示层(第六层):表示层就处理通信进程之间交换数据的表示方法,包括语法转换、数据格式的转换、加密与解密、压缩与解压缩等。
第七层(应用层):应用层正所谓站在巨人的肩膀上面的产物,底层所有协议的最终目的都是为应用层提供可靠的传送手段,底层协议并没有直接瞒住用户的任何实际需求。我们日常使用的收发电子邮件、传送文件、流量网页、交互及时信息等都属于应用层,是用户体验最直观的服务。
正所谓"优胜劣汰,适者生存",OSI由于体系比较复杂,不太方便计算机软件实现,逐渐退出人们关注的视野,TCP/IP得到了广泛的应用。
对比ISO/OSI的七层结构,读者会奇怪了:怎么没有表示层和会话层了呢?的确,在TCP/IP参考模型中这两层并不是必需的。其中还有个四层模型的说法数据链路层与物理层表示成网络接口层。TCP\IP体系结构最核心的部分就是上面三层:应用层、传输层、网络层。
(1)网络接口层:TCP/IP并没有严格定义该层,它只是要求能够提供给其上层-----网络层的一个访问接口,以便在其上传递IP分组。由于这一层次未被定义,所以其具体的实现方法将随着网络类型的不同而不同。以太网是IP通信中数据链路层最常见的形式,除此之外还有PPP、HDLC等10Gbit/s以下的以太网一般应用于局域网,而PPP、HDLC则应用于广域网居多。
(2)网络层:俗称IP层,它处理机器之间的通信。IP是一个不可靠的、无连接协议,它接收来自传输层的请求,传输某个具有目的地址信息的分组。IP负责给互联网的每一台计算机或者终端分配一个地址,并将信息以IP包的形式传送到正确的目的地。这是TCP/IP的核心。IP协议族中最关键的是路由协议。
(3)传输层:传输层控制协议(TCP)与用户数据报协议(UDP)是该层的重要协议。TCP是一个面向连接的,可靠地协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP还要处理端到端的流量控制(滑动窗口机制)。UDP则是一个不靠谱,无连接的协议,主要适用于不需要对报文进行排序和流量控制的场合。(比如在信息传输中像重要文档与短信等等适用于TCP而视频传输可使用UDP)。
各个层次也对应着不同的协议如图:。
三TCP报文格式
TCP报文包括首部(报头)和数据部分,其中首部的具体字段如下。
(1)源端口号和目的端口字段-----各占16bit。
(2)序号字段-----SEQ序号,占32bit。TCP连接中传送的的数据流中的每一个字节都编上序号,序号字段的值则是本报文段所发送的数据的第一个字节的序号。
(3)确认序号-----ACK序号,32bit,是期望收到对方的写下一个报文段的数据的第一个字节的序号。只有ACK的标志位为1是,确认序号字段才有效,ACK=SEQ+1。
(4)标志位:有6个如下
URG-----紧急信号表明紧急指针(urgent pointer),它能告诉系统此报文段有紧急数据,应尽快传送。
ACK-----确认信号只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。
PSH-----推送信号接收TCP推送bit置1的报文段,则尽快交付给接收应用进程,无需缓存。
RST-----复位信号当RST=1时,表明TCP连接中有严重错误,则释放连接,然后再重新建立连接。
SYN-----同步信号SYN表示一个连接请求或连接接收报文。
FIN-----终止信号用来释放一个连接。当FIN=1,表明报文段的发送端的数据已发送完毕,要求释放运输连接。
(5)数据偏移-----占4bit,它自出报文段的数据起始处距离TCP报文段起始处的位置。
(6)窗口字段-----占16bit,用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方确定对方的发送窗口上限。
(7)检验和-----占16bit,检验报文段的首部和数据,在检验之前要加上12字节的伪首部。
(8)紧急指针字段-----16bit。紧急指针指出在本报文段的紧急数据的最后一个字节的序号。
(9)选项字段-----无固定长度,TCP只规定了一种选项最大报文段长度MSS。
(10)保留字段-----占6位,暂无。
四、TCP的三次握手和四次挥手
TCP的连接和建立都是采用客户端服务器方式。主动发起连接建立的进程叫做客户端(Client)。被动等待连接建立的叫做服务器(Server)。
建立TCP连接需要三次握手如图
第一次握手:Client(主机A)想Server(主机B)发送一个连接请求,在这个包中标志位SYN=1,发送序号SEQ=x,上图中令x=200,Client进入SYN_SEND状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,确认序号ACK=x+1=201,随机阐释一个发送序号y,令y=500。并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到去人后,检查确认序号ACK是否为x+1=201;标志位ACK是否为1,如果正确,则将标志位ACK置1,确认序号ACK=y+1=501,并将该数据包发送给Server,Server检查确认需号ACK是否为y+1=501,标志位是否为1,如果正确则 连接建立成功,Client和Server进入ESTABLISHED状态。
形象地来理解,加入客户端是小明,服务器是小红,小明寄了一份邮件给小红邮件的标号就是SEQ,SYN就是短信里面小明想处对象的意图。小红收到后,也寄了信给小明,SEQ同样是小红邮件的编号,ACK=SEQ+1就是表面自己已经收到小明前一份信息,ACK标志位置1表明小红同意了小明处对象的请求,SYN也表示小红有相处对象的意图。于是同理小明就开始寄信说我要开始追你了。然后两人开始聊起未来······。三次握手走向未来~~~~~~!所以男生还是要主动点。
断开TCP连接的四次挥
第一次挥手:当客户端A要断开TCP连接时,发送一个包,其中标志位FIN=1,ACK=1,发送序号SEQ=X,确认序号ACK=Z,Client进入FIN_WAIT状态。
第二次挥手:客户B知道A要断开后,发送一个确认包,其中标志位ACK=1,发送序号SEQ=Z确认序号ACK=x+1,Server进入CLOSE_WAIT状态。
第三次挥手:客户B也断开TCP连接,此时发送一个包,其中,标志位FIN=1,发送序号SEQ=Z+1
,Server进入LAST_ACK状态。
第四次挥手:客户A收到B的断开请求后,Client进入TIME_WAIT状态,接着发送一个确认包,标志位ACK=1,发送序号SEQ=x+1,确认序号ACK=Z+2,Server进入CLOSE状态。
同样举个栗子,就不拿小红和小明作比较了毕竟刚刚才进入热恋状态,接下来是小涛和小翠。男人有钱就变坏,小涛是个渣男,所以首先签了离婚协议书还有自己的一些证件(要求一个人小翠去办理)(ack),然后附带自己的分手信(seq)寄给小翠。ACK置1,FIN置1。小翠收到信件后,也二话没说,先回了一份信并且说明已经收到小涛的分手信且同意了(seq+1)然后也把证件先递过去(ack)。最后等待离婚证下来(ack+1)然后再把离婚证给小涛寄过去(ACK=1,FIN=1)。最后小涛还可耻的嘲笑了小翠一番(seq+1)ACK=1。
五、TCP/IP协议体系的常见术语
(1)包
包(Packet)是网络上传输的数据片段,也称为分组。包是一种统称,在不同的协议,不同层次,包有不同的名字,如TCP/IP中,数据链路层的包叫做帧(Frame),IP层的包称为IP数据报,TCP层的包常称为TCP报文等。大多数包都由包头和信息组成:包头常常包括源地址和目的地址、包的长度和类型指示符等。
(2)封装
不同设备的对等层之间依靠封装和解封装来实现相互间的通信。封装就像洗完澡光着身子穿衣服,解封装就像洗澡前脱衣服,脱了一层又一层直到脱光。TCP/IP也是一种计算机数据打包和寻址的标准方法。在数据传送中,可以形象的理解为有两个信封,TCP和IP就像信封,要传递的信息被划分成若干段,每一段塞入一个TCP信封,并在上面记录分段信息,然后再塞入IP大信封里面。同理接收端一步一步拆开来并校验,若发现错误,TCP机制则会要求重发。因此,TCP/IP在互联网中几乎可以无差错地传送数据。
(3)数据段,数据包.数据帧
通信过程中,TCP/IP层与层之间有协议数据单元(Protocol Data Unit)来交换彼此的信息,确保网络设备之间能够通信。传输层在上层数据的基础上加上TCP报头得到的PDU叫做数据段(Segment),依次往下数据段传给网络层,并添加IP报头得到的PDU叫做数据包(Packet),数据包传给数据链路层添加报头得到的PDU称作数据帧(Frame)。最后Frame被转换为bit在物理层通过网络介质传播。
四、什么是VLAN?
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通。这样,广播报文就被限制在一个VLAN内。
早期以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过二层设备实现LAN互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。
在这种情况下出现了VLAN技术。这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。如下图所示。
VLAN的作用
因此,VLAN具备以下优点:
通过将IP地址的网络部分进一步划分为若干个子网,可以解决IP地址空间利用率低和两级IP地址不够灵活的问题。
与VLAN相类似的是,子网也可以隔离主机间的通信。属于不同VLAN的主机之间不能直接通信,属于不同的子网的主机之间也不能直接通信。但二者没有必然的对应关系。
VLAN vs 子网
要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。IEEE 802.1Q协议规定,在以太网数据帧中加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用以标识VLAN信息。
IEEE 802.1Q封装的VLAN数据帧格式
数据帧中的VID字段标识了该数据帧所属的VLAN,数据帧只能在其所属VLAN内进行传输。VID字段代表VLAN ID,VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。
交换机内部处理的数据帧都带有VLAN标签。而交换机连接的部分设备(如用户主机、服务器)只会收发不带VLAN tag的传统以太网数据帧。因此,要与这些设备交互,就需要交换机的接口能够识别传统以太网数据帧,并在收发时给帧添加、剥除VLAN标签。添加什么VLAN标签,由接口上的缺省VLAN(Port Default VLAN ID,PVID)决定。
现网中属于同一个VLAN的用户可能会被连接在不同的交换机上,且跨越交换机的VLAN可能不止一个,如果需要用户间的互通,就需要交换机间的接口能够同时识别和发送多个VLAN的数据帧。根据接口连接对象以及对收发数据帧处理的不同,当前有VLAN的多种接口类型,以适应不同的连接和组网。
不同厂商对VLAN接口类型的定义可能不同。对于华为设备来说,常见的VLAN接口类型有三种,包括:Access、Trunk和Hybrid。
Access接口一般用于和不能识别Tag的用户终端(如用户主机、服务器)相连,或者不需要区分不同VLAN成员时使用。
在一个VLAN交换网络中,以太网数据帧主要有以下两种形式:
Access接口大部分情况只能收发Untagged帧,且只能为Untagged帧添加唯一VLAN的Tag。交换机内部只处理Tagged帧,所以Access接口需要给收到的数据帧添加VLAN Tag,也就必须配置缺省VLAN。配置缺省VLAN后,该Access接口也就加入了该VLAN。
当Access接口收到带有Tag的帧,并且帧中VID与PVID相同时,Access接口也能接收并处理该帧。
在发送带有Tag的帧前,Access接口会剥离Tag。
Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端。它可以允许多个VLAN的帧带Tag通过,但只允许属于缺省VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。
Trunk接口上的缺省VLAN,有的厂商也将它定义为native VLAN。当Trunk接口收到Untagged帧时,会为Untagged帧打上Native VLAN对应的Tag。
Hybrid接口既可以用于连接不能识别Tag的用户终端(如用户主机、服务器)和网络设备(如Hub),也可以用于连接交换机、路由器以及可同时收发Tagged帧和Untagged帧的语音终端、AP。它可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag(即不剥除Tag)、某些VLAN的帧不带Tag(即剥除Tag)。
Hybrid接口和Trunk接口在很多应用场景下可以通用,但在某些应用场景下,必须使用Hybrid接口。比如在灵活QinQ中,服务提供商网络的多个VLAN的报文在进入用户网络前,需要剥离外层VLAN Tag,此时Trunk接口不能实现该功能,因为Trunk接口只能使该接口缺省VLAN的报文不带VLAN Tag通过。
VLAN的常见使用场景包括:VLAN间用户的二层隔离,VLAN间用户的三层互访。
如下图所示,某商务楼内有多家公司,为了降低成本,多家公司共用网络资源,各公司分别连接到一台二层交换机的不同接口,并通过统一的出口访问Internet。
基于接口的VLAN划分组网图
为了保证各公司业务的独立和安全,可将每个公司所连接的接口划分到不同的VLAN,实现公司间业务数据的完全隔离。可以认为每个公司拥有独立的"虚拟路由器",每个VLAN就是一个"虚拟工作组"。
再比如,某公司有两个部门,分别分配了固定的IP网段。为加强员工间的学习与交流,员工的位置有时会相互调动,但公司希望各部门员工访问的网络资源的权限不变。
基于IP的VLAN划分组网图
为了保证部门内员工的位置调整后,访问网络资源的权限不变,可在公司的交换机Switch_1上配置基于IP子网划分VLAN。这样,服务器的不同网段就划分到不同的VLAN,访问服务器不同应用服务的数据流就会隔离,提高了安全性。
如下图所示,某小型公司的两个部门分别通过二层交换机接入到一台三层交换机Switch_3,所属VLAN分别为VLAN2和VLAN3,部门1和部门2的用户互通时,需要经过三层交换机。
通过VLANIF实现VLAN间用户的三层互访
可在Switch_1和Switch_2上划分VLAN并将VLAN透传到Switch_3上,然后在Switch_3上为每个VLAN配置一个VLANIF接口,实现VLAN2和VLAN3间的路由。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。