zoukankan      html  css  js  c++  java
  • 网络知识普及

    在通信公司干了快一年,一些网络概念还是不熟悉,用自己的语言记录下吧,有错误还望指正。

    vlan:划分广播域。

    为什么需要vlan:一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗。

    广播就在我们身边。下面是一些常见的广播通信:

          ● ARP请求:建立IP地址和MAC地址的映射关系。

        ● RIP:选路信息协议(Routing InfromationProtocol)。

          ●  DHCP:用于自动设定IP地址的协议。

          ●  NetBEUI:Windows下使用的网络协议。

          ●  IPX:Novell Netware使用的网络协议。

          ● Apple Talk:苹果公司的Macintosh计算机使用的网络协议。

    VLAN通过限制广播帧转发的范围分割了广播域,广播信息只会在自己的vlan中传播。用“VLAN ID”来区分。  如果要更为直观地描述VLAN的话,我们可以把它理解为将一台交换机在逻辑上分割成了数台交换机。

    广播域广播帧能够直接通信的范围。二层交换机只能构建单一的广播域

    VLAN生成的逻辑上的交换机是互不相通的。因此,在交换机上设置VLAN后,如果未做其他处理,VLAN间是无法通信的。 明明接在同一台交换机上,但却偏偏无法通信。

    需要VLAN间通信时怎么办呢?

    VLAN是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。在这里希望大家先记住不同VLAN间互相通信时需要用到路由功能。

    vlan的划分方法

    种类

    解说

    静态VLAN(基于端口的VLAN)

    将交换机的各端口固定指派给VLAN

    动态VLAN

    基于MAC地址的VLAN

    根据各端口所连计算机的MAC地址设定

    基于子网的VLAN

    根据各端口所连计算机的IP地址设定

    基于用户的VLAN

    根据端口所连计算机上登录用户设定

       

    VLAN 划分与子网划分联系与区别

    子网划分是在网络层,它的作用是隔离不同网段之间的通信,比如192.168.0.1/24与192.168.1.1/24是不能直接通信的,注意这里是IP层的不通,数据链路层的报文是可达的,只不过在IP层被丢弃了。vlan划分是在数据链路层,它的作用是隔离不同vlan之间的以太网帧的通信。而我们经常说的广播一般就是指由arp、交换机转发时产生的以太网帧的广播,因此这种广播会被隔离在vlan中。

     相同网段间通讯指:
    1、本机IP地址与本机子网掩码进行与运算,得出网络号。
    2、目标IP地址与本机子网掩码进行与运算得出网络号。
    3、观察两个网络号是否相同。

    子网掩码只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分。

    尽管楼主主机设成了两个不同的网段,两台主机间不能访问的原因在于主机本身网卡过滤数据包的问题,不是说交换机的端口就没有转发数据包

    首先要明白一点,IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接受数据是从下至上.

    来看你的问题,环境如下,我们来用一个ping命令的过程来解释:
    一个交换机,连两个电脑A和B,A和B不在一个网段,他们的IP分别是192.168.1.2,255.255.255.0,B是 192.168.2.1,255.255.255.0,网关也可以设也可以不设,但其实你设了也是个假的网关,因为在你的环境里面只有一个交换机,并没有路由器,对吗?

    A ping B:
    1.Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同IP地址“192.168.2.1”一起交给IP层协议.
    2.IP协议会查看目的IP地址是否和源IP在同一网段,如果在同一网段就直接查找ARP缓存,查找目的MAC,如果目的IP地址是否和源IP不在同一网段,那么就将数据包发送到网关.
    3.按照前面的描述,在A电脑上有两种情况,1是没设网关 2是设了一个假的网关,那么如果没设的话,数据包到这一步就丢弃了,目的IP和源IP不在一个网段而且A没有网关,那么就无法发送.如果A设网关了的话,接着往走.
    4.假设A电脑设定的网关是192.168.1.1,那么IP协议知道了目的IP,但是不知道目的MAC,所以会查找A电脑的ARP缓存,看里面有没有目的MAC,很遗憾,肯定没有,因为环境里并没有这个网关设备存在.所以A会发一个ARP广播到192.168.1.X整个网段,来查找IP是192.168.1.1 的MAC,当然,物理上就不存在192.168.1.1这个设备,自然就没有设备来响应这个ARP广播,所以最终IP协议无法知道目的MAC,就无法将数据包往下一个层数据链路层传递.

    回到最开始,还是那句话:IOS一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接收数据是从下至上.
    在此场景中数据包在三层就停住了,根本不会涉及到二层.

    网关
    ‘网关’一个大概念,不具体特指一类产品,只要连接两个不同的网络的设备都可以叫网关;而‘路由器’么一般特指能够实现路由寻找和转发的特定类产品,路由器很显然能够实现网关的功能。网关可以在路由器上,可以在三层交换机上,可以在防火墙上,可以在服务器上,所以和物理的设备无关。

    什么是默认网关

      如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。
     
    交换机access , hybrid,trunk口的区别
     
    untag就是普通的ethernet报文,普通PC机的网卡是可以识别这样的报文进行通讯;
    tag报文结构的变化是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,也就是vlan tag头;一般来说这样的报文普通PC机的网卡是不能识别的
     
    以太网端口有三种链路类型:Access、Hybrid和Trunk。
    Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
    Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
    Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
    Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
     
    端口的缺省VLAN(华为叫pvid)
    Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;
    Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1
    当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口(如果设置了端口的缺省VLAN ID)。当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
     
    Acess端口收报文:
    收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)(Access接受并转发的数据包必须是无VLAN信息的数据包)

    Acess端口发报文:
    将报文的VLAN信息剥离,直接发送出去    
    (所以,Access端口可以实现同一交换机上相同VLAN下的主机通信;也可以实现交换机级连时的缺省VLAN1报文交换,但不能实现VLAN透传。)

    trunk端口收报文: 
    收到一个报文,判断是否有VLAN信息:如果有,判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃;如果没有VLAN信息则打上端口的PVID,并进行交换转发。 

    trunk端口发报文:
    比较将要发送报文的VLAN信息和端口的PVID,如果不相等则直接发送。如果两者相等则剥离VLAN信息,再发送。
    (所以,将交换机级连口统统设置为Trunk并允许所有VLAN通过后,VLAN2-VLAN4000直接透传,而VLAN1则因为和Trunk缺省PVID相同,需要通过剥离VLAN信息又添加VLAN信息实现了透传。而如果更改Trunk的缺省PVID,则可以实现某一交换机下的VLAN-X和另一交换机下的VLAN-Y通信。)

    hybrid端口收报文: 
    收到一个报文,判断是否有VLAN信息:如果有,则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用);
    如果没有则打上端口的PVID,并进行交换转发。

    hybrid端口发报文:
    1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag,哪些VLAN是tag)
    2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送
    (所以,Hybrid实现了不同VLAN下的主机的通信。)
  • 相关阅读:
    mongodb管理命令
    面试阿里巴巴前端开发工程师电话面试部分
    前端常用性能优化方法
    面试阿里巴巴前端开发工程师笔试部分
    javascript 实现无重复字符的最长子串
    自定义 Flutter 插件(flutter_3des_plugin)步骤,以及上传插件的那些坑。
    Flutter 实现 3des 加密
    flutter 优雅的版本更新处理
    flutter_blue 蓝牙插件实战及那些坑
    Flutter 总结apk打包上架问题(keystore,依赖包下载报错,apk文件项目请求报错等)
  • 原文地址:https://www.cnblogs.com/xwzp/p/11903818.html
Copyright © 2011-2022 走看看