NAT対応SIMのテスト 本番 仕切り直し

NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿
返信数: 12

ちょっと仕組みが複雑になりすぎたので,仕切り直します.

3/20 以降のバイナリでは,必ず hosts ファイルを記述してくさださい

 

OpenSim-0.8.1 にパッチ(改訂版)を当てたバイナリ.設定ファイルはコピー済み. https://www.jogrid.net/wi/mod/resource/view.php?id=66

Region.ini 等の設定時の注意事項 

 

動かない機能があった場合はお知らせください.

なお,他のHyperGrid などのパッチの適用されていないリージョンからは,自分と同じNAT内のリージョンにTPで戻ってくることはできません.一旦 JOG のリージョンを経由してください.
JOG のサーバは全てパッチが適用さています.

よろしくお願いいたします.

Iseki Fumikazu への返信

Re: NAT対応SIMのテスト 本番 仕切り直し

- Dover Kimiko の投稿

Raspberry Pi2を使用して、mono3.12.0でopensim-0.8.1-nat-0.91を稼動させています。

natループバック機能ありのルーターを使用していますので、特に不具合はみつからず、TPも順調です。

Iseki Fumikazu への返信

Re: NAT対応SIMのテスト 本番 仕切り直し

- fuugetu flowerbird の投稿

ようやく実験が再開できる環境が整いましたので新しい設定方法で
実験を再開しました。
グリッド接続を試みましたが残念ながらうまく稼働しません。

前回の様にいったんアバターがシムに入ることができますが外に出られません。

それどころかアバターがシム内に入ると、アバターの持っている衣類や
装着しているアイテムのテクスチャを見失い真っ白になっていきます。
(ターミナルの方では鬼のようにテクスチャーが不明とのログが流れます)

前回より症状は良くありませんでした。

結果:
JOGridへの接続 〇
アバターのリージョンへのテレポート 〇
アバターのリージョンから戻る ×  ←私リログして別リージョンに脱出
オブジェクトの制作 〇
地形の改変 〇


 使用環境:ルーター:Aterm WH862A                
      使用サーバー Ubuntu14.04 intel x86系
      接続リージョン名 fuutest2 ←マップで検索できるはずです

この状態のままサーバーをしばらく稼働いたしますのでご興味あればお試しください。
(ただし、真っ白になるかもしれないのでご注意ください)

しばらくしてアバターが真っ白になるようであれば、
すぐあきらめてログアウトすることをお勧めします。
別リージョンに改めてログインしてください。

 

fuugetu flowerbird への返信

Re: NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿

すみません.

仕様を変更しましたので,hosts ファイルを必ず記述してください

 

(Capability の URL を全て書き換えるのに限界を感じたため.)

 

Iseki Fumikazu への返信

無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- fuugetu flowerbird の投稿

NAT対応SIMのテストですが、無事接続が確認できましたのでご報告いたします。

不具合の原因は私の思い違いで重要な部分が設定されていなかったのです。

具体的にはIsekiさんからご指摘いただいた、hostsファイルの記述が適正になされていませんでした。

私はhostsファイルを書き込む対象がてっきりサーバーだと勘違いして、サーバーのubuntu機のhostsファイルに記述していたのです。これは間違いで、ビュアーにつかってるクライアント機のhostsファイルに記述するべきものでした。

Region.ini 等の設定時の注意事項 

 

  • Viewerを起動するPC上の hosts ファイルの内容を必ず記述してください.

    ↑この部分です。これを何を勘違いしたか同じLAN配下にあるサーバーで設定する必要があるのだと
    勘違いしてしまいました。今はただ赤面するばかりですが、他のみなさまはお間違えないよう。

この意味は接続しているサーバーのhostsファイルではなく、クライアントビュアー側のPCのhostsファイルに設定するということです。(多くの方はクライアントビュアーにWindowsやマックをお使いになってられる?)

因みに注意事項にも書かれているようにWindowsの場合はC:\Windows\System32\drivers\etc\hostsにあります。私はWin8.1でユーザーで普段使っているので、管理者として編集する必要がありました。

Windows 8/8.1でhostsファイルを編集する方法。と、「管理者として実行」について

                                                      TeraDasより

    ↑その方法はこちらを参考にさせていただきました。

この件についてはin worldでも沢山の方からアドバイスいただきました。この場をお借りしてお礼申し上げます。

これを機会にOpenSim接続が可能になって参加する人が少しでも増えるといいですね。

 

添付 Snapshot_001.jpg
fuugetu flowerbird への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿

fuugetu さん,Darwin さん その他みなさん.

実験にご協力いただきありがとうございます.v(^^

hosts ファイルの件は分かり辛くで申し訳ありませんでした.

今後もよろしくお願いします.

Iseki Fumikazu への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Xpyoda Janus の投稿

昨晩、NATループバック対応のBaffalo BBR-4HGから、非対応のBaffalo WHR-HP-G300Nにつなぎ変えて、opensim-0.8.1-nat-0.91を動かしてみました。「Darwins_NAT_SIM」というリージョンがそれです。
また、こちらのネットワークは、フレッツ光プレミアムで、その接続関係は次の通りです。

ネットワーク接続図

私のところは、FreeBSDで動かしているので、opensim-0.8.1-nat-0.91.zipをバイナリー展開したものに、FreeBSD用のlibode と libopenjpeg-dotnet libsqlite3.so を追加してます。ソースコードにパッチを当てて、ビルドし直したわけではありません。
「Region.ini 等の設定時の注意事項」にあった通り、Regions.ini と、Viwer側のhostsファイルも設定しました。

結論からいうと、うまく動作し、LAN内にある自分のOpenSimサーバーにTPできます。
ただし、http://www.jogrid.net/wi/mod/forum/discuss.php?d=198 でレポートしたのと同様な状態が現在発生しており、
ログイン時に、Darwins_NAT_SIM をホームとして接続できません。起動まで1分くらいかかって、「JOG Center Sim」に飛ばされます。

「JOG Center Sim」からは、自分の「Darwins_NAT_SIM」にはTPできません。しかし、その南の「SandBox」からは、まったく問題なくTPできます。
他のメンバーの方のリージョン間のTPも問題ありません。
「JOG Center Sim」周辺のリージョンから「Darwins_NAT_SIM」には、TPできるものとできないものがあるようです (以前のレポートとは微妙にできる・できないが異ってたりしますが...)。

自宅のLAN内以外の、まったく異なる別のネットワークからも接続してみましたが同様でした(実は今日、休日出勤www)。

ただし、「JOG Center Sim」からは、自分の「Darwins_NAT_SIM」にはTPできないというのは、
以前もあったので、今回のopensim-0.8.1-nat-0.91とは直接関係ないのでは、と思われます。


あと、今回の件とは関係ないかもしれませんが、Kimikoさんの「kimiko_c」に「Darwins_NAT_SIM」からTPしようとすると、ビュアーに「テレポートに失敗しました。Internal error」と表示されて、その時にコンソールに、

15:17:50 - [ENTITY TRANSFER MODULE]: Exception on teleport of Next Darwin from <120.6505, 124.7494, 25.06523>@Darwins_NAT_SIM to <128, 128, 1.5>@kimiko_c: Could not resolve host 'opensim1'  at System.Net.Dns.Error_11001 (System.String hostName) [0x00000] in /usr/ports/lang/mono/work/mono-3.12.1/mcs/class/System/System.Net/Dns.cs:296
  at System.Net.Dns.hostent_to_IPHostEntry (System.String originalHostName, System.String h_name, System.String[] h_aliases, System.String[] h_addrlist) [0x00082] in /usr/ports/lang/mono/work/mono-3.12.1/mcs/class/System/System.Net/Dns.cs:324
  at System.Net.Dns.GetHostByName (System.String hostName) [0x0002a] in /usr/ports/lang/mono/work/mono-3.12.1/mcs/class/System/System.Net/Dns.cs:425
  at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00061] in /usr/ports/lang/mono/work/mono-3.12.1/mcs/class/System/System.Net/Dns.cs:384
  at System.Net.Dns.GetHostAddresses (System.String hostNameOrAddress) [0x00065] in /usr/ports/lang/mono/work/mono-3.12.1/mcs/class/System/System.Net/Dns.cs:410
  at OpenSim.Framework.NetworkUtil.IsInternalSubnet (System.Net.IPAddress address) [0x00007] in /usr/local/opensim-0.8.1-source/OpenSim/Framework/NetworkUtil.cs:332
  at OpenSim.Framework.NetworkUtil.GetEffectiveIP (System.Net.IPAddress viewer, System.Net.IPAddress internalIP, System.Net.IPAddress externalIP, System.Net.IPAddress myExternalIP) [0x00048] in /usr/local/opensim-0.8.1-source/OpenSim/Framework/NetworkUtil.cs:312
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.DoTeleportInternal (OpenSim.Region.Framework.Scenes.ScenePresence sp, OpenSim.Services.Interfaces.GridRegion reg, OpenSim.Services.Interfaces.GridRegion finalDestination, Vector3 position, Vector3 lookAt, UInt32 teleportFlags) [0x001c5] in /usr/local/opensim-0.8.1-source/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:758
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.TeleportAgentToDifferentRegion (OpenSim.Region.Framework.Scenes.ScenePresence sp, UInt64 regionHandle, Vector3 position, Vector3 lookAt, UInt32 teleportFlags, OpenSim.Services.Interfaces.GridRegion& finalDestination) [0x0014c] in /usr/local/opensim-0.8.1-source/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:584
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.Teleport (OpenSim.Region.Framework.Scenes.ScenePresence sp, UInt64 regionHandle, Vector3 position, Vector3 lookAt, UInt32 teleportFlags) [0x0010c] in /usr/local/opensim-0.8.1-source/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:443

というエラーがでました。Could not resolve host 'opensim1' とありますが、この 'opensim1'というのは、私がOpenSim.exeを動かしている FreeBSDのJail環境内の(hostnameコマンドで取得できる)ホスト名です。 jail環境内の /etc/hosts ファイルには、opensim1を書いていませんでした(書いとくべきでした... ^_^;)。
ですので、

  /etc/hosts:
    192.168.1.2  opensim1

という行を書き加えたら、問題なく「kimiko_c」と「Darwins_NAT_SIM」の間でTPできるようになりした。
しかし、上記の行を書き加えなくても「Sandbox」との間では、TPできてたので、そこはちょっと謎ですwww。

あと、テストで、Kimiko Doverさん、はじめ他のJOGridメンバーの方のリージョンにTPさせてもらってます。怪しいものではありませんですwww


では、もうすこし様子を見てみます。

Xpyoda Janus への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿

Xpyodaさん.レポートありがとうございます.

 

皆さん.現在,Standalone HyperGrid にも対応したバージョンを掲載しております.

ご興味のある方はお試しください.

 

Iseki Fumikazu への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- fuugetu flowerbird の投稿

>現在,Standalone HyperGrid にも対応したバージョンを掲載しております.

すごいですね。私にそれができるかわかりませんが、一度挑戦してみたいものです^^

掲載カ所を教えてください。

fuugetu flowerbird への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿

すみません.

肝心な事を書き忘れました (^^;

http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?OpenSim%2FPatch%20for%20OpenSim%20in%20NAT

です.よろしくお願いします,

Iseki Fumikazu への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Xpyoda Janus の投稿

 

opensim-0.8.1-nat-0.92-JOG.zip をテストしました。

テストした環境

1つのサーバー上に、ポートを分けてOpenSim-AとOpenSim-Bの2つ同時に立ち上げています。
OpenSim-A、OpenSim-Bは、マップ上で隣り合っています。

OpenSimのマップ配置

OS:    FreeBSD 8.4-RELEASE-p26
Mono: 3.12.1
ルータ: Baffalo WHR-HP-G300N (NATループバック非対応)
OpenSim-A: mysim.example.jp (TCP:9020, UDP: 9020-9021, リージョン2つ)
    opensim-0.8.1-nat-0.92-JOG.zip のバイナリに、
    FreeBSD用のlibode, libopenjpegを追加したもの。

OpenSim-B: mysim.example.jp (TCP:9000, UDP: 9000, リージョン1つ)
    http://www.osgrid.org/index.php/downloads からダウンロードしたOSGridの開発版 0.8.2-Dev
    (OSgrid OpenSimulator 0.8.2.dev.83e58eb - [31.8mb] 03-17-2015) に、opensim_nat_0.8.1-0.92.patch を適用し、
    FreeBSDでビルドしなおしたものに、FreeBSD用のlibode, libopenjpegを追加したもの。

(1) OpenSimサーバーと同一LAN内のビュアーからのアクセス

OpenSim-A・OpenSim-Bの両方とも、同一LAN内のビュアーからアクセスできました。
しかし、OpenSim-AからOpenSim-Bは見えませんしTeleport(以下TP)もできません。
またOpenSim-Bからも同様です。

(1-1) JOG Center SIM を経由したTP

OpenSim-A --> JOG Center SIM --> OpenSim-B
OpenSim-B --> JOG Center SIM --> OpenSim-A

というように、JOG Center SIMを経由すると、問題なくスムーズにTPできます。

(1-2) JOG Center SIM を経由しないTP

JOG Center SIMではなく、NAT対応していないと思われるSIMを経由しようとすると、TPできないことがあります。

OpenSim-A --> 他のSIM --> ダメ(×) OpenSim-A
OpenSim-A --> 他のSIM --> ダメ(×) OpenSim-B
OpenSim-B --> 他のSIM --> ダメ(×) OpenSim-A
OpenSim-B --> 他のSIM --> ダメ(×) OpenSim-B

(他のSIMには、Tomoyoさんのリージョンを利用させてもらいました....どうもありがとう)。

あと、この場合、OpenSim-Bに戻ると、服が一部ぬげてしまうことがあったり、そこからTPしようとしても、「テレポートに失敗しました。 Internal error」とビュアーに表示され、どこにも行けなくなることが(たまに)ありました。この時、OpenSimのコンソールには次のようなエラーがでています。

01:26:43 - [ENTITY TRANSFER MODULE]: Exception on teleport of Next Darwin from <128.0045, 127.9693, 25.93188>@Darwins_NAT_SIM to <128, 128, 28.97377>@JOG Center Sim: Object reference not set to an instance of an object  at OpenSim.Region.Framework.Scenes.SceneObjectGroup.CopyRootPart (OpenSim.Region.Framework.Scenes.SceneObjectPart part, UUID cAgentID, UUID cGroupID, Boolean userExposed) [0x00009] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs:1793
  at OpenSim.Region.Framework.Scenes.SceneObjectGroup.Copy (Boolean userExposed) [0x0003e] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs:1724
  at OpenSim.Region.Framework.Scenes.SceneObjectGroup.CloneForNewScene () [0x00003] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs:3893
  at OpenSim.Region.CoreModules.Avatar.Attachments.AttachmentsModule.CopyAttachments (IScenePresence sp, OpenSim.Framework.AgentData ad) [0x00060] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs:240
  at OpenSim.Region.Framework.Scenes.ScenePresence.CopyTo (OpenSim.Framework.AgentData cAgent) [0x0027f] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/Framework/Scenes/ScenePresence.cs:3986
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.TransferAgent_V2 (OpenSim.Region.Framework.Scenes.ScenePresence sp, OpenSim.Framework.AgentCircuitData agentCircuit, OpenSim.Services.Interfaces.GridRegion reg, OpenSim.Services.Interfaces.GridRegion finalDestination, System.Net.IPEndPoint endPoint, UInt32 teleportFlags, UInt32 oldRegionX, UInt32 newRegionX, UInt32 oldRegionY, UInt32 newRegionY, System.String version, System.String& reason) [0x00323] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:1226
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.DoTeleportInternal (OpenSim.Region.Framework.Scenes.ScenePresence sp, OpenSim.Services.Interfaces.GridRegion reg, OpenSim.Services.Interfaces.GridRegion finalDestination, Vector3 position, Vector3 lookAt, UInt32 teleportFlags, IClientAPI client) [0x0050c] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:873
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.TeleportAgentToDifferentRegion (OpenSim.Region.Framework.Scenes.ScenePresence sp, UInt64 regionHandle, Vector3 position, Vector3 lookAt, UInt32 teleportFlags, OpenSim.Services.Interfaces.GridRegion& finalDestination, IClientAPI client) [0x0014e] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:592
  at OpenSim.Region.CoreModules.Framework.EntityTransfer.EntityTransferModule.Teleport (OpenSim.Region.Framework.Scenes.ScenePresence sp, UInt64 regionHandle, Vector3 position, Vector3 lookAt, UInt32 teleportFlags, IClientAPI client) [0x0010e] in /usr/home/opensim/opensim/JOGrid/NAT/opensim-83e58eb_NAT/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs:446
01:26:43 - [ENTITY TRANSFER STATE MACHINE]: Agent with ID b15da3f0-22b0-444f-a42f-e921d80cccd7 should not exit directly from state Transferring, should go to CleaningUp state first in Darwins_NAT_SIM
01:26:43 - [ENTITY TRANSFER STATE MACHINE]: Agent b15da3f0-22b0-444f-a42f-e921d80cccd7 cleared from transit in Darwins_NAT_SIM

いったん、こうなると、JOG Center SIM にもTPできなくなるので、ビュアーを再起動する必要があります。

(2) 外部ネットワークのビュアーからのアクセス

OpenSim-A・OpenSim-Bの両方とも、同一LAN内のビュアーからアクセスできました。
(1)と同様に、OpenSim-AからOpenSim-Bは見えないしTPもできません。逆も同様です。

(2-1) JOG Center SIM を経由したTP

OpenSim-A --> JOG Center SIM --> OpenSim-B
OpenSim-B --> JOG Center SIM --> OpenSim-A

というように、JOG Center SIMを経由すると、問題なくスムーズにTPできるのは(1)と同じです。

(2-2) JOG Center SIM を経由しないTP

これは、(2-1)と同様に、JOG Center SIMではなく、NAT対応していないと思われるSIMを経由していても、問題なくTPができています。

 

(3) その他

OpenSimを隣接して2つ立ち上げてるから、問題がおこるのかもしれません。
隣り合ったSIMどうしは、相互に通信してて、リージョンに配置されるオブジェクトやアバターの情報をやり取りしてますから...。

あと、NAT対応版OpenSimを、StandAloneHGモードで動作させるのは、まだやってません。また今度やってみます。

最終的には、NATループパック対応のBBR-4HGに戻すとは思いますが、もうちょっと、この状態で動かしてみます。

Xpyoda Janus への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Xpyoda Janus の投稿

すいません、追加と訂正があります。

追加:

使用OpenSimビュアー:
    Firestorm 4.6.7 (42398) Aug 12 2014 02:06:18 (Firestorm-Releasex64) with OpenSimulator support

 

訂正:

(2) 外部ネットワークのビュアーからのアクセス

(誤) OpenSim-A・OpenSim-Bの両方とも、同一LAN内のビュアーからアクセスできました。
---
(正) OpenSim-A・OpenSim-Bの両方とも、外部ネットワークのビュアーからアクセスできました。

 

Xpyoda Janus への返信

Re: 無事成功っ!Re: NAT対応SIMのテスト 本番 仕切り直し

- Iseki Fumikazu の投稿

詳細なレポートをありがとうございました.

>> OpenSim-AからOpenSim-Bは見えませんしTeleport(以下TP)もできません。
>> またOpenSim-Bからも同様です

このパターンは考慮していなかったのですが,おそらく実装は結構面倒だと思います.たぶん私の能力限界を超えています.すみません.

>> JOG Center SIMではなく、NAT対応していないと思われるSIMを経由しようとすると、TPできないことがあります。

これは,「できることもある」という解釈で良いでしょうか?

まだ何か見落とし個所があるのかもしれません.時間ができたらチェックしてみます.