2013年2月18日月曜日

[Jenkins] DNS MultiCast を停止する方法

なぜかJenkinsを起動させたらパケットロスが多発しまくったのを無理やり直した話

きっかけはこちらの記事。
(Jenkins には Auto-discovering という機能があるそうです。)

Jenkins が原因で社内ネットワークが重たくなるという現象が起こっていたため対応することになり、
色々手こずったのでメモを残しておきます。
(※結論だけ知りたい方は下のほうだけ見れば OK です。)

Jenkins システムの設定
とりあえず、システムの設定画面にはなさそう…
PC の設定でブロックするようにできないか試してみることにしました。

パケットフィルター
iptables
Windows で Jenkins を動かしているので、iptables は使えない。

netsh routing ip
netsh routing ip add filter ~で、フィルターかけられるという情報を見つけたが、
Windows 7 では使えなかった…
(XP ならできるみたいだけど…)

ファイアーウォール
ファイアーウォールの「送信の規則」を設定したらできると思って試すもうまくいかず…

設定の仕方が悪いのだろうけど、調べる時間もあまりないので
原点に戻って Jenkins 側で制御できないか再調査することにしました。

Class DNSMultiCast
Jenkins の API ドキュメントを探してたら、まさに!なクラスを発見! DNSMultiCast

"DNSMultiCast Jenkins" で検索したらそれらしい情報がいっぱい出てきた!

日本Jenkinsユーザー会 | Google Groups
Jenkins users - How to use -dhudson.DNSMultiCast.disable and ...

DNS MultiCast を停止する方法
DNS マルチキャストを無効にするには、Jenkins の起動時に
-Dhudson.DNSMultiCast.disabled=true
を指定するようです。
詳しくは Jenkins 公式の Features controlled by system properties を見てください。

実際に試して見ました。

もちろん、見た目に変化はありません。
設定が反映されているかスクリプトコンソールを使って確認します。
スクリプトコンソールを開いたら
println(hudson.DNSMultiCast.disabled)
と入力し、実行します。

ちゃんと disabled が true になりました。

これで、UDP マルチキャストが停止するはずです。

0 件のコメント:

コメントを投稿