使用場景: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