【爬坑系列】之vxlan网络实现

linux 内核从3.7之后就内部集成了vxlan功能,所以可以使用linux内核提供的vxlan功能,经过配置创建vxlan网络。

而从Docker自Docker Engine 1.9之后,就自带overlay网络的驱动了,也才有了可以直接使用docker create network命令创建overlay类型的网络

在这里我们除了创建单纯的vxlan网络,我们可以手动模拟overlay驱动,利用namespace自己创建overlay网络,这里会遇到很多坑,但对于学习vxlan甚至是linux网络知识都很有帮助。

另外,受环境所限这里我只试验了点对点类型的vxlan网络,但对于理解vxlan往还是够用啦


大纲:

1,环境准备,
2,最基本的点对点vxlan网
3,多namespace下的点对点vxlan网
      3.1入坑
      3.2爬坑
      3.3结论

环境准备


 

0,在某两家云服务供应商上买了2台计算云,centos 7,这样的环境稍显复杂,因为计算云的机器都是绑定的VIP,其自身接口的ip都是小网ip,互相不认识的小网ip......

                    master节点                                                  minion节点
VIP:             188.x.x.113          ---中间网络------              106.y.y.3
IP(eth0):      172.21.0.3                                                   172.16.0.4
MAC(eth0):  52:54:00:6b:df:04                                        fa:16:3e:a8:1f:98

1,linux内核版本越高越好,如果不够,可以用如下命令进行升级

  rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

2,  安装必要的工具,比如

ln -s /var/run/docker/netns/ /var/run/netns

最基本的点对点vxlan网


所谓点对点网络,表示每个vtep只有一个伙伴,它只与这个伙伴建立一个隧道。

【实操】

master:

//创建一个vxlan类型的接口作为vtep,vxlan id即VNI为200,指定隧道的另一端ip为minion的VIP,建立隧道的物理接口为eth0
ip link add vxlan20 type vxlan id 200 dstport 4789 remote 106.y.y.3 dev eth0

ip addr add 10.20.1.2/24 dev vxlan20
ip link set vxlan20 up

minion:

ip link add vxlan20 type vxlan id 200  remote 188.x.x.113 dstport 4789 dev eth0

ip addr add 10.20.1.3/24 dev vxlan20
ip link set vxlan20 up

【验证】#ping  10.20.1.3 OK的,抓包也可以看到经过vxlan封装的报文

【解析】

此种情况属于vtep之间的直接通信,arp包和icmp包都被vtep即vxlan20进行了vxlan封装。

这部分的实验是很有必要的,因为可以说明我的linux内核是支持vxlan。这很重要,因为在开始我使用的是namespace + veth pair方式搭建环境,但总是不通,查了好多资料都说是版本问题,所以我这才舍弃自己的虚拟机花钱购买了计算云,然后又是升级内核版本等等....

直到这种最简单方式的情况下发现是OK的,我才意

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值