使用場景:
可能我們的業務服務器並不是所有服務器都需要有公網IP,
比如,最爲典型的數據庫服務器,只需要能夠能夠通過有公網
IP的跳板機登錄後,內網跳轉就可以進行系統管理,但如果
外網不通,還是很不方便。如此以來,能夠讓跳板機擔當NAT
服務器也就即保障了安全又能夠讓內網服務器請求公網。
雖然aws服務中有現成的NAT服務,但完全可以手工打造。
環境展示:
vpc一個 CIDR 172.16.0.0/16(可容納65534臺主機)
子網兩個
公有子網 CIDR 172.16.18.0/26(可容納62臺主機)
私有子網 CIDR 172.16.18.128/26(可容納62臺主機)
正式操作:
創建vpc,命一個直觀的vpc名稱,指定好vpc使用網段
創建子網,命一個直觀的子網名稱,並指定vpc爲上一步中創建的vpc
創建Internet網關,命一個直觀的igw名稱,並與vpc進行關聯
創建路由表,命一個直觀的rtb名稱,指定對應的vpc
查看公網路由表成功創建後的效果
Destination Target Status Propagated
172.16.0.0/16 local active No
0.0.0.0/0 igw-04860ca326f5e0d15 active No
手動創建私網路由表(需要創建好跳板機的ENI後才能創建)
網絡網關指向跳板機的ENI,成功後如下所示
Destination Target Status Propagated
172.16.0.0/16 local active No
0.0.0.0/0 eni-074cd5718bf24d3f7 active No
跳板機 公有子網 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的網絡環境有了一定的見長!