KVM实现三层网络
作者:快盘下载 人气:一、背景
二、环境准备
准备1台4vCPU+8G内存虚拟机,用于部署虚拟化,模拟所有的网络环境。
配置
备注
CPU
4核
内存
4GB
磁盘
20GB
网络
4个网口
虚拟机名称
操作系统
网口名称
IP地址
桥接网络
node1
Centos7
ens3
192.168.1.101
br1
ens4
192.168.2.101
br2
node2
Centos7
ens3
192.168.0.102
br0
node3
Centos7
ens3
192.168.3.103
br3
switch1
Centos7
ens3
192.168.0.254
br0
ens4
192.168.1.254
br1
switch2
Centos7
ens3
192.168.2.254
br2
ens4
192.168.3.254
br3
三、环境架构
注意:网卡配置文件的其它内容可保留,但至少需要保证以上内容与本文保持一致,IP地址和子网掩码除外。按照同样方法配置其它网络桥接。
[root@cloud network-scripts]# cat ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=none
NAME=ens35
DEVICE=ens35
ONBOOT=yes
BRIDGE=br1
[root@cloud network-scripts]# cat ifcfg-br1
DEVICE=br1
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
[root@cloud network-scripts]# cat ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
BRIDGE=br2
[root@cloud network-scripts]# cat ifcfg-br2
DEVICE=br2
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.2.100
PREFIX=24
[root@cloud network-scripts]# cat ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=none
NAME=ens37
DEVICE=ens37
ONBOOT=yes
BRIDGE=br3
[root@cloud network-scripts]# cat ifcfg-br3
DEVICE=br3
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.3.100
PREFIX=24
systemctl restart network
[root@cloud ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c2994f44e no ens34
br1 8000.000c2994f458 no ens35
br2 8000.000c2994f462 no ens36
br3 8000.000c2994f46c no ens37
virbr0 8000.525400c682df yes virbr0-nic
资料获取方法:关注微信公众号“云实战”,回复“VNC”可获取下载链接。
五、创建虚拟机
1.创建虚拟机node1
创建虚拟机node1磁盘镜像
qemu-img create -f qcow2 /data/node1.qcow2 10G
创建虚拟机node1
virt-install --name node1 --vcpus 1 --memory 1024 --disk /data/node1.qcow2
--network bridge=br1 --network bridge=br2 --graphics vnc,listen=0.0.0.0 --boot hd
--cdrom /media/CentOS-7-x86_64-DVD-1708.iso
注:具体参数解析可通过virt-install --help查看,不再赘述。每次创建不同的虚拟机,需注意更改--name,--disk,--network相关参数。按照架构图或规划表进行配置。
访问虚拟机
注:可将任意1个网口添加网关,但不可同时写2个网关,否则默认路由冲突。
[root@node2 ~]# cat
/etc/sysconfig/network-scripts/ifcfg-ens3
......
DEVICE=ens3
ONBOOT=yes
IPADDR=192.168.0.102
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
注:网关必须指向switch1节点同网段的ip地址192.168.0.254
[root@node3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens3
......
DEVICE=ens3
ONBOOT=yes
IPADDR=192.168.3.103
NETMASK=255.255.255.0
GATEWAY=192.168.3.254
注:网关必须指向switch2节点同网段的ip地址192.168.3.254
[root@switch1 ~]# cat
/etc/sysconfig/network-scripts/ifcfg-ens3
......
DEVICE=ens3
ONBOOT=yes
IPADDR=192.168.0.254
NETMASK=255.255.255.0
[root@switch1 ~]# cat
/etc/sysconfig/network-scripts/ifcfg-ens4
......
DEVICE=ens4
ONBOOT=yes
IPADDR=192.168.1.254
NETMASK=255.255.255.0
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
sysctl -p
注:必须开启网络流量转发功能,否则虚拟机switch1无法模拟交换机实现三层网络交换功能。
[root@switch2 ~]# cat
/etc/sysconfig/network-scripts/ifcfg-ens3
......
DEVICE=ens3
ONBOOT=yes
IPADDR=192.168.2.254
NETMASK=255.255.255.0
[root@switch2 ~]# cat
/etc/sysconfig/network-scripts/ifcfg-ens4
......
DEVICE=ens4
ONBOOT=yes
IPADDR=192.168.3.254
NETMASK=255.255.255.0
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
sysctl -p
注:必须开启网络流量转发功能,否则虚拟机switch2无法模拟交换机实现三层网络交换功能。
ping 192.168.1.254
ping 192.168.2.254
注:node1未配置网关,所以无法ping通192.168.0.254和192.168.3.254
ping 192.168.0.254
ping 192.168.1.254
ping 192.168.2.254
ping 192.168.3.254
七、配置路由表
若实现node1与node2、node3的互相通信,需将node1配置路由表,实现流量转发功能。
注:所有操作在node1进行
编辑/etc/iproute2/rt_tables文件,创建路由表net1和net2,增加内容
252 net2
251 net1
增加路由规则
ip route add default via 192.168.1.254 table net1
ip rule add from 192.168.1.101 table net1
ip route add default via 192.168.2.254 table net2
ip rule add from 192.168.2.101 table net2
所有指向192.168.1.101的流量都遵循路由表net1的路由规则,所有指向192.168.2.101的流量都遵循路由表net2的路由规则。
注:以上路由表创建完成后,只是临时生效,网络或系统重启会导致配置失效。
添加完毕后,即实现双网卡双网关网络配置。
3.检查确认
查看路由规则
ip route
ip rule list
ip route list table net1
ip route list table net2
更多问题欢迎扫码咨询
加载全部内容