[Linux] iptablesでハマったのでメモ
※ このブログはいきなり専門的な話になるので、そういうのが苦手な人はスルーを。
研究用のクラスタでNIS/NFSの設定をしていたのですが、
iptablesの基本的なところで詰まったので報告します。
NISの設定が一通り終わった後、ワーカノードでypbindを起動したら
NISドメインサーバにアクセスできなかったのが、事のはじまり。
RPC関係が怪しいと思って、rpcinfoで調べてみると、
マスタノードで rpcinfo -p → 正しく動いている
ワーカノードで rpcinfo -p [マスタのIP]
→ rpcinfo: ポートマッパと接続できません: RPC: 遠隔システムエラー - ホストへの経路がありません
となり、しばらく考えて「iptablesが悪い」と思って修正しました。
しかし、修正したつもりでも、まだワーカノードから rpcinfo が参照できない。
よく分からないまま1時間を潰したら、こういうことだった。
一つ大事なのが、僕の環境ではこの2行は
- A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
より前に書く必要があった (これに気づかずに1時間ほど頭を悩ますハメになった…orz)。
これだっ!と思い修正したら、ビンゴ。
こんな感じで書くべきだったのです。 ※ RPCのポート番号は111(sunrpc)。
- A RH-Firewall-1-INPUT -p udp --dport 111 -j ACCEPT
- A RH-Firewall-1-INPUT -p tcp --dport 111 -j ACCEPT
- A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
iptablesを触る人は、基本として覚えましょう。
(こんな事も知らずにiptablesを触っていたのか、自分・・・。)