在GIC虚拟数据中心里实现浮动IP绑定

GIC目前的产品结构里还不支持浮动IP,这对于想尝试docker等新东西的小伙伴是不方便的。这篇文章尝试在GIC虚拟数据中心里用一台虚机做NAT,为虚拟数据中心中的其他机器提供浮动IP支持。

第一步,我在GIC里创建了一个“Docker试验台”虚拟数据中心,购买了一个8个IP的公网IP段,并且购买了三台虚机:

NetworkController001 - 用作NAT服务的网络控制节点。

ComputeNode001,002 - 用作计算节点。

第二步,创建一个C段的私网,10.10.1.0/24,把三台机器都挂载到这个私网上。

第三步,三台机器只有NetworkController001挂载到公网上(101.251.244.194)。

如下图所示:

实验的目的是,把101.251.244.195,和101.251.244.196这两个公网IP作为浮动IP挂载到两台计算节点上。

先画一下原理图,然后我将在回复里把实验中的步骤补充进来。

见下图:

1. 创建br-ex网桥,作为连接外网的网桥。并设置网桥IP地址。

brctl addbr br-ex

ip link set br-ex up

ip addr add 101.251.244.194/29 dev br-ex; \

ip addr del 101.251.244.194/29 dev ens192; \

brctl addif br-ex ens192; \

ip route del default; \

ip route add default via 101.251.244.193 dev br-ex

2. 创建一对veth,veth-b连接到br-ex上,veth-a设置为ip地址:101.251244.195和196

ip link add veth-a type veth peer name veth-b  //创建一对veth

brctl addif br-ex veth-b   //把veth-b连接到网桥上,成为一个interface

ip link set veth-b up

ip addr add 101.251.244.195/24 dev veth-a

ip addr add 101.251.244.196/24 dev veth-a
    ip link set veth-a up

3. 安装iptables-service,然后编辑/etc/sysconfig/iptables文件,增加:

*nat

:PREROUTING ACCEPT [0:0]

:INPUT ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

:POSTROUTING ACCEPT [0:0]

-A PREROUTING -d 101.251.244.195/32 -j DNAT --to-destination 10.10.1.3

-A OUTPUT -d 101.251.244.195/32 -j DNAT --to-destination 10.10.1.3

-A POSTROUTING -s 10.10.1.3/32 -j SNAT --to 101.251.244.195

-A PREROUTING -d 101.251.244.196/32 -j DNAT --to-destination 10.10.1.4

-A OUTPUT -d 101.251.244.196/32 -j DNAT --to-destination 10.10.1.4

-A POSTROUTING -s 10.10.1.4/32 -j SNAT --to 101.251.244.196

COMMIT

service iptables restart

4. 在10.10.1.3,4上把网关设到10.10.1.2上:

ip route add default via 10.10.1.2

时间: 2024-10-15 06:53:49

在GIC虚拟数据中心里实现浮动IP绑定的相关文章

OpenStack neutron 环境云主机使用keepalived vip + 给vip绑定浮动IP 步骤及注意事项

在openstack环境创建的多台云主机配置keepalived作主备,默认情况下无法生效,直接对云主机一张网卡配置两个IP进行测试也是同样结果,因为: 可以看到,port所在的宿主机上iptables 对 MAC地址和IP进行了限制.所以需要如下操作: pre.   确认云主机网卡port_id nova interface-list [vm_id] 1.  确认 ml2 配置中 arp_responder = False  或 未配置(因为默认为false): 2.  对需要配置vip的po

性能测试项目总结-虚拟数据的准备

摘 要:本文主要是面向性能测试的工程师,从实际项目中总结经验.教训,并且提出一些改善的建议,希望大家能在以后的性能测试的项目中吸取和借鉴,本文尤其在性能测试的前期数据准备方面给出了解决方案. 关键词:测试用例:性能测试:测试流程 项目介绍 该项目为两年前的一个项目,目前该系统的性能在一定的条件下速度极慢,当用户量达到一定程度时,整个程序会无法响应,所以需要对该项目进行性能测试,找到系统的瓶颈,为以后的系统升级做充分的准备. 项目延期的原因 XXX项目已经结束,在整个项目的测试过程中遇到了不少困难

因素空间理论在大数据中的应用——汪培庄

因素空间理论在大数据中的应用 汪培庄 辽宁工程技术大学 (在大数据与数据科学进展主题论坛上的发言稿,经过整理) 我国数据与机器智能科学工作者肩负着引领大数据时代浪潮的重任,这是关乎我们能否顺利实现中国梦的大事.无论多困难,我们一定要争取走向前列.作为在信息革命领域里头曾经撕杀过的一名老兵,我曾经打造一个理论,就等这一天来接受新的考验,这个理论就是因素空间.       一.因素空间的历史贡献   87年7月,日本学者山川烈在东京召开的国际模糊系统大会展厅里摆着一台机器,明确写着FUZZY COM

faker之python构造虚拟数据

python中可以使用faker来制造一些虚拟数据 首选安装faker pip install Faker 老版的叫法是faker-factory,但是已不适用 使用faker.Factory.create()来创建并初始化faker生成器(generator) 使用方法如下: from faker import Factory fake = Factory.create()   # OR from faker import Faker fake = Faker()   fake.name()

理解vSphere虚拟交换机中的VLAN类型

VMware vSphere虚拟机交换机支持四种VLAN类型,分别是:无.VLAN.VLAN中继.专用VLAN. 在路由/交换领域,VLAN的中继端口叫做Trunk.Trunk技术用在交换机之间互连,使不同VLAN通过共享链路与其它交换机中的相同VLAN通信.交换机之间互连的端口就称为Trunk端口.Trunk是基于OSI第二层数据链路层(Data Link Layer)的技术. 如果没有VLAN中继,假设两台交换机上分别创建了多个VLAN(VLAN是基于Layer 2的),在两台交换机上相同的

Flask实战-留言板-使用Faker生成虚拟数据

使用Faker生成虚拟数据 创建虚拟数据是编写Web程序时的常见需求.在简单的场景下,我们可以手动创建一些虚拟数据,但更方便的选择是使用第三方库实现.流行的python虚拟数据生成工具有Mimesis和Faker,后者同时支持python2和python3,而且文档中包含丰富的示例,所以这里选用Faker.首先用pipenv安装(使用—dev选项声明为开发依赖):pipenv install faker --dev Faker内置了20多类虚拟数据,包括姓名.地址.网络账号.信用卡.时间.职位.

从Wireshark监听的数据中提取需要的数据

最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处理数据包的数量增加,图形化可能吃不消,以前就遇见过),在linux下,采用了tshark命令,tshark就是wireshark图形界面命令行化,命令如下: sudo tshark -f "udp port 1243" -i eth0 (-w)> /tmp/capture.cap 对

如何去除AJAX收到数据中包含的html页面数据

问题: 如下代码所示,我用AJAX收到来自url: 'kzkj_check.jsp',返回的数据msg,总是包含页面的html数据,可是我只想要我返回的数据“false”, $.ajax({ url: 'kzkj_check.jsp', async:false, data: 'un='+ $('#userName').val() +'&pw=' + $('#passWord').val(), type: "get", success: function(msg){ if(msg

MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能

网上看见了好多例子都基本上是一样的,没有过多的解释,对于一个初学MySQL来说有点难,我把部分转摘过来如下 原文:http://www.cnblogs.com/buro79xxd/archive/2012/08/29/2662489.html 要求目标:1.确定需求: 根据部门来分组,显示各员工在部门里按薪水排名名次. 创建表格:2.来创建实例数据: drop table if exists heyf_t10; create table heyf_t10 (empid int ,deptid i