ENV:
[root@Fedora ~]# uname -r
5.2.9-200.fc30.x86_64
[root@Fedora ~]# cat /etc/redhat-release
Fedora release 30 (Thirty)
之前的文章写了安装KVM,但是对于网络的设置没有写,这里单独写下kvm的网络设置
源文章地址:How to Create and Configure Bridge Networking For KVM in Linux
这里也是翻译过程。
Method 1:用界面管理工具创建网络
位置:Edit > Connection Details > Virtual Networks
在左下方点击+加号添加网络 设置网络名称:
点击forward下一步,设置虚拟ip信息
forward下一步,是否使用ipv6,我选择不使用ipv6,如要使用ipv6,可以按要求输入ipv6的ip地址
forward下一步,选择网络模式, 这里选NAT,要问网络模式,请自行 百度|google
完成设置并保存,在左边可以看到新添加的网络。
用命令查看
[root@Fedora ~]# brctl show virbr1
bridge name bridge id STP enabled interfaces
virbr1 8000.525400c35fc9 yes virbr1-nic
要问为什么是virbr1,请看上面最后一个图中Device后内容。
Method 2 使用virsh命令创建网络
创建xml文件,为了区分名称,写成 br20(可自行修改)
[root@Fedora ~]# vim br20.xml
将信息写入文件
<network>
<name>br20</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='br20' stp='on' delay='0'/>
<ip address='192.168.30.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.30.50' end='192.168.30.200'/>
</dhcp>
</ip>
</network>
将xml文件写入kvm网络中(这里的网络是关闭的,源文中是br10,可能需要关闭)
[root@Fedora ~]# virsh net-define br20.xml
Network br20 defined from br20.xml
启用br20网络
[root@Fedora ~]# virsh net-start br20
Network br20 started
设置成默认 网络
[root@Fedora ~]# virsh net-autostart br20
Network br20 marked as autostarted
查看网络是否启动
[root@Fedora ~]# virsh net-list --all
Name State Autostart Persistent
--------------------------------------------
br10 active yes yes
br20 active yes yes
default active yes yes
查看创建的网络信息
[root@Fedora ~]# ip addr show dev br20
9: br20: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:30:22:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.30.1/24 brd 192.168.30.255 scope global br20
valid_lft forever preferred_lft forever
Method 3 通过network scripts创建(CentOS / RHEL / Fedora)
[root@Fedora ~]# cat /etc/sysconfig/network-scripts/ifcfg-br30
DEVICE=br30
STP=no
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
NAME=br30
ONBOOT=yes
DNS1=8.8.8.8
DNS2=192.168.40.1
IPADDR=192.168.40.3
PREFIX=24
GATEWAY=192.168.40.1
将桥接信息加入系统网卡配置文件中,我的是ifcfg_enp4s0f2,每个系统的不同,按自己系统名称调整
[root@Fedora ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp4s0f2
主要信息有:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br30
重启网络
[root@Fedora ~]# systemctl disable NetworkManager && systemctl stop NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
启动网络:
[root@Fedora ~]# systemctl restart network
Failed to restart network.service: Unit network.service not found.
在这里启动错误,最后没办法,直接启动
[root@Fedora ~]# systemctl restart NetworkManager
这下成功了
查看下虚拟网络是否添加成功
[root@Fedora ~]# ip addr show dev br30
11: br30: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 36:45:ad:1e:c8:7a brd ff:ff:ff:ff:ff:ff
inet 192.168.40.3/24 brd 192.168.40.255 scope global noprefixroute br30
valid_lft forever preferred_lft forever
Method 4 编辑network scripts文件(Debian / Ubuntu)
这个方法没有测试。直接翻译:
cat >> /etc/network/interfaces<< EOF
auto br10
iface br10 inet static
address 192.168.1.10
network 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports eth0
bridge_stp off
EOF
在eth0中添加信息
auto eth0
iface eth0 inet manual
重启网络
sudo systemctl restart networking.service
Method 5 使用Nmcli tool
因有敏感信息,这里不发测试内容,直接翻译源文
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0
Wired connection 1 0977f29f-fa2e-3d7f-831c-6f41f8782be3 ethernet enp7s0
删除不用网卡信息,
$ sudo nmcli connection delete 0977f29f-fa2e-3d7f-831c-6f41f8782be3
Connection 'Wired connection 1' (0977f29f-fa2e-3d7f-831c-6f41f8782be3) successfully deleted.
1.主要信息的设置
BR_NAME="br10"
BR_INT="enp7s0"
SUBNET_IP="192.168.30.10/24"
GW="192.168.30.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
设置内容这里不说明,想了解的看源文章
BR_NAME: The name of the bridge to be created.
BR_INT: the physical network device to be used as bridge slave.
SUBNET_IP: IP address and subnet assigned to the bridge created.
GW: The IP address of the default gateway
DNS1 and DNS2: IP addresses of DNS servers to be used.
2.设置新的信息
sudo nmcli connection add type bridge autoconnect yes con-name ${BR_NAME} ifname ${BR_NAME}
输出如下:
Connection 'br0' (be6d4520-0257-49c6-97c2-f515d6554980) successfully added.
设置ip信息
sudo nmcli connection modify ${BR_NAME} ipv4.addresses ${SUBNET_IP} ipv4.method manual
sudo nmcli connection modify ${BR_NAME} ipv4.gateway ${GW}
sudo nmcli connection modify ${BR_NAME} ipv4.dns ${DNS1} +ipv4.dns ${DNS2}
添加网络连接
sudo nmcli connection delete ${BR_INT}
sudo nmcli connection add type bridge-slave autoconnect yes con-name ${BR_INT} ifname ${BR_INT} master ${BR_NAME}
输出信息:
Connection 'enp7s0' (f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1) successfully added.
查看连接
$ sudo nmcli connection show
NAME UUID TYPE DEVICE
br0 be6d4520-0257-49c6-97c2-f515d6554980 bridge br0
enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0
enp7s0 f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1 ethernet enp7s0
启动网络
$ sudo nmcli connection up br10
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
查看运行状态
sudo nmcli connection show br10
查看ip信息
$ ip ad
3: enp7s0: mtu 1500 qdisc fq_codel master br10 state UP group default qlen 1000
link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff
4: br10: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.10/24 brd 192.168.122.255 scope global noprefixroute br10
valid_lft forever preferred_lft forever
inet6 fe80::4f2f:ce6d:dc6b:2101/64 scope link noprefixroute
valid_lft forever preferred_lft forever