首页 OpenStack-Train云平台部署之“vxlan网络”

OpenStack-Train云平台部署之“vxlan网络”

技术张儿 2020-7-25 0 48
标签: OpenStack

一个交换机最多可以创建4096个vlan,全0不让用、全1不让用
1-4095
以上限制了,根本不可能通过vlan来做用户的私有网络。

直接通过vxlan来做

VXLAN(虚拟扩展局域网)是一种网络虚似化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN是一种功能强大的工具,可以穿透三层网络对二层进行扩展。它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器

它支持的数量是4096*4096=16777216,目前云厂商都是用的vxlan


# 注意:网络升级删除所有实例

# neutron agent-list
L3_agent 代表三层网络
[root@controller ~]# vim /etc/openstack-dashboard/local_settings
OPENSTACK_NEUTRON_NETWORK = {
    'enable_router': True, # 开启路由

8.1 删除provider网络

# 便于管理
1.png

8.2 把私有网络“admin”修改成外部网络

8.2.1 查看网络拓扑

2.png

8.2.2 进入网络选项卡修改

# 将私有网络admin修改成外部网络
3.png

4.png

8.2.3 再次查看网络拓扑

# admn网络编程小地球了
5.png

8.3 创建私有网络并关联路由器及启动私有网络实例

8.3.1 创建私有网络

6.png

7.png

7.png


8.3.2 查看创建私有网络

# 处于运行中的状态,创建成功
9.png


8.3.3 再次查看网络拓扑

# 两个网络没有任何关联
1.png

8.3.4 创建路由器

# 创建路由器使自定义网络能够连接公网
10.png


8.3.5 再次查看网络拓扑

# 接下来要把private-01连接到路由器
11.png

8.3.6 把路由器连接到private-01私有网络

12.png

8.3.7 再次查看网络拓扑

13.png

8.3.8 创建实例测试私有private-01网络

# 基于private-01网络创建虚机就可以上外网了

1.png

2.png

3.png

# 注意:自定义了一个私有网络,但是在上外网之前是通过路由器nat转换到admin。
# 注意:实现以上主要功能就是路由器nat转换,正因为有这个nat转换的存在所以私有地址随便写,和腾讯、阿里、百度等云一摸一样
# 注意:私有网络想创建多少是多少


8.4 再次创建私有网络并关联路由器及启动私有网络实例

8.4.1 创建子网

1.png

2.png

3.png


8.4.2 添加接口

1.png
2.png

# 查看路由器连接两个私有网络

3.png

8.4.3 创建实例测试私有private-02网络

# 基于guest网络创建虚机就可以上外网了

4.png

5.png

# ping www.baidu.com
# ping 1.1.1.136 # private-01网络虚拟机地址
6.png
# 测试在2.2.2.0/24网络可以ping通1.1.1.0/24网络
# 原因是路由器都绑定的有网关



8.5 为实例绑定浮动ip模拟阿里云

弄私有网络的目的是什么?
1、隔离网络环境
2、把私有网络地址映射出去

8.5.1 在控制节点测试,默认不通

[root@controller ~]# ping 1.1.1.136
[root@controller ~]# ping 2.2.2.207


8.5.2 分配浮动ip进行绑定

1.png

2.png

3.png

4.png


# 控制节点连接172.16.0.168就是连接到1.1.1.136服务器

5.png


8.5.3 控制节点再次测试

[root@controller ~]# ssh cirros@172.16.0.168
cirros@172.16.0.168's password: 
$ ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast qlen 1000
    link/ether fa:16:3e:28:c8:d9 brd ff:ff:ff:ff:ff:ff
    inet 1.1.1.136/24 brd 1.1.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe28:c8d9/64 scope link 
       valid_lft forever preferred_lft forever

8.5.4 验证

[root@controller ~]# ip netns
qdhcp-148b1ed4-e22c-459c-be28-25786d5cad0c (id: 3)
qrouter-db9c0113-6f4d-4268-a7f0-bd92f4a6dcbe (id: 2)
qdhcp-d0077eee-e499-4ada-86cf-b28ee3370b1c (id: 1)
qdhcp-e4798bba-ad5c-4b1d-a091-7f3655ad1284 (id: 0) 
[root@controller ~]# 
[root@controller ~]# ip netns exec qrouter-db9c0113-6f4d-4268-a7f0-bd92f4a6dcbe /bin/bash	#进入到网络命名空间
6.png

# 查看iptable规则
[root@controller ~]# iptables -t nat -L -n
# 目的地址转换,当去访问172.16.0.168的时候访问的是1.1.1.136
7.png

# 源地址转换
8.png
通过以上规则实现ip地址映射
[root@compute01 ~]# tcpdump icmp

在私有网络虚机里面ping 10.0.0.31
所有私有网络虚机都是通过172.16.0.182网关去上网的
9.png

# 私有网络里的虚机要出去上网必须需要外部网关

10.png

8.6 vxlan 网络流程

11.png

作者: 技术张儿 本文发布于2020-7-25 03:42:29
免责声明:本文仅代表作者个人观点。