分享

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

本文摘自博客园大肥肥就是我

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

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

HOST原本的网络配置

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

  1. vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
复制代码

其文件内容为:

  1. TYPE=Ethernet
  2. DEFROUTE=yes
  3. PEERDNS=yes
  4. PEERROUTES=yes
  5. IPV4_AUTOCONF=yes
  6. IPV6INIT=yes
  7. IPV6_AUTOCONF=yes
  8. IPV6_DEFROUTE=yes
  9. IPV6_PEERDNS=yes
  10. IPV6_PEERROUTES=yes
  11. IPV6_FAILURE_FATAL=no
  12. NAME=enp3s0
  13. UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
  14. DEVICE=enp3s0
  15. HWADDR=b0:6e:bf:bb:12:ad
  16. #static assignment
  17. ONBOOT=yes
  18. BOOTPROTO=static
  19. IPADDR=192.168.0.251
  20. GATEWAY=192.168.0.1
  21. NETMASK=255.255.255.0
复制代码

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

  1. vi /etc/sysconfig/network
复制代码

其内容为:

  1. DNS1=192.168.0.1
复制代码

配置桥接

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

  1. TYPE=Ethernet
  2. BRIDGE=br0
  3. #DEFROUTE=yes
  4. #PEERDNS=yes
  5. #PEERROUTES=yes
  6. #IPV4_AUTOCONF=yes
  7. #IPV6INIT=yes
  8. #IPV6_AUTOCONF=yes
  9. #IPV6_DEFROUTE=yes
  10. #IPV6_PEERDNS=yes
  11. #IPV6_PEERROUTES=yes
  12. #IPV6_FAILURE_FATAL=no
  13. NAME=enp3s0
  14. UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
  15. DEVICE=enp3s0
  16. #HWADDR=b0:6e:bf:bb:12:ad
  17. #static assignment
  18. ONBOOT=yes
  19. #BOOTPROTO=static
  20. #IPADDR=192.168.0.251
  21. #GATEWAY=192.168.0.1
  22. #NETMASK=255.255.255.0
复制代码

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

  1. cp /etc/sysconfig/network-scripts/ifcfg-enp3s0 /etc/sysconfig/network-scripts/ifcfg-br0
复制代码

然后修改该文件内容为:

  1. TYPE=Bridge
  2. DEFROUTE=yes
  3. PEERDNS=yes
  4. PEERROUTES=yes
  5. IPV4_AUTOCONF=yes
  6. IPV4_FAILURE_FATAL=no
  7. IPV6INIT=yes
  8. IPV6_AUTOCONF=yes
  9. IPV6_DEFROUTE=yes
  10. IPV6_PEERDNS=yes
  11. IPV6_PEERROUTES=yes
  12. IPV6_FAILURE_FATAL=no
  13. NAME=br0
  14. #UUID=99244a4d-8cac-4023-9a09-8e50c547cd3a
  15. DEVICE=br0
  16. #HWADDR=b0:6e:bf:bb:12:ad
  17. #static assignment
  18. ONBOOT=yes
  19. BOOTPROTO=static
  20. IPADDR=192.168.0.251
  21. GATEWAY=192.168.0.1
  22. NETMASK=255.255.255.0
复制代码

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

  1. systemctl restart network.service
复制代码

配置虚拟网络

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

  1. virt-manager
复制代码

看到窗口:

Image

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

Image

选择【网络接口】这个Tab,将br0接口给停止掉,即左侧下方红色的大叉叉,注意不是圆圈的叉叉,那个是删除,此处不要删除。然后选择【虚拟网络】这个Tab,将原本的一个default网络给停止并删除掉,然后重新创建一个虚拟网络,创建过程如下:

Image

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

Image

然后

Image

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

Image

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

此时我们查看ifconfig:

  1. br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  2. inet 192.168.0.251 netmask 255.255.255.0 broadcast 192.168.0.255
  3. inet6 fe80::b26e:bfff:febb:12ad prefixlen 64 scopeid 0x20<link>
  4. ether b0:6e:bf:bb:12:ad txqueuelen 1000 (Ethernet)
  5. RX packets 70809 bytes 4050362 (3.8 MiB)
  6. RX errors 0 dropped 0 overruns 0 frame 0
  7. TX packets 718 bytes 69637 (68.0 KiB)
  8. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  9. enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  10. ether b0:6e:bf:bb:12:ad txqueuelen 1000 (Ethernet)
  11. RX packets 93610 bytes 20510654 (19.5 MiB)
  12. RX errors 0 dropped 0 overruns 0 frame 0
  13. TX packets 10830 bytes 918705 (897.1 KiB)
  14. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  15. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  16. inet 127.0.0.1 netmask 255.0.0.0
  17. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  18. loop txqueuelen 1 (Local Loopback)
  19. RX packets 1610 bytes 122960 (120.0 KiB)
  20. RX errors 0 dropped 0 overruns 0 frame 0
  21. TX packets 1610 bytes 122960 (120.0 KiB)
  22. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  23. virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
  24. inet 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255
  25. ether 52:54:00:b3:49:b9 txqueuelen 1000 (Ethernet)
  26. RX packets 0 bytes 0 (0.0 B)
  27. RX errors 0 dropped 0 overruns 0 frame 0
  28. TX packets 0 bytes 0 (0.0 B)
  29. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  30. vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  31. inet6 fe80::fc54:ff:fe00:8db prefixlen 64 scopeid 0x20<link>
  32. ether fe:54:00:00:08:db txqueuelen 1000 (Ethernet)
  33. RX packets 9522 bytes 786944 (768.5 KiB)
  34. RX errors 0 dropped 0 overruns 0 frame 0
  35. TX packets 76790 bytes 18908454 (18.0 MiB)
  36. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
复制代码

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

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

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

Image

配置其网络连接为:

  1. TYPE=Ethernet
  2. UUID=55ec455e-aa43-47df-8657-d7846c355792
  3. ONBOOT=yes
  4. NM_CONTROLLED=yes
  5. DEVICE=eth0
  6. #HWADDR=52:54:00:00:08:DB
  7. DEFROUTE=yes
  8. IPV4_FAILURE_FATAL=yes
  9. IPV6NIT=no
  10. NAME="System eth0"
  11. #HWADDR=00:0C:29:22:D2:64
  12. PEERDNS=yes
  13. PEERROUTES=yes
  14. LAST_CONNECT=14674126
  15. #static assignment
  16. BOOTPROTO=static
  17. IPADDR=192.168.0.211
  18. NETMASK=255.255.255.0
  19. BROADCAST=192.168.0.255
  20. GATEWAY=192.168.0.1
  21. DNS1=192.168.0.1
复制代码

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

  1. eth0 Link encap:Ethernet HWaddr 52:54:00:00:08:DB
  2. inet addr:192.168.0.211 Bcast:192.168.0.255 Mask:255.255.255.0
  3. inet6 addr: fe80::5054:ff:fe00:8db/64 Scope:Link
  4. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  5. RX packets:74804 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:9511 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:18772134 (17.9 MiB) TX bytes:786170 (767.7 KiB)
  9. lo Link encap:Local Loopback
  10. inet addr:127.0.0.1 Mask:255.0.0.0
  11. inet6 addr: ::1/128 Scope:Host
  12. UP LOOPBACK RUNNING MTU:16436 Metric:1
  13. RX packets:10 errors:0 dropped:0 overruns:0 frame:0
  14. TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
  15. collisions:0 txqueuelen:0
  16. RX bytes:578 (578.0 b) TX bytes:578 (578.0 b)
  17. virbr0 Link encap:Ethernet HWaddr 52:54:00:60:DA:35
  18. inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
  19. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  20. RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  21. TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  22. collisions:0 txqueuelen:0
  23. RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
复制代码

测试:


在Win7上Ping HOST:

  1. 正在 Ping 192.168.0.251 具有 32 字节的数据:
  2. 来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
  3. 来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
  4. 来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
  5. 来自 192.168.0.251 的回复: 字节=32 时间<1ms TTL=64
  6. 192.168.0.251 的 Ping 统计信息:
  7. 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  8. 往返行程的估计时间(以毫秒为单位):
  9. 最短 = 0ms,最长 = 0ms,平均 = 0ms
复制代码
在Win7上Ping虚拟机:

  1. 复制代码
  2. 正在 Ping 192.168.0.211 具有 32 字节的数据:
  3. 来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
  4. 来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
  5. 来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
  6. 来自 192.168.0.211 的回复: 字节=32 时间<1ms TTL=64
  7. 192.168.0.211 的 Ping 统计信息:
  8. 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
  9. 往返行程的估计时间(以毫秒为单位):
  10. 最短 = 0ms,最长 = 0ms,平均 = 0ms
复制代码
在HOST上Ping虚拟机:

  1. PING 192.168.0.211 (192.168.0.211) 56(84) bytes of data.
  2. 64 bytes from 192.168.0.211: icmp_seq=10 ttl=64 time=0.206 ms
  3. 64 bytes from 192.168.0.211: icmp_seq=11 ttl=64 time=0.114 ms
  4. 64 bytes from 192.168.0.211: icmp_seq=12 ttl=64 time=0.138 ms
  5. 64 bytes from 192.168.0.211: icmp_seq=13 ttl=64 time=0.135 ms
复制代码

在虚拟机上Ping HOST:

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

在虚拟机上Ping Win7:

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

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




版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

已有(0)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服