#author("2023-12-30T13:10:06+00:00","default:iseki","iseki") ** Patch for OpenSim in NAT (J) [#k8b9a013] #author("2023-12-30T13:10:14+00:00","default:iseki","iseki") ** Patch for OpenSim in NAT [#k8b9a013] - ''&color(Blue){[[English is Here>../Patch for OpenSim in NAT (J)]]};'' *** 概要 [#uc8abf20] - ''これは,OpenSim を NATループバック(ヘアピンNAT)機能なしのNAT内で動かすためのパッチです.'' - OpenSim-0.8.1/0.8.2 対応. - HyperGrid/Standalone Hypergrid モード のみ対応 (他のモードでも動くかもしれませんが,全て検証する時間がありません). - OpenSimの全ての機能をサポートしているわけではありません. - パッチの効果を最大限に引き出すには,グリッド内の全てのサーバにパッチを適用する必要があります. - このパッチは,OpenSim のコアな部分も書き換えています.このパッチを適用したことにより,OpenSimの誤作動やインベントリの消失などが発生しても,''当方は一切関知しません.全て自己責任で使用してください''. - &font(Red){''Capability の書き換えは複雑すぎて,副作用が発生する可能性があるので止める -> hosts ファイルで対応 (3/19)''}; *** 機能制限 [#j39f04c5] - 同じNAT内の自分の リージョンに直接ログインするためには,Robust サーバにパッチが適用されていなければなりません(HyperGridの場合). - 同じNAT内の自分の リージョンへNAT外の他のリージョンからTPする場合は,TP元の Region サーバにパッチが適用されていなければなりません. - つまり,同じNAT内の自分の OpenSim(Region サーバ)にしかパッチが適用されていない場合は,使い物になりません - JOGではメインのサーバには全てパッチが適用されています. *** 注意 [#w75f1b27] - DB の regions テーブルの ''Token ''カラムを,NAT内PCのプライベートアドレスを保管する場所として流用しています. -- ソースコードを見る限りでは,TokenカラムデータはHyperGridでは使用されていないように見えます(確証はありません). - %%サーキットデータ クラスの Channel メンバ変数を書き換えています.%% -- %%送信先サーバがNAT内の場合,最後に ''" [Internal]"'' を追加.%% *** ダウンロード [#z80e95fd] **** for OpenSim 0.8.2 [#a8ae63dc] - [[opensim_nat_0.8.2.patch>http://www.nsl.tuis.ac.jp/DownLoad/SoftWare/OpenSim/opensim_nat_0.8.2.patch]] **** for OpenSim 0.8.1 [#ja22b2b1] - 0.92 は StandAlone Grid をサポートします. (制限あり) - [[opensim_nat_0.8.1-0.92.patch>http://www.nsl.tuis.ac.jp/DownLoad/SoftWare/OpenSim/opensim_nat_0.8.1-0.92.patch]] (2015 3/27) - for JOG: [[opensim-0.8.1-nat-0.92-JOG.zip>http://www.nsl.tuis.ac.jp/DownLoad/SoftWare/OpenSim/opensim-0.8.1-nat-0.92-JOG.zip]] (2015 3/27) - for OSG: [[opensim-0.8.1-nat-0.92-OSG.zip>http://www.nsl.tuis.ac.jp/DownLoad/SoftWare/OpenSim/opensim-0.8.1-nat-0.92-OSG.zip]] (2015 3/27) *** 設定方法 [#dfd4239f] **** Regions.ini [#ec3bac23] - ''InternalAddress'' にはサーバ(PC)の''プライベートIPアドレス''を記述する.0.0.0.0 と記述してはいけない. -- Windows の場合は,コンソールウィンドウから ''ipconfig'' コマンドを入力すれば プライベートIPアドレスが表示される. - ''ExternalHostName'' にはサーバ(PC)の''ドメイン名(FQDN)''を記述する.SYSTEMIP またはグローバルなIPアドレスを記述してはいけない. -- ドメイン名(FQDN)を外部のDNSに登録する(ほとんどの場合はDynamicDNSとなるはず). - サンプル [Remote Test] RegionUUID = ccfaa21e-ed4a-4e2e-bcee-d8a3272a5fdc Location = 7992,8006 InternalAddress = 192.168.27.7 InternalPort = 9000 AllowAlternatePorts = False ExternalHostName = sirius.star-dust.jp **** hosts ファイル [#p64fb26f] - %%基本的には hosts ファイルを記述しなくても良いはずであるが,もし動作がおかしいサービスがあった場合はViewerが動作するPCの hosts ファイルを記述してみる.%% - &font(Red){Viewerを起動するPC上の ''hosts ファイルの内容を必ず記述''してください.}; - 上の例では下記のように記述する 192.168.27.7 sirius.star-dust.jp - hosts ファイルの場所 -- Linux/Unix: /etc/hosts -- Windows: C:\Windows\System32\drivers\etc\hosts -- OSX: /private/etc/hosts **** Standalone Grid [#y9333f1a] - OpenSimサーバをビューアと同じPCで起動している場合でも,サーバのIPアドレスとして 127.0.0.1 (localhost) は使用しないでください. *** JOGrid で使用する方法 [#hf619c80] **** JOGrid 内のメイン サーバには全てパッチが適用されています. [#w948a59b] - Regions.ini を記述する - Viewerを起動するPC上の hosts ファイルの内容を記述 *** OSGrid で使用する方法 [#d0f2c85a] - OSG では Robust (Login) サーバにパッチを適用できませんので,同じNAT内の自分のリージョンに直接ログインすることはできません. - 他のパッチが適用されていないリージョンから直接,移動,TPはできません. - ''JOG Gate'' (9999,9886) にはパッチが適用されていますので,''JOG Gate'' を経由して自分のリージョンにTPしてください. *** 自分の管理するグリッドで使用する場合. [#raa6f75e] - グリッドで管理する全てのOpenSim のソースコードにパッチを適用して,コンパイルする.(Robust サーバを含む) - HyperGrid 接続するユーザにパッチ適用済みのバイナリを使用するように指示する. ** バグ [#y143ea7f] *** Go Home バグ (in the OSGrid) [#d968b00a] - OSGrid で JOG Gate から,"Go Home" ボタンまたは Ctrl+Shift+H で ホームに帰還した際に表示が異常になる場合があります(Robustサーバにパッチが適用されていないせいかもしれない: 正確にはOSGはRobustサーバではありませんが). - ホームに帰還する場合は,''JOG Gate でホームを検索''してからテレポートで帰還してください. - それでもダメな時は ''JOGRID.NET:8002'' を経由してテレポートで帰還してください. &ref(../Patch for OpenSim in NAT (E)/abnormal_return.png,40%);~ ** その他 [#l73b9afc] *** 原理・仕組み [#ee0bd468] ** [[devel>../NAT]] [#c6340d7a]