• 交换机能不能实现不同网段通信


    摘自:使命召唤  博客,https://www.cnblogs.com/zszmhd/archive/2012/05/08/2490078.html
    交换机(网桥)是数据链路层上的设备,用于将同一个子网的多个节点连接在一起,没有进/出口之分。它只能处理MAC地址,不能处理IP地址。
    与路由器不同,它内部没有网络适配器,即没有IP和MAC地址,只有端口。也就是说,它对接收到的数据包,只负责解开MAC地址,查询对应的端口,然后发送出去,并不管数据包的进端口和出端口是否属于同一个子网。
    一方面,这一高效简洁的处理方式,使其很适合用于组织同一子网的节点;
    另一方面,实际上可以利用它来组织不同子网的节点。
    实际上,用交换机连接的两个计算机,只要它们知道对方的MAC地址,就能进行链路层的通信,进一步,再知道对方的IP地址,就能进行网络层及更上层的通信了。
    原因是:
    因为交换机上每个端口都和网线另一端的计算机直接相连,所以交换机可以轻易的知道该设备的MAC地址(人工配置或自动查询),进而交换机会生成端口与MAC地址的对应表,当来一个数据包时,交换机便解开其中的目标MAC地址,查询映射表,将其发送出去,在这之前可能会对数据包进行校验。当目标计算机接收到数据包时,会查看目标MAC地址是否是自己,若是,则向上层提交,否则丢弃。
    进一步,如果网络层发现IP地址也是自己的,则将数据包继续向上层提交,接收完毕。
    所以,用交换机连接的两个计算机,只要知道对方的MAC和IP就能完全通信,不论它们是否处于同一网段。
    实验如下:
    用VMware Workstation新建一个Windows XP的虚拟机,虚拟机的网络连接方式设置为Host-only,也就是与宿主机处在一个虚拟子网里,通过一个虚拟交换机连接。
    手工配置虚拟机的网卡为:
     

    手工配置宿主机的虚拟网卡VMnet1为:

     
     

    可以看出,它们不在同一网段。

    让它们作为自己的网关,并手动在宿主机和虚拟机里添加ARP映射表:
    在宿主机上添加虚拟机的IP<->MAC映射条目;
     
    在虚拟机上添加宿主机的IP<->MAC映射条目;
     
     
    这是为了让它们知道对方的MAC地址。
    然后,分别在宿主机和虚拟机里ping对方,可以ping通:
     
     
     
    注意:在宿主机上测试时,若无法ping通虚拟机,请禁用宿主机上的其他网卡。
  • 相关阅读:
    持久层框架:MyBatis 3.2(2)
    持久层框架:MyBatis 3.2(1)
    循环结构(二)
    Android LayoutInflater详解
    为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
    Android Support v4、v7、v13的区别和应用场景
    Android的string-array数据源简单使用
    FragmentTabHost切换Fragment时避免重复加载UI
    Ubuntu 安装Chrome步骤
    慢慢来,让好习惯自然来
  • 原文地址:https://www.cnblogs.com/jndx-ShawnXie/p/10141385.html
Copyright © 2020-2023  润新知