素晴らしい
udpxyユーティリティには、オペレータネットワークで使用するときに考慮する必要がある2つの機能があります。
まず、ステータスおよびリセットコマンドは、Webブラウザを介してすべてのクライアントで使用できます。
次に、約40の同時スレッドでudpxyの速度が低下し始めますが、プロセッサとネットワークインターフェイスはほとんどビジーではありません。
小さな余談
原則として、udpxyは目的のディストリビューションのバイナリパッケージとして利用できないため、ソースコードからコンパイルする必要があります。
アセンブリに必要なパッケージ(コンパイラ、ライブラリ、ユーティリティ)で作業システムを詰まらせることは悪い習慣です-更新のサイズが大きくなり、依存関係がより複雑になります。
一方、別のアセンブリファームの組織はアセンブリを複雑にします。 作業ソフトウェアとアセンブリソフトウェアのバージョンの同期、アセンブリパッケージの自動検出、転送などの代わりにいくつかのパラメータの明示的な表示などが必要です。
1回限りのアセンブリの妥協点は、作業システムの別のディレクトリに一時的なアセンブリ環境(別名サンドボックス)を作成することです。
Debian Squeezeでは、これには次のコマンドで十分です。
apt-get install debootstrap mkdir /home/builder debootstrap squeeze /home/builder http://mirror.yandex.ru/debian chroot /home/builder apt-get update chroot /home/builder apt-get -y dist-upgrade chroot /home/builder apt-get -y install gcc make
udpxyをビルドするには、gccとmakeだけが必要です;より大きなプログラムの場合、さらに多くのパッケージが必要になる場合があります。
組み立てと設置
ソースアーカイブをダウンロードし、サンドボックスに展開します。
ver="1.0.23-0" wget http://downloads.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.${ver}-prod.tar.gz' tar xzf ~/udpxy.${ver}-prod.tar.gz -C /home/builder/home/
コントロールチームの名前を非常に秘密の名前に変更します。
cd /home/builder/home/udpxy-${ver} sed -i.orig -e 's!/restart!/SECRET_restart!' -e 's!/status!/SECRET_status!' statpg.h sed -i.orig -e 's!"status"!"SECRET_status"!' -e 's!"restart"!"SECRET_restart"!' -e 's!"rtp"!"SECRET_rtp"!' extrn.c
サンドボックスに移動してコンパイルします。
chroot /home/builder make -C /home/udpxy-${ver}
udpxyを実行する擬似ユーザーとプログラムとユーティリティのディレクトリを作成し、プログラムをそこに転送します。
useradd --system --shell /bin/true --create-home udpxy install -o udpxy -g udpxy -m 700 -p /home/builder/home/udpxy-${ver}/udpxy /home/udpxy/
打ち上げ
同時接続の動作制限を増やすために、異なるポートでいくつかのudpxyインスタンスを実行し、iptables => nat => PREROUTING => REDIRECTを使用してクライアントIPアドレスに応じて、それらの標準ポート4022に来る要求を分散します。
説明:まず、スクリプトにはbashが必要です。 shは、カウンターのあるループを理解していません。 第二に、「-I」の代わりに「iptables -A」を使用することはできません。 「-s 0.0.0.0/0.0.0.0」のルールが最初になり、それ自体へのすべての接続を取得します。 第三に、スクリプトは引き続きバックグラウンドで実行され、完了した(落ちた?)Udpxyインスタンスを自動的に再起動します。
デフォルトでは、udpxyは最小限の情報を/var/log/udpxy/*.logログファイルに出力します。 出力をより詳細にしたい場合は、「-v」および「-S」キーを「sudo -u ...」起動ラインに追加します。
ツイストするのが理にかなっている追加のペン:「-B 1Mb」は入力バッファを増やす(バイト単位)、「-R 10」-同時メッセージ数(ピース単位)および「-H 5」-最大データバッファリング時間(秒単位) )
/ home / udpxy / startへの呼び出しを
/etc/rc.localに追加します(
/etc/init.dのスクリプトの作成は
延期します)。
完了スクリプトは次のようになります。
ステータスを表示
次のように、すべてのudpxyインスタンスへの接続の一般的なリストを参照してください。
もっと簡単な方法があるかもしれませんが、これが最速であることが判明しました。
CGI-BINがサポートされている任意のWebサーバーで実行できます。 Debianでは、
mini-httpdはこれに最適です。
apt-get install mini-httpd echo 'START=1' >> /etc/default/mini-httpd echo ' port=4020 user=nobody nochroot dir=/var/www data_dir=/var/www/html cgipat=**.cgi logfile=/var/log/mini-httpd.log pidfile=/var/run/mini-httpd.pid charset=utf-8 ' > /etc/mini-httpd.conf /etc/init.d/mini-httpd restart
SNMP
Cacti / Zabbix / MRTGのSNMPを現在の接続クライアント数(プロセスごとの最大数+合計)で確認するには、/ etc / snmp / snmpd.confに追加します。
exec udpxy_connections /etc/snmp/udpxy_connections.sh
実際のスクリプト/etc/snmp/udpxy_connections.sh:
検証:
snmpwalk -On -c SecretCommunity -v2c 10.20.30.40 NET-SNMP-EXTEND-MIB::nsExtendObjects
おわりに
残念ながら、マルチキャストでのIPテレビの通常の動作に必要なすべての古いネットワーク(ダムバスをコントローラーに置き換え、ヒナギクをストレートファイバーに置き換えるなど)の近代化を迅速に行うことはできません。 udpxyの一時オプションを使用すると、ネットワークが最新になるのを待たずにIPTVサービスを開始できます。