作者ShenJing (ShenJing)
看板Linux
標題[問題] docker容器內的NIS該如何讓其他Host連到
時間Tue Jan 29 20:06:18 2019
大家好,不好意思又來發問,
想請問若想在 docker container 中架設 NIS Server,
該如何讓其他台主機連上(ypbind)呢?
我先描述目前環境、嘗試過的方法、卡住的地方:
---目前設備---
總共2台實體主機,其中1台為 Docker host(開個container架 NIS Server),
各有 public IP
[Docker Host]
IP:140.5.5.5
Hostname:host
CentOS 7.6.1810
[NIS Server]
創建 container 額外下的參數:--privileged,以及與實體機 port 的映射
-p 49311:111 -p 49311:111/udp
-p 49211:1011 -p 49211:1011/udp
-p 49212:1012 -p 49212:1012/udp
(111:rpcbind
1011:ypserv
1012:yppasswd)
IP:172.17.0.6
Hostname:nis-master
CentOS 6.10
[NIS Client]
IP:140.4.4.4
Hostname:client
CentOS 7.4.1708
過程與教學是看鳥哥,
ypserv.conf 直接設定為 * : * : * : none,
此外為避免問題出在指令或參數,後來有在 host 那台以同樣過程
直接架設 NIS Server,原本 Client 使用 yptest 測試,但卡在 ypbind,
後來暫時關掉 firewalld 後,可成功連線。
(還不太會 iptables,所以才暫時用關掉防火牆的下下策做測試 )
後來換回該 host 的 container,跑了同樣流程卻不行,
(兩者rpcinfo的輸出結果均正確一致)
是卡在 ypbind 的階段:
https://i.imgur.com/KtGyQAo.png
---問題點---
比較有問題的是 /etc/hosts 部分:
140.5.5.5對應host
140.4.4.4對應client
因為 client 端在填 NIS domain 的 Server IP時,填的是140.5.5.5,
但請問這樣 Client 在連線 (ypbind) 時,會不會一直想連到Docker host,而不是有
設定對應的 port 的 container,最後因為host上沒有架設 NIS,導致一直無法連線呢?
目前感覺最有可能的問題應該是出在這,
不知道該怎麼該怎麼讓 client 去連指定 port…
後來我有直接設定111:111、1011:1011、1012:1012,
可是 111 port 已經被 systemd 占用了,所以此方法也失敗…
請問有沒有大大有處理過類似問題的呢?
最後感謝各位的閱讀
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.207.98
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1548763581.A.E2A.html
→ kenwufederer: 用Try Error 方式學習實在不是一個好方法 01/31 01:24
→ kenwufederer: 你描述寫下後自己有看過一次嗎? 01/31 01:25
推 kenwufederer: 你直接把log貼過來可能比較有用 01/31 01:27
→ kenwufederer: Client 連線的 port 是預設的,當然會錯誤 01/31 10:13
→ kenwufederer: 不過 NIS server 用 container 執行不是很麻煩嗎… 01/31 10:16
感謝你的回覆!想請問「看過一次」是指重新客觀檢視此篇,思考自己的盲點嗎?
(架設過程中很多觀念都半瓶水Orz)
此外因為目前伺服器關機中,所以還無法登入取得log,不好意思QQ
所以才想請問有沒有方法Client可以指定要連入的port,這方面不知是哪個環節決定的
用container執行是因為我們老師很喜歡很多東西都要docker化,故……
※ 編輯: ShenJing (36.232.253.88), 02/03/2019 22:46:34