在通信公司干了快一年,一些网络概念还是不熟悉,用自己的语言记录下吧,有错误还望指正。
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一共七层, 发送数据的过程是从上到下,也就是从应用层一直到物理层,接收数据是从下至上.
在此场景中数据包在三层就停住了,根本不会涉及到二层.
网关
什么是默认网关
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)(Access接受并转发的数据包必须是无VLAN信息的数据包)
Acess端口发报文:
将报文的VLAN信息剥离,直接发送出去
trunk端口收报文:
收到一个报文,判断是否有VLAN信息:如果有,判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃;如果没有VLAN信息则打上端口的PVID,并进行交换转发。
比较将要发送报文的VLAN信息和端口的PVID,如果不相等则直接发送。如果两者相等则剥离VLAN信息,再发送。
hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果有,则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用);
hybrid端口发报文:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag,哪些VLAN是tag)
2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送