Nat模式

注意:
[root@localhost ~]# yum info firewalld
不同版本的firewalld工具,对iptables规则的影响不一样,如果使用的是 centos7.7之前的版本,那么防火墙版本应该在: 0.6.3.2.el7版本,这时候,防火墙必须是打开的状态才可以看到路由转发规则。

而到了centos7.8版本的时候,firewalld防火墙版本已经更新,现在 firewalld工具必须是关闭状态,才可以看到路由转发规则。

查看路由转发规则,或者iptables-save命令 ,都可以

[root@localhost ~]# iptables -t nat -L

KVM默认的网络方式,如果想要使用这种模式(centos7.7之前)防火墙需要打开,因为需要用到iptables规则

# 防火墙添加规则,打开5900端口
[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all

添加路由转发

[root@localhost ~]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

NAT模式自定义网段

1、直接修改我们现在使用的default网络的信息
[root@kvm01 ~]# virsh net-edit default
……<ip address='192.168.120.1' netmask='255.255.255.0'><dhcp><range start='192.168.120.2' end='192.168.120.254'/></dhcp>
……[root@kvm01 ~]# virsh net-destroy --network default
[root@kvm01 ~]# virsh net-start --network default[root@kvm01 ~]# virsh net-dumpxml default
<network><name>default</name><uuid>795e355e-4265-498a-ac30-336d7af9c47a</uuid><forward mode='nat'><nat><port start='1024' end='65535'/></nat></forward><bridge name='virbr0' stp='on' delay='0'/><mac address='52:54:00:6d:6b:d9'/><ip address='192.168.120.1' netmask='255.255.255.0'><dhcp><range start='192.168.120.2' end='192.168.120.254'/></dhcp></ip>
</network>

此时,kvm虚拟机的virbr0网卡的IP地址就改变了

[root@kvm01 ~]# ip a
……
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:6d:6b:d9 brd ff:ff:ff:ff:ff:ffinet 192.168.120.1/24 brd 192.168.120.255 scope global virbr0valid_lft forever preferred_lft forever
……

打开虚拟机test01,仍然用dhcp的方式获取IP地址,就会看到kvm虚拟机域获取到的IP地址已经变了

[root@kvm01 ~]# virsh start test01
[root@kvm01 ~]# virsh vncdisplay test01
:0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
ONBOOT=yes[root@localhost ~]# systemctl restart network

2、可以去自定义一个网段
[root@kvm01 ~]# virsh net-dumpxml default > test.xml
[root@kvm01 ~]# vim test.xml
<network>
<name>test</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0'/>
<ip address='192.168.110.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.110.2' end='192.168.110.254'/>
</dhcp>
</ip>
</network>
[root@kvm01 ~]# virsh net-create test.xml
Network test created from test.xml[root@kvm01 ~]# virsh net-listName                 State      Autostart     Persistent
----------------------------------------------------------default              active     yes           yestest                 active     no            no[root@kvm01 ~]# virsh net-dumpxml test
<network>
<name>test</name>
<uuid>c620e968-5c5e-48fc-8319-5fd8a1fbdab7</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0'/>
<mac address='52:54:00:b0:36:b9'/>
<ip address='192.168.110.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.110.2' end='192.168.110.254'/>
</dhcp>
</ip>
</network>[root@kvm01 ~]# ip a
...
5: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500
qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:b0:36:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.110.1/24 brd 192.168.110.255 scope global
virbr1
valid_lft forever preferred_lft forever
6: virbr1-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc
pfifo_fast master virbr1 state DOWN group default qlen
1000
link/ether 52:54:00:b0:36:b9 brd ff:ff:ff:ff:ff:ff

修改想要使用此网络的虚拟机域,这里我们使用test01虚拟机域

[root@kvm01 ~]# virsh edit test01
...
67 <interface type='network'>
68 mac地址这里直接删除即可。
69 <source network='test'/>
...[root@kvm01 ~]# virsh start test01

PS:虚拟机域的IP获取方式改为dhcp,直接启用,即可看到分配到的IP地址,当然是在我们test网络同一个网段的

总结:nat模式支持主机与虚拟机的互访,也支持虚拟机访问互联网,但不支持外网访问虚拟机域

桥接网络

1、创建虚拟桥接网卡br0

[root@kvm01 ~]# systemctl stop NetworkManager
[root@kvm01 ~]# virsh iface-bridge ens33 br0   #过程有可能报错,先看/etc/sysconfig/network-scripts/有没有自动生成 br0
[root@kvm01 ~]# cd /etc/sysconfig/network-scripts/
[root@kvm01 network-scripts]# ls
ifcfg-br0

查看配置文件会看到,ens33桥接到了br0上

[root@kvm01 network-scripts]# cat ifcfg-ens33
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"[root@kvm01 network-scripts]# cat ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="192.168.1.150"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"[root@kvm01 network-scripts]# brctl show
bridge name     bridge id           STP enabled     interfaces
br0             8000.000c29efc727   yes             ens33
virbr0          8000.5254006d6bd9   yes             virbr0-nicvnet0

2、修改kvm虚拟机域的xml配置文件

[root@kvm01 ~]# virsh edit test02
...
69     <interface type='bridge'>               #修改
70       <mac address='52:54:00:97:98:6f'/>        #无须修改
71       <source bridge='br0'/>                    #修改
...

3、开启虚拟机域,配置IP,验证是否能够连通外网

[root@kvm01 ~]# virsh start test02
[root@kvm01 ~]# virsh vncdisplay test02
:0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
ONBOOT=yes[root@localhost ~]# systemctl restart network

也可配置静态IP验证

PS:这时候需要注意,往往到这一步,很可能会报一个错,说要开启虚拟网卡的混杂模式,出于安全考虑是不允许的,然后就会出现,dhcp模式获取不到IP,即使手动设置好IP之后,仍然ping不通外网。
因为要开启网卡的混杂模式,需要我们对VMware的vmnet0网卡有权限进行操作,如果使用的是Windows操作系统装的VMware,只要使用管理员运行VMware就可以了,如果是Linux操作系统上安装的VMware,需要更改一下/dev/vmnet0网卡的权限,当然如果想要使用nat网络,更改/dev/vmnet8就可以了。

练习:

1、由test01虚拟机,克隆一台虚拟机test02
2、test01使用默认的nat模式访问外网,并部署一个httpd服务。test02使用bridge模式访问外网,并部署一个nginx服务
3、两台虚拟机域哪一台能给外网提供服务,并总结两种网络模式的优缺点

练习实操:

1、由test01虚拟机,克隆一台虚拟机test02

[root@kvm01 ~]# virsh list --allId    Name                           State
-----------------------------------------------------     centos7.0                      shut off-     test01                         shut off[root@kvm01 ~]# virt-clone --auto-clone -o test01 -n test02[root@kvm01 ~]# virsh list --allId    Name                           State
-----------------------------------------------------     centos7.0                      shut off-     test01                         shut off-     test02                         shut off[root@kvm01 ~]# ls /kvm-vm/
centos7.0.qcow2  test01.raw  test02.raw
[root@kvm01 ~]# ls /etc/libvirt/qemu/
centos7.0.xml  networks  test01.xml  test02.xml

2、test01使用默认的nat模式访问外网,并部署一个httpd服务。test02使用bridge模式访问外网,并部署一个nginx服务

1)test01使用默认的nat模式访问外网,并部署一个httpd服务

继上边的实验继续部署httpd服务:

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo 1231111111111 > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# curl 192.168.110.45
1231111111111

外界访问不到:

[root@kvm01 ~]# curl 192.168.110.45
curl: (7) Failed connect to 192.168.110.45:80; No route to host

例图:

2)test02使用bridge模式访问外网,并部署一个nginx服务

继上边的实验继续部署nginx服务:
在kvm虚拟机中编写nginx.repo文件,scp到test02虚拟机域中

[root@kvm01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[root@kvm01 ~]# scp /etc/yum.repos.d/nginx.repo root@192.168.1.143:/etc/yum.repos.d/

在test02虚拟机域中安装nginx

[root@localhost ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@localhost ~]# yum -y install nginx[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl enable nginx[root@localhost ~]# curl 192.168.1.143          #本机访问
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
……[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent        #防火墙添加规则,打开5900端口
success
[root@localhost ~]# firewall-cmd --add-port=80/tcp --permanent        #防火墙添加规则,打开80端口
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all
……ports: 5900/tcp 80/tcp
……

外界访问:

[root@kvm01 ~]# curl 192.168.1.143
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

例图:

3、两台虚拟机域哪一台能给外网提供服务,并总结两种网络模式的优缺点

test02可以给外界提供服务;

优缺点:

nat: nat模式支持主机与虚拟机的互访,也支持虚拟机访问互联网,但不支持外网访问虚拟机域
bridge: bridge模式支持主机与虚拟机的互访,也支持虚拟机访问互联网,支持外网访问虚拟机域

KVM——5——kvm网络相关推荐

  1. RHEL7 kvm虚拟机桥接网络配置

    摘要:RHEL7 KVM虚拟机网络配置Bridge方式.Bridge方式的配置原理和步骤. Bridge方式适用于服务器主. bridge 的网络结构见图: Bridge方式 问题 客户机安装完成后, ...

  2. KVM的NAT网络和bridge网络安装

    KVM的安装使用 安装前准备 NAT网络 第一大步:安装相关包 第二大步:创建磁盘 第三大步:安装配置 第四大步:进入管理端 点左上角1的部分,查看ip 创建bridge网络虚拟机 安装前准备 实验目 ...

  3. KVM虚拟机配置网络

    kvm虚拟机的网络配置有两种模式:桥接模式和NAT模式. 一.两种模式区别如下: 1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所 ...

  4. kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

    1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中. [root@node1 ~]# virsh list ...

  5. KVM总结-KVM性能优化之网络性能优化

    前面已经介绍了KVM CPU优化(http://blog.csdn.net/dylloveyou/article/details/71169463).内存优化(http://blog.csdn.net ...

  6. KVM中的网络IO设备虚拟化方式

    在KVM虚拟化的架构里,对CPU的虚拟化采用的是硬件辅助的方式(Intel VT-x,AMD-V),效率比较高,内存的虚拟化有Intel EPT技术的支持,效率也没有问题:那么对于像磁盘驱动器,网卡等 ...

  7. Kvm 平台自定义网络的方式

    Kvm是一个用于创建虚拟机的虚拟化平台,可以用它来创建不同操作系统的虚拟机 Kvm在安装完后,创建时默认时使用的网络名称是 default,其会在宿主机上创建一张虚拟网卡--virbr0,所有虚拟机对 ...

  8. linux kvm网络配置文件,linux kvm 虚拟机之网络配置

    在KVM的网络模式中 ,企业应用最常用的网络模式应该是网桥模式. 在kvm的官网中,有关于怎么搭建KVM网络的.但照那样做,并不会生成一个真正可用的网桥.因为还差了几步. 我做的步骤如下,配置后正常使 ...

  9. linux kvm 虚机 网络,linux kvm 虚拟机之网络配置

    在KVM的网络模式中 ,企业应用最常用的网络模式应该是网桥模式. 在kvm的官网中,有关于怎么搭建KVM网络的.但照那样做,并不会生成一个真正可用的网桥.因为还差了几步. 我做的步骤如下,配置后正常使 ...

最新文章

  1. OpenGL--- 坐标系变换
  2. mapreduce介绍
  3. 湖南工程师用中文编写操作系统,还发明了甲、乙、丙语言???
  4. 漫画:什么是自动驾驶?
  5. excel如何把顺序倒过来_春节酒局多,这些葡萄酒倒酒礼仪你一定要知道
  6. 前端知识 | React Native手势响应浅析
  7. [恢]hdu 1017
  8. Appium API文档中文版
  9. IntelliJ IDEA引入项目之后不显示 解决办法
  10. html站点地图怎么做,sitemap网站地图(站点地图)如何制作以及作用
  11. 用PPT就可以做印章?是的,超简单超逼真,教你一分钟搞定
  12. Excel的科学计数法
  13. 华为二层网络隔离与互通(vlan隔离与端口隔离)
  14. Lucas-Kanade 算法原理以及应用
  15. myelipse修改页面后 浏览器无变化
  16. 我就想知道知道我错哪了!!啊啊啊啊!
  17. 桌面Linux下分区建议方案
  18. 回归分析——基本内容
  19. 数组元素的去重与排序
  20. 回旋数字c语言数组,LeetCode 447*. 回旋镖的数量(Python)

热门文章

  1. 性能测试Loaderrunner
  2. java——数组和方法
  3. DolpinScheduler2.0.5详细介绍与踩坑实战
  4. java计算机毕业设计无人智慧药柜系统设计源代码+数据库+系统+lw文档
  5. 前端埋点数据上传应该怎样实现?
  6. 京石城际铁路、廊涿城际铁路、涿州西站
  7. 计算机网络——子网划分
  8. Hive sql解析json格式
  9. 麦肯锡报告:2030年近1亿中国人或面临职业转换,全球将有8亿人被机器人取代!
  10. java怎么上传word文档,java上传word文档