Ubuntu 18.04 Server VM でポート 30080 を開こうとしていますが、わかりにくい結果が表示されます。
iptables出力
ubuntu@k8-master:~$ sudo iptables -v -x -n -L [sudo] Ubuntuのパスワード: チェーン入力 (ポリシー ACCEPT 289 パケット、98798 バイト) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 3919 272820 KUBE-SERVICES すべて -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes サービスポータル */ 3919 272820 KUBE-EXTERNAL-SERVICES すべて -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes 外部から見えるサービスポータル */ 846424 164692436 KUBE-FIREWALL すべて -- * * 0.0.0.0/0 0.0.0.0/0 チェーン FORWARD (ポリシー DROP 0 パケット、0 バイト) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 KUBE-FORWARD すべて -- * * 0.0.0.0/0 0.0.0.0/0 /* kubernetes 転送ルール */ 0 0 KUBE-SERVICES すべて -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes サービスポータル */ 0 0 DOCKER-USER すべて -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-ISOLATION-STAGE-1 すべて -- * * 0.0.0.0/0 0.0.0.0/0 0 0 すべてを受け入れる -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED、ESTABLISHED 0 0 DOCKER すべて -- * docker0 0.0.0.0/0 0.0.0.0/0 0 0 すべてを受け入れる -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 0 0 すべてを受け入れる -- docker0 docker0 0.0.0.0/0 0.0.0.0/0 0 0 すべてを受け入れる -- * * 10.244.0.0/16 0.0.0.0/0 0 0 すべてを受け入れる -- * * 0.0.0.0/0 10.244.0.0/16 チェーン出力 (ポリシー ACCEPT 281 パケット、145464 バイト) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 6870 412563 KUBE-SERVICES すべて -- * * 0.0.0.0/0 0.0.0.0/0 ctstate NEW /* kubernetes サービスポータル */ 846213 192244364 KUBE-FIREWALL すべて -- * * 0.0.0.0/0 0.0.0.0/0 チェーン DOCKER (1 件の参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 チェーン DOCKER-ISOLATION-STAGE-1 (1 参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 DOCKER-ISOLATION-STAGE-2 すべて -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 0 0 すべてを返す -- * * 0.0.0.0/0 0.0.0.0/0 チェーン DOCKER-ISOLATION-STAGE-2 (1 参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 すべて削除 -- * docker0 0.0.0.0/0 0.0.0.0/0 0 0 すべてを返す -- * * 0.0.0.0/0 0.0.0.0/0 チェーン DOCKER-USER (1 件の参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 すべてを返す -- * * 0.0.0.0/0 0.0.0.0/0 チェーン KUBE-EXTERNAL-SERVICES (1 件の参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 /* robot-shop/web:8080 にはエンドポイントがありません */ ADDRTYPE match dst-type LOCAL tcp dpt:30080 deny-with icmp-port-unreachable チェーン KUBE-FIREWALL (参照 2 件) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 /* マークされたパケットをドロップするための Kubernetes ファイアウォール */ mark match 0x8000/0x8000 チェーン KUBE-FORWARD (1 件の参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 すべて削除 -- * * 0.0.0.0/0 0.0.0.0/0 ctstate 無効 0 0 すべてを受け入れる -- * * 0.0.0.0/0 0.0.0.0/0 /* Kubernetes 転送ルール */ マーク一致 0x4000/0x4000 0 0 すべてを受け入れる -- * * 10.0.0.0/16 0.0.0.0/0 /* kubernetes 転送 conntrack ポッド ソース ルール */ ctstate RELATED、ESTABLISHED 0 0 すべてを受け入れる -- * * 0.0.0.0/0 10.0.0.0/16 /* kubernetes 転送 conntrack ポッド宛先ルール */ ctstate RELATED、ESTABLISHED チェーン KUBE-SERVICES (3 件の参照) パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先 0 0 REJECT tcp -- * * 0.0.0.0/0 10.96.93.102 /* robot-shop/cart:8080 にはエンドポイントがありません */ tcp dpt:8080 拒否-icmp-port-unreachable 0 0 REJECT tcp -- * * 0.0.0.0/0 10.111.89.174 /* robot-shop/web:8080 にはエンドポイントがありません */ tcp dpt:8080 拒否-icmp-port-unreachable
また、ufw はポートが開いていると表示します。
sudo ufw status
Status: active
To Action From
-- ------ ----
30080 ALLOW Anywhere
30080/tcp ALLOW Anywhere
Netstat はポートを「リスニング」モードでも表示します。
netstat -talpn | grep 30080
tcp6 0 0 :::30080 :::* LISTEN -
では、なぜ nmap がポートをフィルター済みとして表示するのかわかりません。
nmap -Pn localhost -p 30080
PORT STATE SERVICE
30080/tcp filtered unknown
リモート マシンから試すと、nmap は閉じていると表示されます。
PORT STATE SERVICE
30080/tcp closed unknown
ここからどこへ行けばいいのか分からない。
答え1
調査した結果、これは Kubernetes の問題だと思います。kube-proxy が次の行を追加しているようです:
/* robot-shop/web:8080 にはエンドポイントがありません */ ADDRTYPE match dst-type LOCAL tcp dpt:30080 deny-with icmp-port-unreachable
それで、このトピックを閉じて、Kubernetes セクションで別のトピックを開始したいと思います。ありがとうございます。