Linux网络配置:Nat和桥接模式详解
Linux网络配置:Nat和桥接模式详解
一、我们首先说一下VMware的几个虚拟设备:
- 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这台虚拟机。