云计算:Linux 部署 OVS 集群(服务端)实现VXLAN

目录

一、实验

1.环境

[2.Linux 部署 OVS 集群(服务端)](#2.Linux 部署 OVS 集群(服务端))

[3.Linux 部署VXLAN](#3.Linux 部署VXLAN)


一、实验

1.环境

(1) 主机

表1 宿主机

|----------------|-----|--------------------|----------------|---------------------------------|
| 主机 | 架构 | 软件 | IP | 备注 |
| ovs_controller | 控制端 | | 192.168.204.63 | 1个NAT网卡 (204网段) |
| ovs_server01 | 服务端 | OpenvSwitch v2.5.1 | 192.168.204.61 | 1个NAT网卡 (204网段), 1个仅主机网卡 (88网段) |
| ovs_server02 | 服务端 | OpenvSwitch v2.5.1 | 192.168.204.62 | 1个NAT网卡 (204网段), 1个仅主机网卡 (88网段) |

表2 目标云主机

|---------------|------------|-----------------|
| 云主机 | IP | 备注 |
| cloudserver01 | 172.16.1.1 | 宿主机ovs_server01 |
| cloudserver02 | 172.16.1.2 | 宿主机ovs_server02 |

(2) 查看IP

ovs_controller

ovs_server01

ovs_server02

(3)修改hostname

bash 复制代码
[root@localhost ~]# vim /etc/hostname

ovs_controller

ovs_server01

ovs_server02

(4) 修改hosts

bash 复制代码
[root@localhost ~]# vim /etc/hosts

修改前:

修改后:

ovs_controller

ovs_server01ovs_server02

2.Linux 部署 OVS 集群(服务端)

(1)查阅

bash 复制代码
1)官网
https://www.openvswitch.org/download/

2)GitHub
https://github.com/openvswitch/ovs

(2) 安装OVS依赖软件

bash 复制代码
yum  install -y openssl-devel kernel-devel
yum  groupinstall -y "Development Tools"

ovs_server01

ovs_server02

(2)添加用户

bash 复制代码
adduser ovswitch
su - ovswitch

ovs_server01

ovs_server02

(3)下载并解压

选择一个稳定版

bash 复制代码
wget https://www.openvswitch.org/releases/openvswitch-2.5.1.tar.gz
tar xfz openvswitch-2.5.1.tar.gz

ovs_server01

ovs_server02

(4) 源码包⽅式⽣成RPM包

bash 复制代码
mkdir -p ~/rpmbuild/SOURCES

sed 's/openvswitch-kmod, //g' openvswitch-2.5.1/rhel/openvswitch.spec > openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec

cp openvswitch-2.5.1.tar.gz rpmbuild/SOURCES

rpmbuild -bb --without=check ~/openvswitch-2.5.1/rhel/openvswitch_no_kmod.spec

ovs_server01

ovs_server0​​​​2

(5)查看并退出用户

bash 复制代码
ls /home/ovswitch/rpmbuild/RPMS/x86_64/

exit

ovs_server01

ovs_server0​​​​2

(6)RPM包安装

bash 复制代码
yum localinstall -y /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm

ovs_server01

ovs_server02

(7)设置开机自启

bash 复制代码
1)查看
systemctl status openvswitch.service

2)启动
systemctl start  openvswitch.service
 
3)开机自启
systemctl enable openvswitch.service
 
4)再次查看
systemctl status openvswitch.service

ovs_server01

ovs_server02

(7)安装virt-manager与virsh(libvrit-client)

bash 复制代码
yum install  -y  virt-manager  libvirt-client

ovs_server01

ovs_server02

(8)关闭防⽕墙

bash 复制代码
systemctl  stop firewalld.service
systemctl  disable  firewalld.service 

ovs_server01

ovs_server02

(9)查看

bash 复制代码
ovs-vsctl show

ovs_server01

ovs_server02

3.Linux 部署VXLAN

(1)添加OVS

ovs_server01

bash 复制代码
ovs-vsctl  add-br ovs01

ovs_server02

bash 复制代码
ovs-vsctl  add-br ovs02

(2)添加OVS internal

ovs_server01

bash 复制代码
ovs-vsctl  add-port ovs01  if01 -- set interface if01 type=internal

ovs_server02

bash 复制代码
ovs-vsctl  add-port ovs02  if02 -- set interface if02 type=internal

(3)查看

bash 复制代码
ovs-vsctl show

ovs_server01

ovs_server02

(4)ovs_server01创建云主机

bash 复制代码
virt-manager

新建虚拟机

前进

使用镜像

修改内存

选择网络if01

强制关机

挂载镜像

修改启动项为光驱

开机选择第3个命令行

(5)ovs_server02创建云主机

bash 复制代码
virt-manager

新建虚拟机

前进

使用镜像

修改内存

选择网络if01

强制关机

挂载镜像

修改启动项为光驱

开机选择第3个命令行

(7)查看云主机网卡并修改

cloudserver01

bash 复制代码
sudo ifconfig

sudo ifconfig eth0 172.16.1.1 netmask 255.255.255.0

cloudserver02

bash 复制代码
sudo ifconfig

sudo ifconfig eth0 172.16.1.2 netmask 255.255.255.0

(8) 测试网络

云主机1 ping 云主机2 ,目前不通

(9)部署VXLAN端⼝

ovs_server01

bash 复制代码
ovs-vsctl add-port  ovs01 vxlan0 -- set interface vxlan0  type=vxlan options:remote_ip=192.168.204.62 options:key=10001

ovs_server02

bash 复制代码
ovs-vsctl add-port  ovs02 vxlan0 -- set interface vxlan0  type=vxlan options:remote_ip=192.168.204.61 options:key=10001

(10)查看

bash 复制代码
ovs-vsctl show

ovs_server01

ovs_server02

(11) 测试网络

云主机1 ping 云主机2 ,目前已通

(12)流量抓包(tcpdump)

ovs_server01

云主机1 ping 云主机2

观察抓取的流量(源端口一直在变化,目的端口都为4789)

(13) 流量抓包(Wireshark)

云主机1 ping 云主机2

观察抓取的流量

(14)流量分析(Wireshark)

原始数据:

VXLAN隧道封装了VNI (实现多租户隔离)

原始数据(二层包)封装在UDP,原端口随机,目的端口为4789

新IP头:

相关推荐
REST_302714 小时前
告别Excel孤岛:一款任务链路可视化工具带来的真实改变
大数据·微服务·云计算·编辑器·excel·动态规划
在水一缸16 小时前
苹果AI国行版过审背后的技术架构深度解析:端侧模型与私有云计算的融合实践
人工智能·架构·云计算·技术架构·苹果ai·端侧模型·私有云计算
spider_xcxc18 小时前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
hz5678919 小时前
音视频技术SDK选型指南:企业实时互动场景的关键能力解析
网络·云计算·音视频·实时音视频·信息与通信
A-刘晨阳21 小时前
低配N1也能搭家庭录像中心:Go2RTC与EasyNVR双容器实战
运维·云计算·cpolar
2601_955759722 天前
AWS 账号能转成企业账号吗?NiceCloud 把变更要点说清楚
云计算·aws
2601_955759882 天前
AWS 一个邮箱能注册几个账号?NiceCloud 说明管理规则
云计算·aws
陈天伟教授2 天前
华为云 阿里云 腾讯 WorkBuddy的工具对比
阿里云·华为云·云计算
北极糊的狐2 天前
18使用腾讯云「云存储 + 静态网站托管」旧模式搭建复盘
云计算·腾讯云
Dawn-bit2 天前
Linux救援模式和系统恢复
linux·运维·服务器·云计算·运维开发