為什麼我買的雲主機Public IP地址在主機內看不到?這麼做一個NAT映射有什麼具體的考慮嗎?
? ~ ssh [email protected] -i ~/.ssh/authorized_keys
[root@ip-172-31-42-14 ~]# ip a
1: lo: & mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: & mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 06:4d:8a:ad:b1:ea brd ff:ff:ff:ff:ff:ff
inet 172.31.42.14/20 brd 172.31.47.255 scope global eth0
[root@ip-172-31-42-14 ~]#
有很多種可能性——
- 由於將你的Private IP映射到了Public IP上,這意味著主機的Private IP是可以變的,某些方案/場景裏可能是有用的
- 單從網路架構的角度來說,通常不會把Public IP直接配置到主機上,這樣需要依賴主機的iptabels來維護,雖然也不是沒有方法做自動化,但終歸不是太好的方案;NAT本身雖然沒有什麼安全意義,但是畢竟有那麼一個會話在,不能匹配到NAT會話的流量終究是無法穿透NAT的
最終還是取決於你的雲主機供應商怎麼考慮的,anyway,做一層映射,在幾乎不存在什麼性能損失的情況下,帶來的靈活性確實是更高的
因為ip地址相對雲計算資源來講,還是貴一些的
如果一個雲主機就配一個IP地址,相對來說成本會高很多(當然也有的主機商是這麼乾的)
於是一般是贈送給你一個IP地址,他後面可以接很多雲主機來組成一個小型區域網,但是對外只有那一個IP
如果需要更多,可以再*付費購買更多
有答主認為是SNAT,這個是不正確的。SNAT是為了雲主機訪問外網用的,但是外網是訪問不到雲主機的。
這裡應該是floating IP機制,對外呈現的是public IP,至於映射到哪個private IP,可以隨時變化,這樣你的雲主機可以很方便的遷移,對外確始終呈現同一個IP。
可以參考以下鏈接,https://ask.openstack.org/en/question/8770/why-floating-ip/
樓下都說了一對以NAT,安全性、SNAT問題等等,我說另外一種可能吧。
就是負載均衡。比如,突然有一天你需要再申請幾個雲主機,完成同一個任務,這時候雲廠商可以給你新的雲主機分配私有IP,但公網IP還是原來的那一個,不用再增加。對外提供業務時,還是原來的那個公網IP,沒有任何影響。
現在大部分雲廠商的public ip是彈性ip,可以靈活地綁定到雲主機上,彈性ip在雲主機內部不可見,主要是在雲基礎設施根據公私網ip映射關係進行NAT轉換。
首先這不是NAT。其次這種架構在IDC非常常見,靈活,節約資源,網路架構上也容易插入安全層。
推薦閱讀: