KVM网络桥接

作者:独笔孤行

公众号:云实战

官网:​​http://anyamaze.com​

## 前言

网络虚拟化技术是虚拟化技术的重要部分,网络虚拟化技术主要有桥接、NAT、SR-IOV三种实现方法。桥接网络配置简单、稳定可靠,是最常用的网络虚拟化模式。SR-IOV是PCIE层的虚拟化技术,配置相对复杂,使用较少。

## 网络桥接

网络桥接,又称桥接网络,是网络虚拟化技术的常用方式,具有稳定、高性能、兼容性强等特性,是生产环境中最常用的网络技术。网络虚拟化技术主要有NAT、桥接、仅主机三种模式。

NAT可以使虚拟机访问外网,并与宿主机通信,但NAT无法使虚拟机与外部主机通信。

桥接技术即可以使虚拟机访问外网,同时可以使虚拟机与外部主机通信。

仅主机模式只能保证虚拟机与宿主机通信,虚拟机无法访问外网,也无法与外部主机通信。

NAT模式相对灵活,在宿主机物理网络任意变化的场景中,NAT无需做任何调整,可以自动适应网络变化,只要宿主机可访问外网,NAT虚拟机就可以访问外网,但NAT网络性能相对较弱,据实际测试效果,最高只能达到千兆网络性能。

桥接网络相对NAT网络灵活性大打折扣,宿主机物理网络变化时,桥接网络必须进行网络调整才能保证网络正常使用。但桥接网络的性能与稳定性毋庸置疑,桥接网络性能可以达到物理网络性能的80%。因此,桥接网络是生产环境中最常用的网络模型。

仅主机网络模式的性能与桥接网络几乎相当,但由于虚拟机只能与宿主机通信,因此,生产环境中几乎不用。

## 网络技术原理

### 桥接模式

![](http://anyamaze.com/wp-content/uploads/2022/11/Bridge-1024x456.png)
通过配置桥接网络br0,将虚拟机网络通过br0直接桥接到物理网卡eth0,从而访问外网。

### NAT模式

![](http://anyamaze.com/wp-content/uploads/2022/11/NAT-1024x390.png)

通过配置NAT网络default,将虚拟机网络连接到default网络,通过virbr0-nic网口借助iptables的SNAT模式,将网络流量转发到eth0,从而访问外网。

## 桥接实践

### 方法一:直接配置

通过直接修改宿主机的网口配置文件,配置网络桥接

```bash
#1.在目录/etc/sysconfig/network-scripts创建ifcfg-br0网络桥接文件
[root@node1 network-scripts]# cat ifcfg-br0 
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.60.128
NETMASK=255.255.255.0

#2.将物理网口eth0连接到桥接网络br0.
[root@node1 network-scripts]# cat ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0       #桥接到网络br0                 
```

重启网卡服务,查看桥接网络

```bash
systemctl restart network
ip a
```

### 方法二:brctl配置

安装网络桥接配置工具bridge-utils

```bash
yum install bridge-utils -y
```

通过工具创建桥接网络

```bash
brctl addbr br0
brctl addif br0 ens36
brctl show
```

### 方法三:ovs配置

ovs全称OpenvSwitch,是强大的虚拟化网络管理工具,支持二层三层网络的配置,本次只是通过openvswitch配置网络桥接,关于openvswitch的详细信息,可以通过官网了解。

安装openvswitch

```bash
wget https://www.openvswitch.org/releases/openvswitch-3.0.1.tar.gz

tar xvf openvswitch-3.0.1.tar.gz 
cd openvswitch-3.0.1/
./configure
make && make install

export PATH=$PATH:/usr/local/share/openvswitch/scripts/
ovs-ctl start
```


## 虚拟机加载桥接网络

KVM虚拟机加载桥接网卡,有多种实现方法,图形化操作可通过virt-manager或Webvirtmgr直接进行加载,无论哪种方法核心都是修改kvm虚拟机配置文件。本文介绍配置文件的修改方法。

修改虚拟机vm1配置文件

```bash
virsh edit vm1
```

添加内容

```bash
    <interface type='bridge'>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
```

编辑完成后,保存退出。

开启虚拟机后,进入虚拟机操作系统,直接操作ip a可查看到新的网卡名称。

![](http://anyamaze.com/wp-content/uploads/2022/11/myabout-1-1024x533.png)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KVM是一种虚拟化技术,可允许在同一物理服务器上运行多个虚拟机。在KVM中,桥接网络是一种常见的网络设置方法,允许虚拟机与物理网络中的其他设备进行通信。以下是KVM桥接网络设置的步骤: 1. 安装KVM:首先,需要在主机上安装KVM,并确保系统中已加载了kvm模块。 2. 创建网络桥接:使用命令virsh或virt-manager创建一个网络桥接。例如,可以使用以下命令创建一个名为br0的桥接: sudo brctl addbr br0 sudo brctl stp br0 on sudo ifconfig br0 up 3. 配置桥接:编辑网络配置文件,将桥接配置为静态IP地址或DHCP。例如,在Ubuntu中,可以编辑/etc/network/interfaces文件添加以下行: auto br0 iface br0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 4. 指定虚拟机接口:在KVM虚拟机配置文件中,将网络接口设置为桥接类型,并指定所创建的桥接名称。例如,在XML配置文件中,可以添加以下行: <interface type='bridge'> <mac address='xx:xx:xx:xx:xx:xx'/> <source bridge='br0'/> <model type='virtio'/> </interface> 5. 重启网络服务:完成配置后,重新启动网络服务以应用更改。可以使用以下命令重启网络服务: sudo /etc/init.d/networking restart 通过桥接网络设置,KVM虚拟机可以与物理网络中的其他设备进行通信,并获得与物理主机相同的网络体验。这可以使虚拟机在网络环境中具有更高的灵活性和可用性。希望这些步骤能够帮助你理解和配置KVM桥接网络

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值