#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]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS