阿裏雲ECS無法連接阿裏雲數據庫的一般原因
實為吾之愚見,望諸君酌之!聞過則喜,與君共勉
第一章 使用阿裏雲ECS和數據庫前需要了解的相關概念
1.1地域和可用區
地域:地域是指物理的數據中心,類似下麵的表格
地域名稱 |
華北 1 |
華北 2 |
華北 3 |
華東 1 |
華東 2 |
華南 1 |
|
所在城市 |
青島 |
北京 |
張家口 |
杭州 |
上海 |
深圳 |
|
RegionId |
cn-qingdao |
cn-beijing |
cn-zhangjiakou |
cn-hangzhou |
cn-shanghai |
cn-shenzhen |
可用區:可用區是指在同一地域內,電力和網絡互相獨立的物理區域
詳細說明看這裏:
https://help.aliyun.com/document_detail/40654.html?spm=5176.doc51704.6.543.jd1ts9
1.2內網
同地域內的雲資源互相訪問地址,不同可用區也可以內網訪問,但是不同地域正常是不可以內網訪問的,不同地域需要公網訪問
詳細說明看這裏:
https://help.aliyun.com/document_detail/25385.html?spm=5176.doc40654.6.557.68NSeb
1.3外網
跨地域之間雲資源互相訪問的地址,不可以內網訪問,可以立即為滿足公網訪問的地址
1.4安全組
Ecs所特有可以理解為防火牆,區別於windows或者linux係統內部的防火牆,安全組和係統內部防火牆互不影響
詳細說明看這裏:
https://help.aliyun.com/document_detail/25387.html?spm=5176.doc25385.6.560.F1KUoi
1.5vpc(專有網絡)
阿裏雲的內網隔離的私有網絡,同一個vpc內,不同交換機默認是互通的,不同vpc下正常是無法聯通的
詳細說明看這裏:
https://help.aliyun.com/document_detail/34217.html?spm=5176.doc55051.6.539.4PVhVn
1.6白名單
Rds所特有,ip比如寫入白名單之後,主機才可以進行訪問
https://help.aliyun.com/document_detail/26198.html?spm=5176.product26090.6.686.2Y3o4E
1.7網絡類型
經典網絡以及專有網絡(vpc),經典網絡區別於專有網絡,經典網絡中的雲服務在網絡上不進行隔離
區別的詳細說明看這裏:
https://help.aliyun.com/document_detail/26194.html?spm=5176.product26090.6.682.2mjTIX
1.8Â 訪問模式
Rds特有分為高安全模式和標準模式
詳細說明看這裏:
https://help.aliyun.com/document_detail/26193.html?spm=5176.doc26194.6.681.iNVL3c
第二章 ECS連接RDS問題
以下是指同地域之間的的阿裏雲ecs訪問rds的說明 ,皆為正常情況,排除了特殊配置的情況,以下四類情況同樣適用於同地域ECS連接雲MONGODB,ECS連接雲REDIS,ECS連接雲OCS(MEMCACHED),並且也適用於不同地域直接連接的問題排查,需要注意的是:
1,雲MONGODB,雲REDIS,雲OCS正常隻支持內網連接,所以跨地域公網訪問時不支持的,本地主機通過公網訪問也是不支持的
2,雲REDIS,雲OCS在切換到vpc後,是不支持再切換到經典網絡的
3,RDS,雲MONGODB(複製集版)是可以從經典網絡切換到vpc並且也可以從vpc切換到經典網絡的
4,雲MONGODB(集群版)創建完成後不支持網絡類型切換
2.1.1經典網絡ECS訪問經典網絡RDS異常
情況描述:ECS是經典網絡(公網和內網都有),RDS是經典網絡(公網和內網都有),如下:
Ecs的網絡配置:
Rds的網絡配置:
通過ECS和RDS的配置,它們網絡類型相同,又都存在公網和內網地址,所以理論上公網和內網的訪問都是沒問題的,測試如下:
下麵模擬一個不可以正常連接的例子進行連通性測試:
Ecs連接rds內網:
通過ping內網地址和telnet內網地址,獲取了如上的信息,上麵說明了如下兩點:
1,該rds目前的內網地址是10.50.144.213
2,通過3306端口連接10.50.144.213無法連接
網絡類型相同,而無法連接,此類問題一般是ECS的內部的防火牆(或者其他安全軟件)或者ECS的安全組設置以及RDS的白名單設置的問題,按照這個思路,往下查:
自帶防火牆:
結果:狀態關閉
Ecs的安全組設置:
通過安全組可以看到,”內網出方向”的規則中有一條規則如上,該規則會拒絕發往發往10.50.144.213且目的端口是3306的數據包,所以從ECS發出來的數據包就不可達了
RDS的白名單配置:
通過白名單可以看到,rds的白名單設置隻允許來著127.0.0.0的訪問,其他的地址是不允許的
通過上麵的查看,一方麵是ecs的安全組設置有問題,一方麵是rds的白名單設置有問題,先更改ecs的安全組,刪除之前的規則(保持rds的白名單不改動),進行測試:
紅框中的提示是:#28000ip not in whitelist,再結合之前查到的rds的白名單問題,可以判斷這是rds的白名單阻止了該ECS的訪問,下麵修改RDS的白名單,將ecs的內網ip地址10.132.35.143加入:
再次測試:
測試正常了,同網絡類型的公網訪問問題排查方法同上,同地域網絡類型相同而無法連接的問題一般是源端或者目標端的安全限製導致的
2.1.2經典網絡ECS訪問專有網絡RDS異常
情況描述:ECS是經典網絡(公網和內網都有),RDS是專有網絡(公網和內網都有),如下:
ECS網絡配置:
RDS網絡配置:
通過上麵的信息可以看到,ECS與RDS的網絡類型是不同的,ecs是經典網絡,rds是專有網絡(vpc),這樣的話正常內網是無法訪問的,隻有公網才可以正常訪問,測試如下:
此類情況的解決辦法:
1,使用rds的公網地址進行訪問
2,如果想使用內網訪問,必須是相同網絡類型才可以,因為ecs無法直接切換網絡類型,則比較好的解決辦法就是把rds切換為與ecs相同的網絡類型(經典網絡),並設置好安全組防火牆已經白名單,具體操作方法如下:
再次測試:
2.1.3專有網絡ECS內網訪問經典網絡RDS異常
情況描述:ECS是專有網絡(隻有內網,沒有eip),RDS是經典網絡(公網和內網都有),如下:
ECS網絡配置:
Rds網絡配置:
通過上麵的信息可以看到,ECS與RDS的網絡類型是不同的,ecs是專有網絡,rds是經典網絡,這樣的話與2.1.2相同,也是正常內網是無法訪問的,又因為ecs沒有eip,所以rds的公網也是無法訪問的。
解決辦法:
1,配置ECS的eip(取決於購買時的配置,此處我購買時選擇的不分配公網地址),使用rds的公網訪問RDS,操作如下:
測試如下:
2,如果需要內網的話,需要將rds切換到與ecs相同的vpc下才可以(交換機可以不同,但是交換機必須在同一個vpc下),具體操作如下:
Ecs所在vpc以及交換機:
相應的vpc以及交換機信息
Rds進行網絡類型切換:
測試內網如下:
2.1.4專有網絡ECS內網訪問專有網絡RDS異常
情況描述:ECS是專有網絡(隻有內網,沒有eip),RDS是專有網絡(公網和內網都有),如下:
Ecs的網絡配置:
RDS網絡配置:
通過上麵的信息,可以看到ECS和RDS都是同一個vpc下的,但是他們內網可以連接嗎?外網可以嗎?做個測試(測試公網需要申請eip):
綁定eip:
內網測試:
結果:內網測試不通
外網測試:
結果:外網測試可以聯通,隻是提示白名單問題
內網無法連通原因:通過上麵的ecs的rds的網絡類型,可以看到RDS和ECS的vpc是不同的,所以他們處在兩個不同的vpc下,所以他們無法連通
下麵將RDS切換到與ecs相同的vpc下再測試(ecs無法直接切換vpc):
再次內網測試:
結果:內網測試可以聯通,隻是提示白名單問題
第三章 問題延伸
通過第二章的測試和驗證,當選擇ECS和RDS時,如果需要內網正常連接,可能需要滿足(以下均不包括特殊情況):
1,同地域如果需要內網連接,則網絡類型要相同,如果是經典網絡ecs和rds都為經典網絡才可以內網連接,如果是vpc網絡,ecs和rds必須是在同一個vpc下才可以內網連接
2,不同地域時,經典網絡以及VPC網絡的ecs和rds一般需要公網地址進行連接,不同地域無法內網連接
3,雲mongodb,雲redis,雲ocs此類隻允許內網連接,一般無法通過公網來連接,所以ecs需要與其在同一地域下,
4,當遇到某個ECS連接數據庫出現問題時,可以嚐試使用如下方法進行分析:
1)“ping 實例地址”:解析出ip地址即可,如下
2)“telnet 實例地址 端口” 或者”telnet ip 端口”
Ps: 28000ip not in whitelist是因為白名單未設置,可以看另一篇:
https://yq.aliyun.com/articles/158321?spm=5176.100240.searchblog.8.XNCQSl
3)如果telnet失敗(失敗如下,表現為長時間無反應或者超時):
可以執行route -n檢查下路由信息
如果路由信息也沒問題,可以考慮檢查下網絡類型以及安全限製方麵是否符合,如果網絡類型和安全限製也沒有問題的話,需要檢查係統是否有其他的特殊配置,尤其是網絡方麵的特殊配置(回憶下我在這台主機上做過什麼?)
最後更新:2017-08-13 22:26:49