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