#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/EntityTransfer/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/EntityTransfer/EntityTransferModule.cs *** Caps [#i7b35e3d] - %%OpenSim/Capabilities/Caps.cs%% -- %%HostName を書き換え可能にする%% - %%OpenSim/Region/CoreModules/Framework/Caps/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 では未実装!!