使用Linux Bridge 搭建vxlan 实现 虚拟机跨物理机通信

简介:

#实验环境:

wKioL1joosaxkjCVAAA4CBuVqYg103.png


#本次实验要让192.168.1.3 跨物理节点 ping 通 192.168.1.2 

#两台物理机:

KVM_1 192.168.174.134
KVM_2 192.168.174.135


#在KVM_1主机上操作

#安装KVM相关软件

1
2
3
4
5
6
7
8
[root@KVM_1 ~] #  yum -y install qemu-kvm libvirt virt-install bridge-utils
[root@KVM_1 ~] # systemctl start libvirtd.service 
[root@KVM_1 ~] # brctl addbr br-vx     #创建网桥
[root@KVM_1 ~] # ip link set br-vx up  #启动网桥
[root@KVM_1 ~] # ip link add vxlan10 type vxlan id 100 remote 192.168.174.135 dstport 4789 dev eno33554960
#创建vxlan隧道  remote 为远程地址 dstport 为远程端口 dev 为本地物理出口
[root@KVM_1 ~] # ip link set vxlan10 up  #开启隧道
[root@KVM_1 ~] # brctl addif br-vx vxlan10  #将隧道加入网桥


#在KVM_2主机上操作

#安装KVM相关软件

1
2
3
4
5
6
7
8
[root@KVM_2 ~] #  yum -y install qemu-kvm libvirt virt-install bridge-utils
[root@KVM_2 ~] # systemctl start libvirtd.service 
[root@KVM_2 ~] # brctl addbr br-vx     #创建网桥
[root@KVM_2 ~] # ip link set br-vx up  #启动网桥
[root@KVM_2 ~] # ip link add vxlan10 type vxlan id 100 remote 192.168.174.134 dstport 4789 dev eno16777736
#创建vxlan隧道  remote 为远程地址 dstport 为远程端口 dev 为本地物理出口
[root@KVM_2 ~] # ip link set vxlan10 up  #开启隧道
[root@KVM_2 ~] # brctl addif br-vx vxlan10  #将隧道加入网桥



#创建虚拟机 此处用的是 cirros镜像 下载地址

1
2
3
4
5
6
[root@KVM_1 ~] #  virt-install --name=vm4  --network bridge=br-vx --graphics vnc,listen=0.0.0.0 --noautoconsole --ram=512 --vcpus=1 --boot hd --disk  path=/opt/cirros-0.3.4-x86_64-disk.img
[root@KVM_1 ~] # brctl show
bridge namebridge idSTP enabledinterfaces
br-vx8000.265a5b09d49enovnet0
vxlan10
virbr08000.52540057b868yesvirbr0-nic


1
2
3
4
5
6
[root@KVM_2 ~] #  virt-install  --name=vm4   --network bridge=br-vx  --graphics vnc,listen=0.0.0.0  --noautoconsole  --ram=512  --vcpus=1  --boot hd   --disk path=/opt/cirros-0.3.4-x86_64-disk.img
[root@KVM_2 ~] # brctl show
bridge name bridge  id  STP enabled interfaces
br-vx 8000.e6d9912583a0 no vnet0
vxlan10 
virbr0 8000.5254006a8c44  yes  virbr0-nic



#创建虚拟机时 网络选择的是连接 到 br-vx 而不是default网络(virbr0) 




#用VNC连接到虚拟机

wKiom1joqPjhUWTEAADyv8Vkq4A142.png


wKiom1joqTeQFh2JAABNSFJnE94268.png


#由于我们没有搭建DHCP 所以需要手动设置IP地址

wKiom1joqiHz64vyAAAQ5_vaTk4230.png


wKiom1joqmCgqaXnAAASIlEiv1Q139.png

#重启


#KVM_2上的虚拟机进行相同的操作



#测试 192.168.1.3 ping 另一台物理机上的 虚拟机 192.168.1.2

wKioL1jorELjHtK6AABn9mf2-mY037.png






#注意:由于我们用的都是命令进行配置的所以物理机重启后就会没有了

#          所以这里给出 br-vx的配置文件


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@KVM_2 ~] # cat /etc/sysconfig/network-scripts/ifcfg-br-vx 
DEVICE=br-vx
STP=no
TYPE=Bridge
BOOTPROTO=none
DEFROUTE= yes
IPV4_FAILURE_FATAL=no
IPV6INIT= yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE= yes
IPV6_FAILURE_FATAL=no
NAME=br-vx
UUID=8fc90c0c-81b9-496c-b25f-de6e8a206bf9
ONBOOT= yes
IPADDR=192.168.1.1                #这里的IP地址是网桥的IP地址,方便做DHCP
PREFIX=24









本文转自 chaunceyjiang  51CTO博客,原文链接:http://blog.51cto.com/cqwujiang/1914123,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
27 2
|
1月前
|
网络协议 Linux 网络性能优化
Linux C/C++之TCP / UDP通信
这篇文章详细介绍了Linux下C/C++语言实现TCP和UDP通信的方法,包括网络基础、通信模型、编程示例以及TCP和UDP的优缺点比较。
36 0
Linux C/C++之TCP / UDP通信
|
1月前
|
网络协议 Linux
linux学习之套接字通信
Linux中的套接字通信是网络编程的核心,允许多个进程通过网络交换数据。套接字提供跨网络通信能力,涵盖本地进程间通信及远程通信。主要基于TCP和UDP两种模型:TCP面向连接且可靠,适用于文件传输等高可靠性需求;UDP无连接且速度快,适合实时音视频通信等低延迟场景。通过创建、绑定、监听及读写操作,可以在Linux环境下轻松实现这两种通信模型。
35 1
|
2月前
|
存储 虚拟化
使用DiskGenius工具来实现物理机迁移虚拟机,实现虚拟化
【9月更文挑战第1天】使用 DiskGenius 工具可将物理机迁移到虚拟机,实现系统与数据的虚拟化。此过程包括:安装 DiskGenius 和准备虚拟化平台;备份物理机数据;使用 DiskGenius 备份磁盘;在虚拟化软件中创建新虚拟机并导入磁盘备份;配置及调整虚拟机设置;测试性能并优化资源分配。这有助于测试、开发及系统管理。
307 5
|
3月前
|
Linux KVM 数据库
虚拟机数据恢复—Linux系统下误删除KVM虚拟机的数据恢复案例
虚拟机数据恢复环境: Linux操作系统服务器,EXT4文件系统。服务器中有数台KVM虚拟机。 虚拟机故障: KVM虚拟机被删除,需要恢复raw格式的磁盘文件。
虚拟机数据恢复—Linux系统下误删除KVM虚拟机的数据恢复案例
|
3月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
3月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
3月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
3月前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
3月前
|
NoSQL Java Linux
springboot+redis+虚拟机 springboot连接linux虚拟机中的redis服务
该博客文章介绍了如何在Spring Boot项目中通过配置和代码实现连接运行在Linux虚拟机上的Redis服务,并提供了详细的步骤和测试结果截图。
springboot+redis+虚拟机 springboot连接linux虚拟机中的redis服务

热门文章

最新文章