#author("2024-09-02T05:25:33+00:00","default:iseki","iseki")
** NATループバック機能つきルータ [#tbe916c1]
- バッファロー
-- BBR-4MG
-- BBR-4HG
- Yamaha
-- RT-57i
-- RT-58i

** サーバの NAT 越え [#n297f426]
- UDP でのアドレス通知は無くなった(プロトコルとしては残っているが,使われなくなった)
- InternalAddress の使い方が簡単になった.(というか殆ど使用されていない)


*** ServerIPAddress [#w8cc96d3]
- OpenSim/Framework/RegionInfo.cs
- OpenSim/Services/Interfaces/IGridService.cs
-- ''DB の regions の Token を間借り (InternalIPAddess を入れる)''

**** IGridService.cs [#cdda68b5]
- OpenSim.exe
-- public GridRegion(Dictionary<string, object> kvp)
--- 他のリージョンの情報を得る
-- public Dictionary<string, object> ToKeyValuePairs()
--- 自分のリージョンの情報を書き込む

- Robust.exe
-- public GridRegion(Dictionary<string, object> kvp)
--- 他のリージョンの情報を得る
-- public Dictionary<string, object> ToKeyValuePairs()
--- ???


***  NetworkUtil.cs [#g5a13aae]
- OpenSim/Framework/NetworkUtil.cs

*** sim_ip [#gd3d56e1]
- OpenSim/Services/LLLoginService/LLLoginResponse.cs 


*** SimIP [#b0fe82a7]
- OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
-- CrossRegion(ulong newRegionHandle, Vector3 pos, Vector3 lookAt, IPEndPoint externalIPEndPoint, string capsURL)
--- OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
--- %%OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs%%
-- SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID, uint flags, string capsURL)
--- OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/EntityTransferModule.cs

- OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
-- CrossRegion() : newRegionExternalEndPoint
-- TeleportFinishEvent() : regionExternalEndPoint


*** IP [#o8cf94ba]
- OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
-- EnableSimulator(ulong handle, IPEndPoint endPoint, UUID avatarID, int regionSizeX, int regionSizeY)
--- OpenSim/Region/CoreModules/Framework/Ent​ityTransfer/EntityTransferModule.cs


*** Caps [#i7b35e3d]
- %%OpenSim/Capabilities/Caps.cs%%
-- %%HostName を書き換え可能にする%%
- %%OpenSim/Region/CoreModules/Framework/Cap​s/CapabilitiesModule.cs%%
-- %%接続してきた Viewer のアドレスを直接知ることができない.%%
-- %%aCircuit (AgentCircuitData) の Channel から Region のプライベートアドレス情報を取り出す%%
- %%OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs%%

- %%OpenSim/Services/LLLoginService/LLLoginService.cs%%
-- %%''aCircuit (AgentCircuitData) の Channel に Region のプライベートアドレス情報を載せる ''%%


*** Uploader [#zaa53f1d]
- %%OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs%%
-- %%接続してきた Viewer のアドレスを直接知ることができない.%%
-- %%aCircuit (AgentCircuitData) の Channel から Region のプライベートアドレス情報を取り出す%%


*** Private IP 情報 [#sbda997c]
- hash[]
-- OpenSim/Server/Handlers/Hypergrid/HypergridHandlers.cs
-- OpenSim/Server/Handlers/Hypergrid/UserAgentServerConnector.cs
-- OpenSim/Services/Connectors/Hypergrid/GatekeeperServiceConnector.cs
-- OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs

*** Teleport [#w826f36a]
- OpenSim/Region/Framework/Interfaces/IEntityTransferModule.cs
- OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
- OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
- OpenSim/Region/Framework/Scenes/Scene.cs
- OpenSim/Region/CoreModules/Avatar/Lure/HGLureModule.cs

**** 通常のTeleport [#y72e49f1]
- Scene.cs: RequestTeleportLocation()
- Teleport()
- TeleportAgentToDifferentRegion()
- DoTeleportInternal()

**** Telepot to Home [#y99bf8b4]
- OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs 
- TeleportHome()
- DoTeleport()
- DoTeleportInternal()


** -- OLD -- サーバの NAT 越え -- OLD -- [#gc815299]

*** ExternalHostName [#xad48784]
- ExternalIPAddress を定義して,ExternalHostName と明確に役目を分離
- ExternalHostName : CAP用 URL生成に使用
- ExternalIPAddress : UDP通信のためのサーバIP通知に使用.NATの外側のアドレス
- 関連ファイル
--OpenSim/Framework/RegionInfo.cs
--- ExternalIPAddress を定義 
--OpenSim/Framework/Communications/Clients/GridClient.cs
--OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
--OpenSim/Services/Interfaces/IGridService.cs
--OpenSim/Data/RegionProfileData.cs
---serverIP -> serverName
---serverIPadr を新しく定義
--OpenSim/Data/RegionProfileServiceProxy.cs
--OpenSim/Data/MySQL/MySQLManager.cs
--OpenSim/Data/MSSQL/MSSQLGridData.cs
--OpenSim/Data/SQLite/SQLiteManager.cs
--OpenSim/Grid/GridServer.Modules/GridXmlRpcModule.cs
--OpenSim/Grid/GridServer.Modules/GridRestModule.cs
--OpenSim/Region/Framework/Scenes/Scene.cs
--OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
--OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs

--OpenSim/Framework/NetworkUtil.cs
--- GetIPformString() を追加
--- GetNATIP() を追加
--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
--OpenSim/Grid/UserServer.Modules/UserLoginService.cs
--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
--OpenSim/Client/Linden/LLStandaloneLoginService.cs


*** NATの外側と内側へのUDPアドレスの通知[#bb09451c]
- 外側へは ExternalIPAddress を通知
- 内側へは InternalEndPoint.IPAddress または ローカルIP(自動取得)を通知
- Opensim/Framework/NetworkUtil.cs
-- GetNATIP() を作成

**** sim_ip (login) [#z711be6e]
- OpenSim/Framework/Communications/Services/LoginResponse.cs
- OpenSim/Client/Linden/LLStandaloneLoginService.cs
-- SimAddress
-- OpenSim/Grid/UserServer.Modules/UserLoginService.cs
--- PrepareLoginToRegion(RegionProfileData regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)
-- OpenSim/Client/Linden/LLStandaloneLoginService.cs
--- PrepareLoginToRegion(RegionInfo regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)

**** sim-ip-and-port [#u82f1ea4]
- OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs:  
-- EstablishAgentCommunication(UUID agentID, ''string simIpAndPort'', string seedcap)
-- OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs
--- EstablishAgentCommunication(UUID avatarID, ''IPEndPoint endPoint'', string capsPath)
--- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
---- InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, GridRegion reg, ''IPEndPoint endPoint'', bool newAgent)
----- EnableNeighbourChildAgents(ScenePresence avatar, List<RegionInfo> lstneighbours)
----- InformNeighborChildAgent(ScenePresence avatar, GridRegion region)
**** SimIP (CrossRegion, TeleportFinish)[#f82b2f72]
-OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
-- CrossRegion(ulong handle, Vector3 pos, Vector3 lookAt, ''IPEndPoint newRegionExternalEndPoint'', string capsURL, UUID agentID, UUID sessionID)
-- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
--- ScenePresence CrossAgentToNewRegionAsync(ScenePresence agent, Vector3 pos, uint neighbourx, uint neighboury, bool isFlying)

-- TeleportFinishEvent(ulong regionHandle, byte simAccess, ''IPEndPoint regionExternalEndPoint'', uint locationID, uint flags, string capsURL, UUID agentID)
-- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
--- RequestTeleportToLocation(ScenePresence avatar, ulong regionHandle, Vector3 position, Vector3 lookAt, uint teleportFlags)

**** IP (EnableSimulator)[#u428c951]
- OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
-- EnableSimulator(ulong handle, IPEndPoint endPoint)
-- OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
--- InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, GridRegion reg, ''IPEndPoint endPoint'', bool newAgent)
---- EnableNeighbourChildAgents(ScenePresence avatar, List<RegionInfo> lstneighbours)
---- InformNeighborChildAgent(ScenePresence avatar, GridRegion region)


*** 注意: NetworkUtil [#t507a618]
- static NetworkUtil() で address.''IPv4Mask'' は mono では未実装!!



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