千恋*万花

  • 首页
  • 个人简历
  • 文章分类
    • 后端开发
    • 运维
    • 基础知识
    • 笔记
    • 工作运维记录
    • 随笔
    • 未分类文章
  • 管理
    • 后台管理
    • 登出
萌奈の笔记簿
分享我的努力,希望为你助力
  1. 首页
  2. 运维
  3. Linux
  4. 正文

Linux 配置 KVM 及网桥

2022-02-03 2009点热度 14人点赞 0条评论

本文章涉及以下内容

  1. 让QEMU/KVM虚拟机可以获取到路由器上DHCP分发的IP
  2. 让其他主机共享Linux的网络,但使用路由器的DHCP服务(把Linux服务器当做交换机)
  3. 修复同一网桥下的其他主机,无法连接被当做交换机的Linux
  4. netplan配置网桥bridge

前情概要

是的,我的需求每次都是辣么辣么的奇怪,今天折腾的目标有以下几点:
* 让QEMU/KVM虚拟机可以获取到路由器上DHCP分发的IP,并可以访问到路由器上的UPnP服务
* 通过物理网卡连接到NAS上的主机,可以通过路由器的DHCP得到IP

之前,我用的是 brctl 这个工具配置的网桥,给虚拟机用,NAS到电脑主机的连接走的是KDE默认的NAT网络共享。配好后,没到72小时,虚拟机就没办法访问了,经查,整个NAS的网络都崩掉了。
重启了NAS后,brctl配置的内容全部恢复了,还得重新配置,这我就有点难受了,于是我便准备将网桥配置进系统,同时解决NAS到电脑主机的IP问题。

软硬件环境介绍

我目前使用的NAS系统、网卡硬件如下:

            .-/+oossssoo+/-.               admin@NEKO-NAS
        `:+ssssssssssssssssss+:`           -----------------
      -+ssssssssssssssssssyyssss+-         OS: Ubuntu 21.04 x86_64
    .ossssssssssssssssssdMMMNysssso.       Host: SY-H110Z FS V3.0
   /ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.11.0-49-generic
  +ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 7 hours, 57 mins
 /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 2611 (dpkg), 11 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.1.4
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Resolution: 2560x1440
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Terminal: /dev/pts/2
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: Intel i3-8100 (4) @ 3.600GHz
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   GPU: Intel CoffeeLake-S GT2 [UHD Graphics 630]
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Memory: 4973MiB / 14946MiB
 /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
  +sssssssssdmydMMMMMMMMddddyssssssss+
   /ssssssssssshdmNNNNmyNMMMMhssssss/
    .ossssssssssssssssssdMMMNysssso.
      -+sssssssssssssssssyyyssss+-
        `:+ssssssssssssssssss+:`
            .-/+oossssoo+/-.

*-network:0
       description: Ethernet interface
       product: I350 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0
       logical name: enp1s0f0    # 还有enp1s0f1、enp1s0f2、enp1s0f3,共四个接口
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz

Ubuntu 21.04使用了netplan作为默认的网络管理工具,所以,我的网络配置文件应该在 /etc/netplan/ 目录下了。
同时,Ubuntu 使用 ufw 作为默认的网络防火墙,ufw的配置文件,那么一定是在 /etc/default/ufw 文件下了。


NAS服务器上的网络接口,如图所示,我打算用 enp1s0f0 连接外网(路由器);使用enp1s0f2、enp1s0f3连接我的台式机和其他设备;enp1s0f1接口保留(暂时想不到要干什么)

网桥配置

  1. 可以先使用 ip address 观察一下现在的网络情况,和后面做一个对照
  2. sudo vim /etc/netplan/br0.yaml 打开(新建)我们bridge的配置文件
  3. 配置 网桥(bridge)
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0f0:
      dhcp4: false
      dhcp6: false
    enp1s0f2:
      dhcp4: false
    enp1s0f3:
      dhcp4: false
  bridges:
    br0:
      macaddress: aa:bb:cc:11:22:33
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.188.161/24
        - 2408:1234:5678:9abc::de/128
      gateway4: 192.168.188.1
      nameservers:
        addresses:
          - 192.168.188.1
      interfaces:
        - enp1s0f0
        - enp1s0f2
        - enp1s0f3

注意,yaml配置文件有着严格的缩进检查,就像python一样。
* version和renderer标签,我不确定具体作用,就不展开讨论了。
* ethernets标签中,我重写了enp1s0f0、enp1s0f2、enp1s0f3三个网络接口的规则,关闭了三者的DHCP服务。
* bridges标签中,我定义了一个网桥,名为br0,它的MAC地址是aa:bb:cc:11:22:33,不使用dhcp服务获取IP,我指定了其IP地址(一个IPv4地址,一个IPv6地址),然后指定了网关,DNS服务器地址,并且指定了这个网桥包括enp1s0f0、enp1s0f2、enp1s0f3三个接口。
3. 修改后退出编辑器 使用命令sudo netplan apply 应用修改
4. 等10s左右,可以通过ip address观察网络是否应用成功,还可以使用命令 route 观察路由表的出口、接口情况,使用brctl show查看系统内网桥的情况
* 通过 ip address 观察到br0接口获得外网IP地址,原网络物理接口没有任何IP地址,即网桥搭建成功!

ufw防火墙配置

诶诶诶?!别着急,这时候你会发现你的虚拟机也好,主机也好,是无法获取到路由器DHCP下发的IP地址的!现在没办法上网!
嗯。一定是哪里出了问题!
这个问题我找了三天,然后在Ubuntu大佬群里,写了一篇小作文咨询在座的各位大佬们,唰的一下,很快啊,大佬一句话,命中关键:“看看防火墙?”。
1. sudo vim /etc/default/ufw 打开ufw防火墙的配置文件
2. 找到 DEFAULT_FORWARD_POLICY 、DEFAULT_INPUT_POLICY 两项,值改为ACCEPT
3. sudo ufw reload 重新载入防火墙

WARNING 这样改可能会有安全性问题,请勿在生产环境随意修改防火墙。
* DEFAULT_FORWARD_POLICY 可以使其他设备获取到路由器DHCP下发的IP地址
* DEFAULT_INPUT_POLICY 可以使其他设备,通过 被当做交换机的Linux的IP地址 连接到当前Linux系统

QEMU/KVM 虚拟机配置

这个简单
1. 打开(或新建)一个网络
2. 网络源选择“桥接设备”
3. 设备名称填写刚才创建的网桥名br0
4. 进入系统观察网络情况

萌奈的家庭网络拓扑图

花絮

好吧,我一开始本来想画个图,结果我不得不承认:我并不专业……

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: bridge DHCP KDE KVM linux NAS netplan network QEMU Ubuntu ufw 交换机 网桥 网络 虚拟机 运维日记 防火墙
最后更新:2022-10-11

初音萌奈

我是练习时长 一年半 的后端开发程序员 谢谢你参观我的博客! 本网站现已支持IPv6 ☞ 个人简历 ☜

点赞
< 上一篇
下一篇 >

文章评论

取消回复
文章目录
  • 本文章涉及以下内容
    • 前情概要
    • 软硬件环境介绍
      • 网桥配置
      • ufw防火墙配置
      • QEMU/KVM 虚拟机配置
  • 萌奈的家庭网络拓扑图
  • 花絮

COPYRIGHT © 2023 HatsuneMona ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

晋ICP备17007130号-4