网络-CIDR、NAT、虚拟机NAT联网

前言:ABCD类地址等基础不再说明,以快速说明主题。


CIDR

1.对于ABCD类地址,格式描述为<网络号><主机号>,其网络号位数是确定的。

2.为了增加灵活性充分利用,以此为基础,占用主机号的部分位充当子网号,形成<网络号><子网号><主机号>,实际就是<网络前缀><主机号>,这个网络前缀可认为就是网络号,这样基本只是为了兼容、不混淆原有概念。

3.使用子网掩码用于确定网络前缀有多少位,它也是4个字节组成的。如11111111 11111111 11110000 00000000,它指示网络前缀有20位。(严格来说是运用“位与”运算的特点,如把两个主机IP地址和子网掩码位与运算,结果相同则认为他们网络前缀相同,在同一个网络。通俗而言就是看有多少个二进制的1从而决定网络前缀的位数)

4.学习使用中我们经常要指明IP地址对应的子网掩码,此时即使写成255.255.240.0的十进制形式也很浪费时间和空间,而且其作用就是用来指明网络前缀的位数。因此我们也可写成192.168.0.1/20,在IP地址后加一个斜杠和其网络前缀的位数。它的含义就是IP:192.168.0.1 子网掩码:255.255.240.0

5.由于上述机制,看到192.168.0.1/20仍然可以说它是一个C类地址,但是此时这个“C类”的意义不大,网络前缀的位数确定并不依赖于ABCD这种分类。因此称呼其为CIDR(Classless Inter-Domain Routing)无类别域间路由

6.把话说通俗了就不够严谨,细节定义请右转教科书

NAT

网关特指路由器的IP地址,路由器至少两个网关。其他东西应该不用说明。核心思想示意图:


报文的流动

把运输层中的端口也利用起来,形成IP-端口映射。即不同主机地址有不同对应的路由器端口,路由器收到回传时根据对应关系把地址相应修改一下就行了。

当然,NAT具有多种实现方式,上面展示的是NAPT核心做法,更多细节和方式右转教科书。

这里有个小问题,端口是运输层的东西,而路由器工作在网络层,似乎有点毛病?
没办法,的确就这样,虽然有点跨界但我们还是把路由器归为网络层。

虚拟机NAT联网

以vmware为例,其本地子网掩码均为255.255.255.0,核心思想示意图:


报文的流动

这个虚拟路由器是为了方便理解画上去的,实际能不能这么叫我也不知道。
虚拟机们发出的IP数据包就这样原封不动的发出去肯定是有问题的,因此vmware把它们IP都改成真机IP再发出去,就是NAT这个操作。
至于vmware构建的虚拟网络号是什么,其实没什么限制,设置192.168.2.0也是可以的,子网掩码对应着设置不要填到有矛盾就可以。内部网关同理,只是一般都默认取最小的主机号罢了。

有个小问题,上图中192.168.1.1去哪了?
如果只是像上图那样,真机是无法和虚拟机直接通信的(但虚拟机和外界联网没问题)。比如说虚拟机开了个80端口当服务器,浏览器中输入192.168.1.3会有用吗?浏览器怎么知道vmware、虚拟网络的存在?
实际上打开网络你会发现自己多了个虚拟网卡,而它地址就是192.168.1.1。这个就是让真机和虚拟机直接网络通信的基础,系统会把访问192.168.1.0/24网络的数据包通过这个虚拟网卡发出去,让真机变成虚拟网络中的一个成员,从而使它们可直接通信。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 4,008评论 0 12
  • 1、概念简介 子网掩码子网掩码又叫网络掩码、地址掩码,是一个32位地址,用于屏蔽IP地址的一部分以区别网络号和主机...
    黒猫阅读 7,717评论 0 23
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,524评论 0 6
  • IP地址是以网络号和主机号来表示网络上的主机的,只有在一个网络号下的计算机之间才能“直接”互通,不同网络号的计算机...
    吴业鹏阅读 9,888评论 1 6
  • 山雨不知愁何是,旭日但作长空游。 晨光氤氲波浪锦,朝雾蒙蒙花草羞。 一别湖阳二十载,落棋无迹泊瓜洲。 旧日太学帝阙...
    檀鑫阅读 285评论 0 0