在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

posted on 2016-08-08 07:02  老李谈cloud  阅读(159)  评论(0编辑  收藏  举报

导航