SNAT功能的规则管理
1.初始化客户端
参数获取可参照准备工作中token认证方式。
// 设置认证参数
String user = "******"; // IAM用户名
String password = "******"; // IAM用户密码
String projectId = "******"; // 项目ID
String userDomainId = "******"; // 账号ID
String authUrl = "******"; // 认证服务(IAM)的Endpoint
// 初始化client
OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl)
.credentials(user, password, Identifier.byId(userDomainId)).scopeToProject(Identifier.byId(projectId))
.authenticate();
// SNAT规则的参数
String eipIDForSnatRule = "91dbd312-732d-4eb0-949e-a7a09803b47b";
String natGateWayID = "8d45f435-61f7-4a30-b955-ae40f3e3989b";
String networkID = "247e2ef9-4625-4cfd-870a-f128f6f38acf";
2.创建SNAT规则
字段参考说明
参数 |
参数类型 |
描述 |
nat_gateway_id |
string |
所属NAT网关的id |
network_id |
string |
规则使用的网络id。与cidr参数二选一。 |
cidr |
string |
cidr,可以是网段或者主机格式,与network_id参数二选一,Source_type=0时,cidr必须是vpc 子网网段的子集(不能相等),Source_type=1时,cidr必须指定专线侧网段 |
source_type |
Integer |
0:VPC侧,可以指定network_id 或者cidr,1:专线侧,只能指定cidr,不输入默认为0(VPC) |
floating_ip_id |
string |
功能说明:弹性公网IP的id,多个弹性公网IP使用逗号分隔,取值范围:最大长度4096字节,约束:弹性公网IP的id个数不能超过20个,获取弹性公网IP的id的方法请参考查询弹性公网IP列表 |
// 创建SNAT规则
SnatRuleCreate snatRuleCreate = SnatRuleCreate.builder().natGatewayId(natGateWayID).networkId(networkID).
floatingIpId(eipIDForSnatRule).build();
osclient.nat().snatRules().create(snatRuleCreate);
说明:
3.获取SNAT规则列表
字段参考说明
参数 |
参数类型 |
描述 |
id |
string |
SNAT规则的id |
limit |
Integer |
每页返回的个数。 |
tenant_id |
String |
项目的ID |
nat_gateway_id |
string |
所属NAT网关的id。 |
network_id |
String |
规则使用的网络id。 |
cidr |
String |
cidr,vpc 子网网段的子集或专线侧网段 |
source_type |
Integer |
0:VPC侧,可以指定network_id 或者cidr,1:专线侧,只能指定cidr,不输入默认为0(VPC) |
floating_ip_id |
String |
功能说明:弹性公网IP的id |
floating_ip_address |
String |
功能说明:弹性公网IP |
status |
String |
功能说明:SNAT规则的状态,取值范围:资源状态说明 |
admin_state_up |
Boolean |
解冻/冻结状态 |
created_at |
String |
SNAT规则的创建时间戳,遵循UTC时间,保留小数点后6位,格式是yyyy-mm-dd hh:mm:ss |
osclient.nat().snatRules().list();
说明:
4.获取SNAT规则详情
字段参考说明
参数 |
参数类型 |
描述 |
snat_rule_id |
string |
所属SNAT规则的id |
String snatRuleID = "5b95c675-69c2-4656-ba06-58ff72e1d338";
osclient.nat().snatRules().get(snatRuleID);
说明:
更多参数详情具体请参考API Explorer
5.删除SNAT规则
字段参考说明
参数 |
参数类型 |
描述 |
snat_rule_id |
string |
所属SNAT规则的id |
osclient.nat().snatRules().delete(snatRuleID);
说明:
更多参数详情具体请参考API Explorer
版本说明
本示例基于华为云SDK V2.0版本开发,高版本示例正在开发中。
功能介绍
网关的SNAT功能使VPC内跨可用区的多个云主机共享公网或者外部子网IP,从而达到访问互联网或者外部子网的功能,本示例展示的是创建SNAT规则、查询SNAT规则列表、查询指定的SNAT规则详情、删除SNAT规则等操作。
准备工作
1.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
2.华为云 Java SDK 支持两种认证方式,具体请查看token认证和AK/SK认证。
3.华为云 Java SDK 支持 Java JDK 1.8 及其以上版本。
SNAT功能的规则管理
1.初始化客户端
参数获取可参照准备工作中token认证方式。
2.创建SNAT规则
字段参考说明
说明:
创建规则时,要求网关状态status = "ACTIVE",要求网关管理员状态admin_state_up = True
更多参数详情具体请参考API Explorer
3.获取SNAT规则列表
字段参考说明
说明:
支持参数说明中所有非必选参数过滤。
更多参数详情具体请参考API Explorer
4.获取SNAT规则详情
字段参考说明
说明:
更多参数详情具体请参考API Explorer
5.删除SNAT规则
字段参考说明
说明:
更多参数详情具体请参考API Explorer
参考
更多信息请参考NAT网关