本方案采用iptables对ZOS对象存储内网IP地址或弹性文件存储内网IP地址进行转发,从而实现专线与zos对象存储或弹性文件存储的网络打通方案。
一、需求背景
客户IDC机房的物理机/虚拟机需要通过专线访问公有云的对象存储或弹性文件存储。同时提供高可用保障。
二、方案详情
在公有云资源池新建两台虚拟机,在虚拟机内部配置NAT规则。使用NAT方式访问公有云对象存储。操作流程如下:
- 在和客户IDC专线打通的VPC内新建两台虚拟机(4C,8GB,40GB系统盘);
- 在虚拟机同子网申请一个vip地址,绑定两台虚拟机的虚拟网卡;
- 在两台虚拟机里面安装部署keepalived,keepalived的vip使用上一步申请的vip;
- 在两台虚拟机里面配置nat规则,使得专线可以通过访问vip来访问公有云对象存储服务。
1、双机版配置方案
1)安装iptables
安装iptables
#yum install -y iptables
#yum install -y iptables-services
注:如果服务器或云主机不能连接yum源,需要手工安装iptables和iptables-service
安装完成后,检查iptables是否安装完成:
# rpm -i iptables*
确认是否iptables和iptables-services安装包的状态都是“installed”状态。
检查iptables服务状态是否为“active”。
# systemctl iptables status
2)开启转发功能
# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
# sysctl -p
3)配置iptables规则
a、iptables -t nat -A PREROUTING -d {虚拟IP地址}/32 -p tcp -m tcp --dport {存储端口} -j DNAT --to-destination {存储地址}:{存储端口}
b、iptables -t nat -A POSTROUTING -o {网卡名} -j SNAT --to-source {本机实地址}
样例:
Bucket地址( VPC内网访问 ) :100.127.20.130
虚拟IP:192.168.0.253
虚机A地址:192.168.0.11
虚机B地址:192.168.0.12
- 虚机A配置:
# iptables -t nat -A PREROUTING -d 192.168.0.253/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 100.127.20.130:80
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.11
- 虚机B配置:
# iptables -t nat -A PREROUTING -d 192.168.0.253/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 100.127.20.130:80
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.12
4)修改iptables配置文件
检查两台NAT主机的iptables配置文件,如果/etc/sysconfig/iptables配置文件中含有如下规则:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
需要在/etc/sysconfig/iptables配置文件中加“#”注释掉,或者删除
5)永久保存iptables配置
持久化保存iptables配置,避免服务器或云主机重启之后,配置丢失,导致重新配置。
持久化iptables配置:
# iptables-save > /etc/sysconfig/iptables
注:两台NAT主机都需要保存配置
6)测试验证
# curl vip-ip-address:80
返回如下结果即为正确:
<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>
2、单机版
在虚拟机里面配置nat规则,使得专线可以通过访问虚机ip来访问公有云对象存储服务。
1)安装iptables
安装iptables
# yum install -y iptables
# yum install -y iptables-services
注:如果服务器或云主机不能连接yum源,需要手工安装iptables和iptables-service
安装完成后,检查iptables是否安装完成:
# rpm -i iptables*
确认是否iptables和iptables-services安装包的状态都是“installed”状态。
检查iptables服务状态是否为“active”。
# systemctl iptables status
2)开启转发功能
# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
# sysctl –p
3)配置iptables规则
a、iptables -t nat -A PREROUTING -d {虚拟IP地址}/32 -p tcp -m tcp --dport {存储端口} -j DNAT --to-destination {存储地址}:{存储端口}
b、iptables -t nat -A POSTROUTING -o {网卡名} -j SNAT --to-source {本机实地址}
样例:
Bucket内网地址( VPC内网访问 ) :100.127.20.130
虚机IP地址:192.168.0.253
虚机配置:
# iptables -t nat -A PREROUTING -d 192.168.0.253/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 100.127.20.130:80
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.253
4)修改iptables配置文件
如果/etc/sysconfig/iptables配置文件中含有如下规则:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
需要在/etc/sysconfig/iptables配置文件中加“#”注释掉,或者删除
5)永久保存iptables配置
持久化保存iptables配置,避免服务器或云主机重启之后,配置丢失,导致重新配置。
持久化iptables配置:
# iptables-save > /etc/sysconfig/iptables
6)测试验证
# curl 云主机ip-address:80
返回如下结果即为正确:
<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>