読者です 読者をやめる 読者になる 読者になる

exlar's IT note

ITやスマートデバイスを中心とした趣味情報の寄せ集め

PMSの検知が遅延するのでF/Wを疑った結果正解だったので対策した

PMS (PS3 Media Server) と PlayStation3 を利用したDLNA環境での動画再生がお気に入りの環境なのですが、PMSのサーバをUbuntuからCentOSに変えて以降、DLNAサーバを認識するのに時間がかかるようになってしまいました。

從來は即DLNAサーバを認識していたのですが、CentOSに変更後は体感で2分程度の無応答時間の後にDLNAサーバが現れる感じ。

しばらく放っておいたのですがストレスもたまってくるので、原因追求を行いました。結論としては、F/W(iptables)が悪さをしていた様子です。後述するF/W許可ルールを適用したらDLNAサーバ(PMS)検知のレスポンスが非常に良くなりました。

PMS: Playstation Media Server 利用ポートの一覧

以下、iptables のリストを記述します。

-A INPUT -s [YourNetwork] -p tcp --dport 5001 -j ACCEPT
-A INPUT -s [YourNetwork] -p udp --dport 5001 -j ACCEPT
-A OUTPUT -d [YourNetwork] -p tcp --sport 5001 -j ACCEPT
-A OUTPUT -d [YourNetwork] -p udp --sport 5001 -j ACCEPT
-A INPUT -s [YourNetwork] -d 239.255.255.250 -p udp --dport 1900 -j ACCEPT
-A OUTPUT -d [YourNetwork] -p udp --dport 50733 -j ACCEPT
  • [YourNetwork]部分は、DLNAクライアントとなるPS3本体またはPS3が所属するネットワークアドレスを記載します。
  • port 5001 部分は、PMS.confの「Server Port (port = xxxx)」に記述しているポート番号を記載します。何も指定ない場合はデフォルト5001になるようですが、念のためにあえて明記しています。
  • iptablesのDROPログを見ているとPS3宛のUDP通信がいくつかのポートから発生していました。1個1個対応するのはイタチごっことなり面倒だったので、PS3宛UDP通信を全て許可しています。
  • 同じくDROPログを見ていたらマルチキャスト通信が発生していました。具体的にどのシーケンスでなのかは深堀りしていませんが、DLNAクライアントがサーバを見つける時にマルチキャスト(IGMP)を利用していることを知れてひとつ理解が深まりました。

iptablesのDROPログ確認方法

CentOS 6.4標準環境をベースとした場合に以下の手順を踏めば取得可能になるかと思います。

ls -l /var/log/iptables

mkdir -p /var/log/iptables

ls -l /etc/rsyslog.d/
vi /etc/sysconfig/iptables

 # 前述したiptablesルールを適用

vi /etc/rsyslog.d/35-iptables.conf
:msg,contains,"DROP:" -/var/log/iptables/iptables.log

sudo service rsyslog restart