[转帖]KVM——以桥接的方式搭建虚拟机网络配置

kvm,桥接,方式,搭建,虚拟机,网络,配置 · 浏览次数 : 0

小编点评

# 在 Win7 上ping虚拟机:PING 192.168.0.211 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms # 在 Win7 上ping虚拟机:PING 192.168.0.251 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms # 总结内容 在 Win7 上ping虚拟机:PING 192.168.0.211,数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms,万事大吉!

正文

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html

 

以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。

 

在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentOS7(IP: 192.168.0.251),现在要在CentOS(以下简称HOST)中搭建虚拟机,并使得虚拟机能够处于与Win7和HOST相同的网络环境中。

 

HOST原本的网络配置

打开HOST的网络链接配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0

其文件内容为:

复制代码
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_AUTOCONF=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
DEVICE=enp3s0
HWADDR=b0:6e:bf:bb:12:ad

#static assignment
ONBOOT=yes
BOOTPROTO=static

IPADDR=192.168.0.251
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
复制代码

 

DNS服务器配置在如下文件中:

vi /etc/sysconfig/network

其内容为:

DNS1=192.168.0.1

 

配置桥接

以桥接的方式配置网络,修改 ifcfg-enp3s0文件:

复制代码
TYPE=Ethernet
BRIDGE=br0

#DEFROUTE=yes
#PEERDNS=yes
#PEERROUTES=yes
#IPV4_AUTOCONF=yes
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
DEVICE=enp3s0
#HWADDR=b0:6e:bf:bb:12:ad

#static assignment
ONBOOT=yes
#BOOTPROTO=static

#IPADDR=192.168.0.251
#GATEWAY=192.168.0.1
#NETMASK=255.255.255.0
复制代码

同时,在相同目录下拷贝一份该文件,并命名为 ifcfg-br0:

cp /etc/sysconfig/network-scripts/ifcfg-enp3s0 /etc/sysconfig/network-scripts/ifcfg-br0

然后修改该文件内容为:

复制代码
TYPE=Bridge
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_AUTOCONF=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
#UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
DEVICE=br0
#HWADDR=b0:6e:bf:bb:12:ad

#static assignment
ONBOOT=yes
BOOTPROTO=static

IPADDR=192.168.0.251
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
复制代码

修改完成这两个文件之后,重启网络服务:

systemctl restart network.service

 

配置虚拟网络

使用如下命令打开KVM管理工具:

virt-manager

看到窗口:

在【编辑】菜单中选择【连接详情】,打开如下窗口:

选择【网络接口】这个Tab,将br0接口给停止掉,即左侧下方红色的大叉叉,注意不是圆圈的叉叉,那个是删除,此处不要删除。

然后选择【虚拟网络】这个Tab,将原本的一个default网络给停止并删除掉,然后重新创建一个虚拟网络,创建过程如下:

设置一个虚拟网络的名称,然后下一步:

然后

然后是选择转发的物理网络,此处注意是选择enp3s0,模式采用路由的方式:

配置完成之后回到网络接口界面,启动br0,然后再回到虚拟网络界面,启动vnet0。

此时我们查看ifconfig:

复制代码
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.251  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::b26e:bfff:febb:12ad  prefixlen 64  scopeid 0x20<link>
        ether b0:6e:bf:bb:12:ad  txqueuelen 1000  (Ethernet)
        RX packets 70809  bytes 4050362 (3.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 718  bytes 69637 (68.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether b0:6e:bf:bb:12:ad  txqueuelen 1000  (Ethernet)
        RX packets 93610  bytes 20510654 (19.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10830  bytes 918705 (897.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 1610  bytes 122960 (120.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1610  bytes 122960 (120.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.100.1  netmask 255.255.255.0  broadcast 192.168.100.255
        ether 52:54:00:b3:49:b9  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fe00:8db  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:00:08:db  txqueuelen 1000  (Ethernet)
        RX packets 9522  bytes 786944 (768.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 76790  bytes 18908454 (18.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码

可以看到类似这样的几个连接信息:enp3s0、br0、vnet0、virbr0。

注意,此时我们的HOST网络访问都是正常的。

然后创建一台虚拟机,其虚拟机配置为:

 

配置其网络连接为:

复制代码
TYPE=Ethernet
UUID=55ec455e-aa43-47df-8657-d7846c355792
ONBOOT=yes
NM_CONTROLLED=yes
DEVICE=eth0
#HWADDR=52:54:00:00:08:DB
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6NIT=no
NAME="System eth0"
#HWADDR=00:0C:29:22:D2:64
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=14674126

#static assignment
BOOTPROTO=static
IPADDR=192.168.0.211
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
DNS1=192.168.0.1
复制代码

然后查看虚拟机的网络连接信息:

复制代码
eth0      Link encap:Ethernet  HWaddr 52:54:00:00:08:DB  
          inet addr:192.168.0.211  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe00:8db/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:74804 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9511 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:18772134 (17.9 MiB)  TX bytes:786170 (767.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:578 (578.0 b)  TX bytes:578 (578.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:60:DA:35  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
复制代码

 

测试:

在Win7上Ping HOST:

复制代码
正在 Ping 192.168.0.251 具有 32 字节的数据:
来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64

192.168.0.251 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
复制代码

在Win7上Ping虚拟机:

复制代码
正在 Ping 192.168.0.211 具有 32 字节的数据:
来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64

192.168.0.211 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
复制代码

在HOST上Ping虚拟机:

PING 192.168.0.211 (192.168.0.211) 56(84) bytes of data.
64 bytes from 192.168.0.211: icmp_seq=10 ttl=64 time=0.206 ms
64 bytes from 192.168.0.211: icmp_seq=11 ttl=64 time=0.114 ms
64 bytes from 192.168.0.211: icmp_seq=12 ttl=64 time=0.138 ms
64 bytes from 192.168.0.211: icmp_seq=13 ttl=64 time=0.135 ms

在虚拟机上Ping HOST:

PING 192.168.0.251 (192.168.0.251) 56(84) bytes of data.
64 bytes from 192.168.0.251: icmp_seq=1 ttl=64 time=0.104 ms
64 bytes from 192.168.0.251: icmp_seq=2 ttl=64 time=0.277 ms
64 bytes from 192.168.0.251: icmp_seq=3 ttl=64 time=0.254 ms
64 bytes from 192.168.0.251: icmp_seq=4 ttl=64 time=0.220 ms

在虚拟机上Ping Win7:

PING 192.168.0.236 (192.168.0.236) 56(84) bytes of data.
64 bytes from 192.168.0.236: icmp_seq=1 ttl=128 time=0.826 ms
64 bytes from 192.168.0.236: icmp_seq=2 ttl=128 time=0.405 ms
64 bytes from 192.168.0.236: icmp_seq=3 ttl=128 time=0.384 ms
64 bytes from 192.168.0.236: icmp_seq=4 ttl=128 time=0.434 ms

所有的网络都是通畅的,万事大吉!

与[转帖]KVM——以桥接的方式搭建虚拟机网络配置相似的内容:

[转帖]KVM——以桥接的方式搭建虚拟机网络配置

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html 以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentO

[转帖]KVM——以桥接的方式搭建虚拟机网络配置

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html 以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentO

[转帖]宿主机中查找虚拟机IP地址方法

https://www.cnblogs.com/hukey/p/13914124.html 前言 如果没有较好的规划,通过宿主机要来获取虚拟机的IP地址,这个问题在虚拟化中或多或少会遇到,本文以KVM 虚拟化为例来讨论这个问题的解决方法,查阅网络上相关文档,大致一种思路:通过 通过xml 拿到虚拟机

[转帖]内存配置+大页 HugePage

内存配置 例1:不加内存参数,模拟一个默认大小内存的客户机系统。 qemu-system-x86_64 /home/dudu/kvm/ubuntu14.04.img 在客户机中,可以通过两种常用的方式来查看内存信息,具体如下: free命令通常用来查看内存的使用情况,“-m”参数是指内存大小以MB为

[转帖]KVM打快照

https://www.jianshu.com/p/98e12540d314 virsh snapshot-create-as +虚拟机名称+快照名 1.[root@localhost /]# virsh list #查看当前运行的虚拟机 2.[root@localhost /]# virsh sn

[转帖]KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware are not supported”

https://www.cnblogs.com/anderly/p/14977989.html KVM/QEMU创建虚拟机快照时,报如下错误: Operation not supported: internal snapshots of a VM with pflash based firmware

[转帖]KVM安装

https://www.cnblogs.com/weilu2/p/linux_kvm_install_config.html 检查CPU是否支持硬件虚拟化 在开始安装KVM之前,需要检查系统中的CPU是否支持硬件虚拟化的特性,执行下面的命令: grep -E '(vmx|svm)' /proc/cp

[转帖]KVM与ESXi 对比

关于KVM KVM,深受开源、国产虚拟化、云计算厂家欢迎,费用可以无视,可定制,配合的开源云管平台很丰富,但是对入门用户不友好,第三方工具不够多,无代理备份方式受限于KVM所选择的Linux发行版本,导致各个版本的第三方工具支持力度不高。大厂喜欢,企业用户不喜欢。 关于Vmware ESXi,商业版

[转帖]【KVM】KVM和QEMU的关系及区别

KVM架构 KVM(Kernel-based Virtual Machine)包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层 控制工具。KVM无需改变Linux或Windows系统就能运

[转帖]kvm web管理 webvirtmgr

https://www.jianshu.com/p/8fd2ddadebe9 reference https://blog.csdn.net/yangshihuz/article/details/104055288 https://blog.csdn.net/u010856284/article/d