网络虚拟化技术怎么配置
在公司新上线的项目里,开发团队需要快速搭建多个隔离的测试环境。传统做法是买服务器、接网线、配IP,费时又费钱。后来我们改用网络虚拟化技术,几分钟就能拉起一套完整网络环境,效率提升明显。
网络虚拟化的核心是把物理网络资源抽象成可灵活分配的虚拟网络。常见的实现方式有VLAN、VXLAN、Open vSwitch和Linux Bridge等。下面以Linux服务器上使用Bridge为例,讲讲具体怎么配。
基础环境准备
假设你有一台运行Ubuntu 20.04的服务器,已经装好net-tools和bridge-utils工具包。先查看当前网卡:
ip addr show通常会看到一个eth0或者ens33这样的物理接口。接下来要创建一个虚拟网桥br0,并把物理网卡挂上去。
创建虚拟网桥
编辑网络配置文件(路径可能因系统而异):
nano /etc/netplan/01-netcfg.yaml写入以下内容:
network:
version: 2
renderer: networkd
bridges:
br0:
interfaces:
- eth0
dhcp4: yes
parameters:
stp: false
forward-delay: 0保存后应用配置:
sudo netplan apply执行完这一步,br0就起来了,所有流量都会通过它转发。
配合KVM使用虚拟机
如果你用KVM跑虚拟机,可以用virsh命令指定虚拟机连接到br0:
<interface type='bridge'>
<source bridge='br0'/>
<model type='virtio'/>
</interface>这样虚拟机就能直接获取局域网IP,和其他设备互通,就像一台真实主机一样。
实际运维中,我们还遇到过虚拟机无法上网的问题。排查发现是宿主机没开IP转发。解决方法是在/etc/sysctl.conf里启用:
net.ipv4.ip_forward=1然后执行sysctl -p生效。
进阶:用VXLAN跨主机通信
当虚拟机分布在不同物理机上时,可以用VXLAN打通二层网络。比如在主机A上创建VXLAN接口:
ip link add vxlan0 type vxlan id 42 dstport 4789 remote 192.168.1.100 dev eth0
ip link set vxlan0 master br0
ip link set vxlan0 up这条命令的意思是:创建一个ID为42的VXLAN隧道,目标地址是另一台主机的IP,数据走eth0发出。两边都配好后,虚拟机即使在不同机器上也能像在同一局域网里通信。
这些操作看起来复杂,其实只要把步骤写成脚本,一键就能部署。我们在数码工坊内部就维护了一套自动化配置模板,新人入职三天就能上手操作。