Linux网络配置:Nat和桥接模式详解

 Linux网络配置:Nat和桥接模式详解

一、我们首先说一下VMware的几个虚拟设备:

  1. Centos虚拟网络编辑器中的虚拟交换机

            

            VMnet0:用于虚拟桥接网络下的虚拟交换机;

            VMnet1:用于虚拟Host-Only网络下的虚拟交换机;

            VMnet8:用于虚拟NAT网络下的虚拟交换机。

 

  2.宿主主机的虚拟网卡(安装了VMware虚拟机后,会在网络连接对话框中多出的两个虚拟网卡)

        

         VMware NetworkAdepter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡;

         VMware NetworkAdepter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡。

 

二、Nat技术原理

  • NAT:对IP数据报文中的IP地址进行转换,是一种在现网中被广泛部署的技术,一般部署在网络出口设备,例如路由器或防火墙上。
  • NAT的典型应用场景:在私有网络内部(园区、家庭)使用私有地址,出口设备部署NAT,对于“从内到外”的流量,网络设备通过NAT将数据包的源地址进行转换(转换成特定的公有地址),而对于“从外到内的”流量,则对数据包的目的地址进行转换。
  • 通过私有地址的使用结合NAT技术,可以有效节约公网 IPV4地址。

     

   注:数据包1→2出去的时候把源地址换成了出接口的公网地址了,所以回来的时候目的地址就找到出接口那个公网地址了。但在在真实网络环境中公网设备是没有私网的路由的,但是在虚拟机里面不同,都是私网地址,可能它们互相都有彼此的路由记录!

 

三、Linux网卡配置DHCP,在Nat网络模式下:

Centos虚拟网络编辑器中VMnet8的Nat设置DHCP自动获取IP,宿主主机网络适配器的VMnat8的IPV4也是自动获取IP。

Linux网卡配置DHCP:

 

 

 

这时Linux中Nat网卡的IP、虚拟网络编辑器中Nat的IP和宿主主机网络适配器的VMnat8的IP(在cmd用ifconfig查看)在同一个网段。

① 测试环境在只有一个Nat网卡(ifconfig时只有一个Nat网卡),没有桥接的网卡下,虚拟机和宿主主机(Windows主机)可以相互ping通!

② 当同时存在Nat网卡和桥接网卡时,虚拟机不能ping通宿主主机(丢包100%),宿主主机可以ping虚拟机!而在断开桥接的网络连接,关掉桥接网卡和Nat网卡,重启Nat网卡时,虚拟机和宿主主机(Windows主机)可以相互ping通!(①)

 

 

 

四、Linux网卡配置DHCP,在桥接网络模式下:

Centos虚拟网络编辑器中VMnet0的桥接设置自动桥接,宿主主机不需要桥接的虚拟网络适配器(同一个网段)。

Linux的桥接网卡配置DHCP(同上)!

 

 

 

 

桥接模式下Linux相当于在一个宿主主机局域网内创立了一个单独的主机,他可以访问这个局域网内的所有的主机,可以手动来配置IP地址,子网掩码。或者配置DHCP,虚拟机是和真实主机在同一个网段(Nat是两个网段),这个模式里,虚拟机和宿主机可以互相 ping通。

 

五、三种模式网络拓扑图

以下内容借鉴博客https://www.cnblogs.com/zejin2008/p/5935934.html,十分感谢!

补充说明

0.vmnet0,vmnet1,vmnet8都是vmware虚拟出来的交换机,当然还有虚拟hdcp服务器没画出来,但不妨碍我们理解。

1.host A为你的宿主机,host B、hostC、hostN为你同一网络下的其它主机

2.vm bridge、vm host_only、vm nat为主机host A上虚拟出来的机器

3.vm bridge虚拟机选择网桥模式,vm host_only虚拟机选择host-only模式,vm nat虚拟机选择nat模式

 

有了如上拓扑结构,可以很容易推断出:

A.在bridge模式下,hostA、hostB、hostC、hostN、vm bridge这几台机器都能相互访问和上网。并且他们的网段相同。

B.在host-only模式下,hostA与vm host_only能相互访问,但是vm host_only不能上网,vm host_only这台虚拟机与除hostA外的其它主机都不能相互通信。

C.在nat模式下,hostA与vm nat能相互访问,vm nat也能通过virtual net路由器进行上网,可以访问到hostB hostC hostN机器,但是hostB hostC hostN不能访问到vm nat这台虚拟机。

 5 total views,  1 views today

页面下部广告