ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kvm设置网络桥接模式

2022-05-09 21:34:22  阅读:332  来源: 互联网

标签:enp0s20f0u1 桥接 bytes kvm RX br0 overruns 设置



layout: post
title: kvm设置网络桥接模式
subtitle: kvm设置
gh-repo: daattali/beautiful-jekyll
gh-badge: [star, fork, follow]
tags: [kvm, vm]
comments: true

kvm设置网络桥接模式

kvm设置网络时,对于虚拟机的网络连接有两种常用方式,一种是NAT,一种是桥接。

NAT(网络地址转换), Network Access Translation,使用NAT技术的局域网对外网的表现是一个IP地址A,但是在该局域网内部则使用同一个网段的不同IP,这些IP对外网访问,全部使用地址A,反过来外网对这些IP的访问,通过访问"A:端口"来映射。在创建虚拟机时,如果采用NAT方法,一般虚拟机会获得一个192.168.x.x的IP,该IP只有从host或者从该host上的其他虚拟机才能访问。

桥接方式则会让被创建的虚拟机获得与host一样的网段的IP, 因此表现得就像一台与host同在一个网络中的物理机一样。

创建KVM的xml文件中,采用NAT模式的设置一般如下:

<domain type="kvm">
  <devices>
	……
    <interface type="bridge">
      <source bridge="virbr0"/>
      <mac address="00:10:23:91:15:11"/>
      <model type="virtio"/>
    </interface>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x18' slot='0x02' function='0x0'/>
      </source>
    </hostdev>
   <serial type="pty">
      <target port="0"/>
    </serial>
    <console type="pty">
      <target type="serial" port="0"/>
    </console>
  </devices>
</domain>

在interface属性下,type为"bridge",source bridge则是“virbr0”。mac address是v虚拟机中虚拟网卡(不是virbr0)中的mac,它只需要在这个局域网中保证唯一即可。

virbr0由kvm默认创建,它默认分配了一个IP 192.168.122.1,连接到该网桥上的虚拟网卡会被virbr0分配一个IP 。

理解 virbr0

对虚拟机使用桥接连接方式,需要将xml中的“virbr0”修改为“br0”。

其次,修改host中的br0和网卡配置。以redhat举例,使用桥接方式之前,host上的br0和网卡地址是这样的:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20e:c6ff:fe67:74ec  prefixlen 64  scopeid 0x20<link>
        ether 00:0e:c6:67:74:ec  txqueuelen 1000  (Ethernet)
        RX packets 8396296  bytes 11827862282 (11.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4642273  bytes 318891030 (304.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.239.183.59  netmask 255.255.254.0  broadcast 10.239.183.255
        ether 00:0e:c6:67:74:ec  txqueuelen 1000  (Ethernet)
        RX packets 8398665  bytes 11845477389 (11.0 GiB)
        RX errors 0  dropped 425  overruns 0  frame 0
        TX packets 4645823  bytes 356244128 (339.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

/etc/sysconfig/network-scripts/文件夹下,有ifcfg-br0, ifcfg-enp0s20f0u1两个配置文件,将它们修改为如下:

# ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="dhcp"


# ifcfg-enp0s20f0u1`
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp0s20f0u1
DEVICE=enp0s20f0u1
ONBOOT=yes
BRIDGE=br0 #主要是加上这句

并且执行systemctl restart NetworkManager;nmcli connection up enp0s20f0u1, 之后再把br0的192.168.0.1地址移除:

ip address del dev br0 192.168.0.1/24

再次ifconfig, 得到如下结果:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.239.183.59  netmask 255.255.254.0  broadcast 10.239.183.255
        inet6 fe80::20e:c6ff:fe67:74ec  prefixlen 64  scopeid 0x20<link>
        ether 00:0e:c6:67:74:ec  txqueuelen 1000  (Ethernet)
        RX packets 8407070  bytes 11828720576 (11.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4650038  bytes 319945070 (305.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0e:c6:67:74:ec  txqueuelen 1000  (Ethernet)
        RX packets 8409506  bytes 11846391933 (11.0 GiB)
        RX errors 0  dropped 435  overruns 0  frame 0
        TX packets 4653593  bytes 357360918 (340.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以看到,ip地址从enp0s20f0u1移动到了br0上。这代表kvm可以成功设置桥接模式。

标签:enp0s20f0u1,桥接,bytes,kvm,RX,br0,overruns,设置
来源: https://www.cnblogs.com/goto2091/p/16250968.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有