STUN サーバー
Delphi で独自の STUN (RFC 8489) サーバーを運用できます。バインディングリクエストに対し、正規の XOR-MAPPED-ADDRESS で応答します。プライベートネットワーク、オンプレミス環境、ICE ブートストラップで活用いただけます。
Delphi で独自の STUN (RFC 8489) サーバーを運用できます。バインディングリクエストに対し、正規の XOR-MAPPED-ADDRESS で応答します。プライベートネットワーク、オンプレミス環境、ICE ブートストラップで活用いただけます。
型付きの RFC 8489 STUN サーバーです。Binding / Indication メッセージを処理し、XOR-MAPPED-ADDRESS で応答します。長期間認証用に MESSAGE-INTEGRITY を強制することも可能です。
TsgcSTUNServer
Windows, macOS, Linux, iOS, Android
Enterprise
Port (デフォルト 3478) を設定し、Active := True にするだけで、サーバーは Binding リクエストに対し正規の RFC 8489 XOR-MAPPED-ADDRESS で応答します。
uses
sgcP2P;
var
STUNServer: TsgcSTUNServer;
begin
STUNServer := TsgcSTUNServer.Create(nil);
STUNServer.Port := 3478;
// optional: long-term credentials
STUNServer.Authentication.Enabled := True;
STUNServer.Authentication.Realm := 'example.com';
STUNServer.OnSTUNAuthenticate := procedure(Sender: TObject;
const aUsername: string; var aPassword: string;
var Accept: Boolean)
begin
aPassword := LookupPassword(aUsername);
Accept := aPassword <> '';
end;
STUNServer.Active := True;
end;
// uses: sgcP2P
TsgcSTUNServer *STUNServer = new TsgcSTUNServer(this);
STUNServer->Port = 3478;
STUNServer->Active = true;
セルフホスト型の STUN サーバー。オンプレミスの WebRTC 環境やプライベートクラウドでのテストに最適です。
受信した Binding リクエストには XOR-MAPPED-ADDRESS、MAPPED-ADDRESS (レガシー)、FINGERPRINT を付与して応答し、RFC 8489 標準の応答形式に準拠します。
Authentication.Enabled を切り替えることで MESSAGE-INTEGRITY を必須化できます。OnSTUNAuthenticate によりリクエストのユーザー名を取得できるため、保存先からパスワードを返却するだけで認証が完了します。
TsgcWSRateLimiter と組み合わせれば、ソース IP ごとに受信 STUN リクエストを制限できます。増幅攻撃への有効な対策となります。
IPVersion によって、いずれかのファミリまたはデュアルスタックでバインドできます。XOR-MAPPED-ADDRESS の応答は受信トランスポートのファミリに合わせて生成されます。
STUN-over-TLS の構成では、基底の TCP リスナーに SSL オプションを設定します。ネットワーク出口で UDP がブロックされる環境で有効です。
OnSTUNRequest / OnSTUNResponse は Method、MessageType、解析済み属性リストを含むトランザクションをすべて記録します。デプロイ環境のデバッグに最適です。
コンポーネントリファレンスへのディープリンク、すぐに実行可能なデモプロジェクト、そして体験版のダウンロードはこちらです。
| オンラインヘルプ — TsgcSTUNServer 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | 開く | |
| デモプロジェクト — Demos\35.P2P\02.STUN すぐに実行可能なサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。下記より体験版をダウンロードしてください。 | 開く | |
| 技術ドキュメント (PDF) 本コンポーネントのみを対象とした機能解説、クイックスタート、Delphi および C++ Builder のコードサンプル、一次資料への参照を収録しています。 | 開く | |
| ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |