文档首页> > 开发指南> Java> VPC Java SDK示例

VPC Java SDK示例

更新时间: 2018-11-26 14:28

VPC服务OpenStack4j示例

使用虚拟私有云(VPC)服务,可以为弹性云服务器(ECS)提供本地隔离、可配置和可管理的虚拟网络,提高云资源的安全性,简化网络部署。

一个典型的VPC由路由器、网络和子网组成,如下图所示:

可以在控制台创建VPC,然后获取UUID:

  • 路由器:路由器是一个逻辑实体,可以跨越内部子网转发报文,然后,通过合适的外部网关,在外部网络上对报文进行网络地址转换。
  • 网络:网络是一个隔离的2层网段,与物理组网的VLAN类似。
  • 子网:子网是由IPv4地址或IPv6地址和相关配置状态组成的IP地址段。

创建VPC和子网

可以使用OpenStack4j创建子网。详细操作如下:

  1. 创建路由器。
  2. 创建网络。
  3. 创建子网。
  4. 连接子网与路由器。

以下代码所示为网络创建过程,您可以根据需要修改这些配置。创建路由器、网络和子网并将子网与路由器连接之后,您可以在控制台看到所创建的新VPC。

public Network createNetwork() { 
              //Create a router 
              Router router =  os.networking().router().create(Builders.router() 
                            .name("routerName") 
                            .build()); 
              //Create a network 
              Network network = os.networking().network().create(Builders 
                            .network() 
                            .name("networkName") 
                            .adminStateUp(true) 
                            .build()); 
              //Create a subnet 
              Subnet subnet = os.networking().subnet().create(Builders.subnet() 
                            .networkId(network.getId()) 
                            .name("subnetName") 
                            .enableDHCP(true) 
                            .cidr("192.168.0.0/24") 
                            .addDNSNameServer("8.8.8.8") 
                            .gateway("192.168.0.1") 
                            .build()); 
              //Connect the subnet to the router, make the router connect to the internet. 
              RouterInterface routerinf = os.networking().router().attachInterface(router.getId(), AttachInterfaceType.SUBNET, subnet.getId()); 
              return network; 
       }

删除VPC

删除VPC之前,需要删除VPC 子网中所创建的ECS,然后取消路由器和子网之间的关联,删除子网和网络。

执行ECS删除命令并确保根据ECS删除状态删除ECS之后,您可以删除网络。关于如何删除网络,请参见以下代码。

private void clearNet() { 
os.networking().router().detachInterface(routerID, subnetID, routerinf.getPortId()); 
os.networking().subnet().delete(subnetID); 
os.networking().network().delete(networkID); 
os.networking().router().delete(routerID); 
}

外部网络

外部网络是属性router:external被设定为true的网络。该网络可用于分配EIP。在将EIP添加到ECS上之后,即可通过互联网访问ECS。

无需创建外部网络,因为外部网络已经存在。

通过执行API: GET /v2.0/networks?router:external=True命令,查询创建EIP所用网络的ID。

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~