阿里雲強制換IP算不算違法,我們站長如何維權?

今天登錄阿里雲,收到了個遷移通知,竟然公然要把我的IP地址更換掉,實在是太流氓太霸道了,IP地址在租期內不是私有財產嗎,想請問一下知乎的朋友,阿里雲這樣的行為算不算違法,我能有什麼辦法保護自己的權益嗎?


最近在V2EX等各個技術社區看到不少開發者在說「阿里雲換伺服器換 IP 活動又來了 https://www.v2ex.com/t/340561#reply59」。

雲主機的IP變更是不是一個臨時現象呢?在各家雲廠商是否是一個常見的現象。其實翻一下互聯網上記錄,我們可以發現其實早在2016年6月就有阿里雲的部分用戶就碰到了伺服器臨時更換公網IP的問題,時至今日,大半年後阿里雲的伺服器IP更換還是有此類問題。

「強制換IP算不算違法,我們站長如何維權?」

https://www.zhihu.com/question/45082838

「如何評價 阿里雲 強制換公網IP?」

https://www.zhihu.com/question/47223426

任何一個開發者肯定都不希望自己碰到這類意外情況,除了搬離阿里雲以外,做為開發者還可以做什麼?

從造福廣大開發者的角度,作為一個小小的站長我系統性的分析了一下雲主機公網 IP意外變更可能帶來的問題,公網IP變更背後的最可能技術原因,以及廣大開發者們可以採取的規避措施。

一、雲主機被更換物理IP可能會導致哪些影響?

1.依賴的商業介面調用失敗,連續幾天無法對外提供服務

2.部分APP如果在代碼里寫了固定的伺服器IP地址,需要重新打包上傳Appstore,重新過審不說,原有用戶還可能流失一大半。

3.ICP備案失效,網站被封。

4.採購的商業軟體license失效,要花幾千塊重新買。

二、那麼為什麼阿里雲會出現升級導致物理IP更換的問題呢?

本次阿里雲整體搬遷的技術原因,類比傳統IDC來說就是數據中心裁撤。一般數據中心可用性為10年,每5年就要整體維護一次。而雲計算服務商部署的數據中心很多不是全新數據中心,在使用期到限制前就只能對伺服器進行整體搬遷了。

一般來講,如果雲計算服務商底層做了overlay的網路虛擬化,是可以實現物理伺服器遷移而內、外網IP不變的。但在雲計算服務發展早期,部分服務商可能並沒有實現網路虛擬化的技術準備,虛擬機和物理機共享大二層網路的IP地址。

這種情況下以1個52U機架為例,機架上部署20台伺服器。機架頂層交換機上配置2個C段,則有約500個內網IP可用。物理伺服器IP本身佔去20個IP,剩餘480個IP給跑在物理伺服器中的虛擬機使用,最多生產480個虛擬機。這樣的地址分配是固定在機架的交換機中的,如果發生物理伺服器故障或者到期搬遷,此物理機內的IP地址需要統一更換為新機架下的內網IP。

外網IP也需要變化,可能是他們的外網IP漂移設備機房粒度部署的,僅為本機房提供IP漂移服務。該機房直接對接運營商進行路由發布,導致部分雲主機遷移到新機房後,不能使用原機房漂移設備上的外網IP。

此次阿里雲可用區到期,搬遷就需要通過這樣的方式來實現。

三、為什麼不是所有公有雲都會出現數據中心遷移導致更換物理IP的問題呢?

如果公有雲服務商對底層服務進行了虛擬化,則就大不一樣。每個虛擬機的內網IP和物理伺服器不在一個網路平面,虛擬機的內網IP和物理伺服器內網IP通過name表來維護映射關係。外網IP統一在集中的IP漂移集群進行管理,外網IP通過NAT方式和內網IP進行關聯。


當物理伺服器出現故障或者搬遷時,只要在新的物理伺服器中進行數據同步,並將映射關係更新為新的物理伺服器即可,虛擬機的內網IP不會變化,而和內網IP做一一映射的外網IP也不會變化。簡單來說就是虛擬機的熱遷移。好的熱遷移服務,是可以做到用戶無感知的。

四、那麼作為一個公有雲的使用者,如何才能避免被阿里雲這樣的變更影響呢,其實有幾個辦法:

1、儘可能使用公有雲的VPC私有網路服務。

如果你想確定自己的虛擬機底層使用了網路虛擬化服務,那麼最簡單的方法就是使用公有雲的VPC私有網路服務。VPC私有網路服務中你不僅可以自定義虛擬機的內網IP,更重要的是私有網路服務大部分使用overlay的方式實現,而overlay是主機遷移不停服(不換內外網IP)的必要條件。如果哪個公有雲廠商中私有網路的伺服器搬遷也要換IP,那麼他們就是假的VPC私有網路。

2、使用內網DNS服務編碼

如果你使用的公有雲服務商提供了內網DNS服務,則盡量使用內網域名來進行雲主機間的網路訪問。這樣即使內網IP發生了變更,也無需進行代碼的更改。如果你使用的公有雲服務商未提供內網DNS服務,也可以通過在虛擬機內配置hosts來進行統一的維護,無需因為內網IP而修改整個程序的代碼。

3、盡量使用彈性公網IP和負載均衡對外提供服務。

這次阿里雲的搬遷,用戶的內網IP、外網IP都需要變更。而外網IP一般在工信部進行了備案,每次IP變更都需要用戶重新備案,給用戶帶來許多麻煩。為了減少這樣的麻煩,使用公有雲時,凡是用於域名備案的IP,盡量使用彈性IP和負載均衡。

總結來說,雲廠商更換伺服器物理IP的主要原因是雲計算服務發展早期,部分服務商可能並沒有實現網路虛擬化的技術準備,虛擬機和物理機共享大二層網路的IP地址。

五、本次雲主機物理IP更換體現了阿里一貫的強勢,給開發者造成了不便。

結合阿里系的歷史來看,阿里一直是做為強勢一方存在,不論是以複雜商業運作拿回支付寶的控制權,還是本次臨時變更開發者的阿里雲主機物理IP,盡顯強勢風範,對於開發者而言,需要多做預防性的措施。

對於普通開發者而言,要避免盡量受到此類問題的影響,除了搬離阿里雲外,也需要注意盡量使用彈性公網IP和VPC網路。


對於程序員來講,沒看出來和斷網一分鐘有啥明顯的差別。


代碼肯定不會依賴 「IP 永遠不變」啊,不然怎麼方便愉快地遷出阿里雲?

代碼(包括嵌入式的)肯定存在大部分時間可用的廣播通道,使得自己哪怕根本沒有伺服器的情況下也能廣播小規模的信息啊!(比如系統推送,嵌入式的話就會用DNS)

不然難道你查詢是否要更新軟體、展示非即時公告等等的邏輯是要必須連接自己的伺服器不成?

所以其實通知客戶端要換IP不是什麼難事。只是阿里雲作為廉價雲主機,讓人覺得不爽而已。

同學玩《我的世界》,用的阿里雲(只跑遊戲不幹別的),有一天連不上了遊戲,看一下服務端的 log,發現是時間校驗失敗了,嗯,就是斷了一會兒CPU。我當時聽到他說,感覺石化了,後來想想,其實也沒什麼,重要的東西我們又不會依賴這種廉價產品,

所以我仍然會用阿里雲作為平時玩玩的機器,畢竟實在太便宜了,雙十一的時候三年才五百左右完全可以接受。

當然,不太在乎延遲的東西我會用 linode 等等來玩,無論是CPU、內存、磁碟、網路都要好一大截。


雖然無故換ip是不好的,但是換了ip就雞飛狗跳,也是不好的。至少dns的ip沒換對不對,完全可以把新的ip和更換時間一起push到哪些手機app裡面(pc程序和網站都很容易搞),說好的每個手機平台都有notification的功能呢。


個人看法:

  • 換IP不應該對線上產品產生大規模的影響。代碼里把IP寫死除了應對特殊情況以外,只能說明代碼質量差;
  • 阿里雲的網路部署能力和水平比我想像的和他們實際宣傳的差很多;
  • 阿里雲的硬體維護水平比我想像的差;

---

被輪子哥點贊了,誠惶誠恐……

簡單說下我的判斷依據

  1. 嵌入式設備理應實現(或部分實現)DNS客戶端。

    HTTP之類的應用寫死IP的場景實際不多,就不討論了。寫死IP這方面可能更多問題出現在嵌入式設備上。分兩個情況討論:

    1. 如果設備主要用TCP通信(遙測數據上傳等等),那增加一個UDP的代碼量不知比TCP簡單多少,而且由於UDP無狀態的特性,佔用的資源個人覺得也不至於心疼;
    2. 另一種情況就是有UDP實現,但是沒實現DNS客戶端或者類似GetAddrByHost的函數,這兩種情況實際都差不多,就是懶。考慮到各種因素,應該容許設備只處理AAAA(不過寫死IP的設備也不會有幾個用v6的)、A和CNAME三種記錄。

      網上也不是沒有現成的代碼。這都不實現,看來是甲方資金沒給足啊……

  2. 阿里雲的網路維護能力可能有問題
    阿里雲對於區域和可用區的定義可以在這裡看到:地域_地域_產品簡介_雲伺服器 ECS-阿里雲。我沒詳細了解過這個領域的情況,暫且把同一區域中不同可用區理解成同一個城市的不同機房或同一個機房的不同區域,總之沒出城。
    此外阿里雲是有自己的BGP號的(http://bgp.he.net/AS37963),印象中上了BGP後,是有條件做到更改物理拓撲後,保證網路拓撲不變的。我自己也用過阿里雲的機器,印象中上去之後拿到的都是內網IP。不管是用什麼(NAT或者IP漂移或者xxx……)技術來做到內網IP和公網IP之間的轉換的,只要網路拓撲合理,運營平台的結構足夠好,儘管無法避免在遷移過程中出現網路中斷,但保持公網IP的難度是不高的(連常被吐槽的騰訊雲都能做啊,朋友)。
  3. 阿里雲的硬體維護能力可能有問題
    後台現在到底是什麼架構在實體機上支撐,以至於升級後用戶需要手動重啟機器?根據這篇(阿里雲虛擬化技術研發之路 )文章,阿里雲在兩年前就已經應該具備了一定的熱遷移能力啊……感覺可能是有Xen之類的軟體升級?但這種升級在什麼情況下對虛擬機的影響大到了需要重啟系統才能保證穩定的情況?似乎不多(還是我知道的太少= =)?

個人只是雲上的用戶,不是從業者。還是希望阿里雲內部的同學從技術上來講一講,為什麼阿里雲會有這個表現。

---

更後發現落下了一點東西。補上:雲伺服器服務(ECS)服務條款_相關協議_產品使用問題_雲伺服器 ECS-阿里雲

3. 權利義務

3.2. 阿里雲的權利、義務

3.2.1. 阿里雲應按照服務條款約定提供服務。

......

3.2.6. 您理解並認可,阿里雲在必要時將會對您使用的雲伺服器服務進行機房遷移。阿里雲進行上述操作前將提前7個自然日通知您,由於進行上述操作可能需要修改您相關域名的DNS,因此需在接到阿里雲通知後按照阿里雲要求的時間將DNS修改到阿里雲指定IP上,否則因此造成網站應用無法訪問的,由您自行負責

...

8. 違約責任

8.1. 本服務條款任何一方違約均須依法承擔違約責任。

8.2. 您理解,鑒於計算機、互聯網的特殊性,下述情況不屬於阿里雲違約:
8.2.1. 阿里雲在進行伺服器配置、維護時,需要短時間中斷服務
8.2.2. 由於Internet上的通路阻塞造成您網站訪問速度下降。

8.3. 如因阿里雲原因,造成您連續72小時不能正常使用服務的,您可以終止服務,但非阿里雲控制之內的原因引起的除外。

8.4. 在任何情況下,阿里雲均不對任何間接性、後果性、懲戒性、偶然性、特殊性的損害,包括您使用阿里雲服務而遭受的利潤損失承擔責任即使您已被告知該等損失的可能性)。

8.5. 在任何情況下,阿里雲對本服務條款所承擔的違約賠償責任總額不超過違約服務對應之服務費總額。

(粗體非原文標識)

所以正經回答:如果條款有效,則沒有責任
至於條款是否有效,門外漢就不說話了……


所以你們的代碼都敢寫死IP,連DNS都不用?這才是違規的吧。

我的網站放在linode,有一次因為同網段的某個網站作死被牆,附近的IP躺槍。我發信給linode說中國用戶無法訪問,他們說,一般來說我們不給換IP,但這個情況嘛,懂,給你換個IP。


介面調用用域名才是王道啊,ps,題主你的打碼技術不行,我還是認出了你的IP~


去年2016年4月就搞過一次強制換ip了。我這是個DRM密鑰分發的,人都傻了,還涉及版權合作方審計的。。

據說(個人沒有親歷) 2012年的時候也搞了一次。

如果你發現阿里比電信還沒誠信,還是用電信的機房吧。。。電信還是挺怕工信部投訴的。


感覺題主的顧慮是在SEO上……
卻引來了一群程序員在指責代碼中ip寫死的問題……


問題是有些業務確實需要綁定ip,以我的業務為例,我做的是汽車盜定位器行業系統:安裝在客戶車上的GPS終端設備,有的型號只能支持ip,不支持域名。這時候,如果我所綁定的IP被強制更換,這部分業務必然癱瘓。
雖然之前我在支持使用域名的設備上用過域名來加強可控能力,但是實際當中發現,部分地區的DNS問題導致的域名解析問題經常影響業務,因此在幾次區域性故障的教訓之下,現在我的終端配置已經全部綁定了IP。

雖說我可以群髮指令修改ip配置,但是總有很多設備處於離線設備不可控制。因此對於這種強制修改IP的做法必須抵觸。


首先應將風險降至最低。換ip帶來的最大損失是需要重新解析域名到新地址,以及需要更新備案信息。這些雖然麻煩,但操作起來可以挽回絕大多數損失。
但主機提供商換ip是否違法這個我真不知道。抱歉答非所問,也許幫不到題主,只是給提個醒。


題主,有問題提工單啊。咱也算是阿里雲的老用戶。


怎麼突然感覺我們公司現在搞公有雲還有機會(⊙o⊙)


這種時候可以百度一下工信部投訴,能不能管不太了解。不過聯通電信都是挺怵這個的,可以試試


沒辦法,遇到算自己倒霉吧。


題主你確定你這馬賽克能擋住你的信息?


說個題外話,上次阿里雲突然下線容器服務還是啥的時候,我就開始往外遷移了


我也中招了。聯繫阿里客服,被告知IP沒有更換過,真的是非常佩服他們睜著眼睛說瞎話的能力。
得了,爺不跟你們玩了,老子把域名轉到GoDaddy去了。


先保命,再維權,DNS域名解析那裡換個ip就好了嘛


我們當時強烈要求不換,後來倒是真的沒有換,不過經常性的網路故障,不得已自己換了


域名是多麼重要(不要相信任何運營商,IP非常之不靠譜,各種原因都會出問題,包括不限於,同段IP違規,同段IP非法爬蟲被各大網站封掉,聯通電信抽風,運營商想收回IP。。。。)突然好怕,哪天告訴你域名不是你的了,才是悲劇。

更換後注意各種證。。。別忘記更新。


推薦閱讀:

人工智慧可以為我們做些什麼?
雲計算在中國的市場格局是怎樣的?
雲計算如果真的成熟了,還會有獨立的操作系統么?或者說,還會有人賣獨立的操作系統么?
VPS 與虛擬主機有什麼異同?
雲計算的發展趨勢是什麼?

TAG:雲計算 | IP地址 |