CentOS7 网络配置(桥接模式)

参考:Centos7.X下搭建KVM虚拟机及配置Bridge网桥全过程

KVM创建桥接网卡--最简洁最详细_Bruce小鬼的博客-CSDN博客_kvm 网卡桥接

环境:CentOS7物理机

 注:宿主机如果安装了桌面环境,网络由 NetworkManager 来管理,它不支持桥接网络, 所以需要先关闭 NetworkManager,一定要关闭,否则容易报错,配置完桥接后还 要启动 NetworkManager 要不桌面无法使用,是黑屏状态

一. 简介

1.1 网络模式原理

1.1.1 NAT模式网络原理

1.1.3 NAT网络模式网卡清单

  1. 宿主机网卡 eth0
  2. 虚拟机网卡 vnet0
  3. virbr0 宿主机网关

1.1.2 NAT网络虚拟机上网原理

    要介绍NAT网络原理,首先要将网络分层,外网和内网
    对于宿主机来说,宿主机的网络10.0.0.11 就是内网也就是局域网,通常是家里路由器分配的网络,连接到外网的宽带就是宿主机的外网。
    对于虚拟机来说,虚拟机的网络192.168.122.22就是内网也就是局域网,是在宿主机下虚拟出来的网络,此时宿主机的网络地址相对与虚拟机来说就是外网。
外网–宿主机—虚拟机之间的外网和局域网相对关系介绍清除后,下面就方便介绍NAT网络原理了。
    首先虚拟机要连接外网,就必须通过宿主机的网关将包发送出去,宿主机接收到虚拟机的网络包后,就说明虚拟机可以访问外网了,(这个外网指的是宿主机)。此时虚拟机要访问互联网,需要通过NAT模式配置iptable路由转换规则通过宿主机网卡访问互联网。

1.2 桥接模式网络原理

在这里插入图片描述

桥接模式原理

  1. 宿主机创建一个br0 桥接网卡,配置当前网卡IP地址分配规则和网关。
  2. 虚拟机使用桥接模式配置与br0同网段的IP地址和网关后,虚拟机的网络包直接通过宿主机的br0网卡的网关发送到宿主机的eth0网卡,通过eth0网卡连接互联网。因为虚拟机配置的网卡IP地址与宿主机是同一网段的地址,因此宿主机和虚拟机直接可以互相访问,多个虚拟机之间也可以互相访问。同时虚拟机还可以连接互联网。

二:配置宿主机的桥接网络(工作网卡为em1)

NAT模式,相当于KVM内所有的虚拟机,要和外部网络通信的时候,共享一个KVM宿主机的IP,通过linux系统的转发功能实现对外通信。用作虚拟化桌面可行。

BRIDGE模式。相当于KVM内所有虚拟机,通过一个虚拟交换机,把虚拟交换机与宿主机的物理网卡绑定一起。虚拟机与宿主机互相独立的IP。物理网卡监听这些IP,从而达到虚拟机与物理机在同一个局域网。用作服务器虚拟化。

cd /etc/sysconfig/network-scripts/  ##进入宿主机网卡文件目录
cp ifcfg-em1 ifcfg-em1.bak  ##备份宿主机网卡文件,用于日后有需要的时候备份

2.1、修改宿主机工作网卡文件

vi ifcfg-em1


ifcfg-em1原配置文件为

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em1
UUID=71c71200-c178-48f3-b247-f6133a859de8
DEVICE=em1
ONBOOT=yes
IPADDR=103.85.84.108
PREFIX=24
GATEWAY=103.85.84.1
DNS1=114.114.114.114
IPV6_PRIVACY=no

修改为以下,模式为空,NM_CONTROLLED=no,意思为此网络不受NetworkManager控制,网桥名为br0:

BOOTPROTO=none
NAME=em1
DEVICE=em1
ONBOOT=yes
NM_CONTRLLED=no
BRIDGE=br0

2.2、新增宿主机,网桥设备br0

vi ifcfg-br0 #模式为静态,类型是网桥,不受NM控制,定义IP等

# vi ifcfg-br0 
[root@vm1 ~]# cd /etc/sysconfig/network-scripts
[root@vm1 ~]# vi ifcfg-br0 
BOOTPROTO=static
TYPE=Bridge
NAME=br0
DEVICE=br0
ONBOOT=yes
NM_CONTRLLED=no

IPADDR=10.11.10.171
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=10.11.10.1
DNS=114.114.114.114
DNS1=114.114.114.114

:wq保存

关闭 NetworkManager(可选)

systemctl stop NetworkManager
systemctl disable NetworkManager

重启网络生效,期间会断开网络连接

service network restart

2.3、brctl show 查看虚拟设备详情

[root@vm1 ~]# brctl show
> bridge name        bridge id            STP enabled         interfaces
> br0                8000.0cc47a706a45    no                    em1
> virbr0            8000.525400e21798    yes                    virbr0-nic

由上可见,br0设备,绑定了em1网卡成功。如果stp enabled为no,可以执行brctl stp br0 on 打开。

到这里,网桥设备已经建立成功。

2.4、另外可以使用 route -n 查看路由情况

[root@vm1 ~]# route -n
> Destination  Gateway     Genmask    Flags     Metric     Ref   Use    Iface
> 0.0.0.0     103.85.84.1   0.0.0.0    UG        0          0      0     br0

上面可以看到,所有地址,网关为103.85.84.1,通过br0,进行通信。

三:配置虚拟机桥接网络 

3.1 修改/etc/qemu-kvm/bridge.conf

不增加会导致虚拟机启动执行无权限链接br0网卡 

allow virbr0
#增加以下一行
allow br0
~

3.1 关闭正在运行的虚拟机

## 1.查看虚拟机是否在运行
virsh list --all

## 2.如果运行则执行下面的命令关闭虚拟机
virsh shutdown 虚拟机名称

3.2 配置虚拟机网卡信息 

修改虚拟机网卡配置信息

virsh edit 虚拟机名称

查看配置文件直到 interface配置位置,修改前显示type类型是network: 

修改后类型为bridge: 

注意:如果用上面 virsh edit 命令编辑后提示下面的信息,可以用另一种方式编辑。 

执行下面的命令和上面命令效果是一样的都是修改同一个文件。

## 1.进入下面的目录
cd /etc/libvirt/qemu

## 2.修改虚拟机的配置文件
vim 虚拟机名称.xml

## 3.修改内容和上面一样
    <interface type='bridge'>
      <mac address='52:54:00:84:1d:dc'/>
      <source network='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

3.3 启动虚拟机

virsh start 虚拟机名称

3.4 VNC连接虚拟机配置网卡信息

3.4.1 网络改为桥接网卡

3.4.2 编辑虚拟机网络配置文件

## 1.进入网卡配置路径
cd /etc/sysconfig/network-scripts/
## 2.修改网卡信息
只需要添加下面有注释的几行即可
vim  ifcfg-eth0
## 3.修改如下信息
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # static是静态IP
IPADDR=110.16.88.111  # 同宿主机在一个网段的IP地址即可
NETMASK=255.255.255.0  # 同宿主机网段
GATEWAY=110.16.88.1  # 同宿主机网关相同
DNS1=110.16.8.200  # 同宿主机DNS相同
DNS2=110.16.8.300
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=bc392963-1308-4e4a-8da8-34805d8f1af5
DEVICE=eth0
ONBOOT=yes

3.4.3  关闭虚拟机网络管理服务

#查看网络管理服务是否启动
systemctl status NetworkManager
显示active (running)就是启动状态
NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since \u4e8c 2020-09-29 10:41:17 CST; 6min ago
     Docs: man:NetworkManager(8)
 Main PID: 553 (NetworkManager)
   CGroup: /system.slice/NetworkManager.service
           \u2514\u2500553 /usr/sbin/NetworkManager --no-daemon

# 关闭网络管理服务
systemctl stop NetworkManager

3.4.4 重启虚拟机网卡

 systemctl restart network

# 查看IP地址是否生效

ifconfig

3.4.5 验证宿主机与虚拟机是否可连接

# 在宿主机上ping 虚拟机的地址
ping 110.16.88.111

#结果显示宿主机与虚拟机连通
PING 110.16.88.111 (110.16.88.111) 56(84) bytes of data.
64 bytes from 110.16.88.111: icmp_seq=1 ttl=64 time=0.406 ms
64 bytes from 110.16.88.111: icmp_seq=2 ttl=64 time=0.292 ms

3.4.6 验证虚拟机是否可以连外网

# 在宿主机上ping baidu网址
[root@agent network-scripts]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=47 time=10.7 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=47 time=9.28 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=47 time=8.21 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=4 ttl=47 time=9.50 ms

3.4.7 在宿主机上直接通过xhell 访问虚拟机

# 在本地主机上用xhell工具连接虚拟机成功
Connecting to 110.16.88.111:22...
Connection established.
Escape character is '^@]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Tue Sep 29 10:41:28 2020
[root@agent ~]# 

3.3 如果虚拟机系统没安装,采用指定网桥的形式,如下,主要是--bridge参数。

[yanfeng@localhost bin]$ virt-install \
--name=centos7 \
--memory=512,maxmemory=1980  \
--vcpus=2,maxvcpus=2 \
--os-type=linux \
--os-variant=rhel7 \
--location=/tmp/CentOS-7-x86_64-Minimal-2009.iso \
--disk path=/home/kvm/centos7.qcow2,size=10 \
--bridge=br0 \
--graphics=none \
--console=pty,target_type=serial \
--extra-args="console=tty0 console=ttyS0"

四:创建虚拟机(配置网络)  

4.1 选择刚刚在物理机上创建的桥接网卡。

例如:

在这里插入图片描述

4.2 创建好虚拟机,进入虚拟机

ip查看虚拟机的网卡,然后进行编辑到桥接网段即可
如图,网卡名是eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=126c96e4-6c7f-4619-a314-e437c0a9ec8f
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.254

重启网卡即可

systemctl restart network

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值