使用场景:html
可能咱们的业务服务器并非全部服务器都须要有公网IP,数据库
好比,最为典型的数据库服务器,只须要可以可以经过有公网安全
IP的跳板机登陆后,内网跳转就能够进行系统管理,但若是服务器
外网不通,仍是很不方便。如此以来,可以让跳板机担当NAT网络
服务器也就即保障了安全又可以让内网服务器请求公网。ide
虽然aws服务中有现成的NAT服务,但彻底能够手工打造。ui
环境展现:spa
vpc一个 CIDR 172.16.0.0/16(可容纳65534台主机)htm
子网两个接口
公有子网 CIDR 172.16.18.0/26(可容纳62台主机)
私有子网 CIDR 172.16.18.128/26(可容纳62台主机)
正式操做:
建立vpc,命一个直观的vpc名称,指定好vpc使用网段
建立子网,命一个直观的子网名称,并指定vpc为上一步中建立的vpc
建立Internet网关,命一个直观的igw名称,并与vpc进行关联
建立路由表,命一个直观的rtb名称,指定对应的vpc
查看公网路由表成功建立后的效果
DestinationTargetStatusPropagated
172.16.0.0/16localactiveNo
0.0.0.0/0 igw-04860ca326f5e0d15activeNo
手动建立私网路由表(须要建立好跳板机的ENI后才能建立)
网络网关指向跳板机的ENI,成功后以下所示
DestinationTargetStatusPropagated
172.16.0.0/16localactiveNo
0.0.0.0/0 eni-074cd5718bf24d3f7activeNo
跳板机 公有子网 CIDR 172.16.18.0/26
内网服务器 私有子网 CIDR 172.16.18.64/26
aws ec2全部机器最好使用弹性网卡,方便往后拨离ENI挪做它用
跳板机的ENI建立时手动指定一个公有子网的私有IP,并分配一个弹性IP
跳板机的ENI须要关闭源/目标检查
内网服务器的eni建立时手动指定一个私有子网的私有IP就能够了
建立实例时指定以前建立好的ENI接口,全部实例无需子网分配公有IP和私有IP了
跳板机实例启动后进入系统,须要作两项配置
cat /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -j MASQUERADE #转发全部IP及端口的请求到公网的流量
COMMIT
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
跳板机的配置就完成了
之后只要想用这个跳板机作为登陆入口以及网络出口的,只须要启动实例时放置于
设定的私有子网内就能够了。
须要注意的时,要想阅读本文后,实现笔者的效果,须要对aws网络有必定了解,
笔者也曾由于aws的网络头疼过好多回,但当笔者成功手工打造上述系统后,也算
对aws的网络环境有了必定的见长!
更多细节请参考官方文档:https://docs.aws.amazon.com/zh_cn/vpc/latest/userguide/VPC_NAT_Instance.html