Shinobar Martinek によって開始されたディスカッション

JOG Center Sim にはすでに Yan さんによるハイパーグリッドへのTP看板群がありますが、このほど私がよく利用しているOpenSim世界内のショップへのTP看板を設置しました。OSG内のショップガイドともどもご利用ください。

この中で Clutterfly は、OpenSim界で有名なクリエーター Linda Kellie さんが 最近Metropolis内にオープンしたものです。ほとんどすべての商品がフルパーミッションです。JOG内の Avatar Center や Funiture などの商品のほとんどは Linda Kellie の作品。

JOG Center Sim にはJOG内ショップガイドも設けています。ハイパーグリッドともども、自薦他薦、情報をお寄せください。

い。JOG Center SimにあるTP看板

 

バグレポート ダイナミックDNSにおけるTP障害について などで報告しているように、Dynamic DNSを用いた自宅サーバーにおいて、自宅サーバーのIPが変更されると、テレポートに障害が出ます。この問題の調査は継続中ですが、シノバーのSIM群では次のような応急的対処をしています。参考までに紹介します。

要はROBUSTサーバーなどにDNSを引かせないように、Region.ini に記載される ExternalHostName にFQDNではなく、直接グローバルIPを書き込んでしまいます。

添付のスクリプトは SIMサーバー起動時にグローバルIPを調べ、Regions.ini を書き換えます。グローバルIPが変わるたびにこのスクリプトを起動すればよいのですが、現在はこのスクリプト起動を手動で行ってますす。SIMサーバーを外から正常終了させる方法が分からないので。良い方法があればお教えください。killall mono とかで強制的にシャットダウンさせても問題はないのかも?

添付スクリプトで外部IPの取得には icanhazip.com を利用してます、IPアドレスを返してくれるようです。特権ユーザ rootで動作するパピーリナックスで書いていますので、SIMサーバーを非特権ユーザである opensim で実行するよう細工しています。もともと非特権ユーザで起動される環境では、そこのところは修正してください。シェルは bash です、

#!/bin/sh

# see my location
MYNAME=$(basename $0)
TMPFILE=/tmp/$MYNAME.txt
APP=$(readlink -e $0)
[ "$APP" ] || APP=$0
APPDIR=$(dirname "$APP")
[ "$APPDIR" = "." ] && APPDIR=$(pwd)
GUEST_PREFIX=$APPDIR/opensim-0.8.2.1-jog
GUEST_BINDIR=$GUEST_PREFIX/bin
REGIONFILE=$GUEST_BINDIR/Regions/Regions.ini

#rewrite IP
if [ ! -r "$REGIONFILE" ]; then
  echo "'$REGIONFILE' not found."
  exit 1
fi
if [ ! -w "$REGIONFILE" ]; then
  echo "'$REGIONFILE' rewriting denied.."
  exit 1
fi
echo "Trying to get the external IP..."
EXTERNALIP=$(wget -t 3 -O - -q icanhazip.com)
if [ -z "$EXTERNALIP" ]; then
  echo "External IP cannot obtained."
  exit -1
fi
sed -e 's/ExternalHostName.*$/ExternalHostName = '$EXTERNALIP'/g' "$REGIONFILE" > "$TMPFILE"
if [ ! -s "$TMPFILE" ]; then
  echo "Rewriting failed."
  exit 1
fi
mv -f "$TMPFILE" "$REGIONFILE"
echo "'$REGIONFILE' updated."

# clear old stuff
rm -f "$GUEST_BINDIR"/OpenSim.log*
rm -fr "$GUEST_BINDIR"/assetcache

#launch opensim
chown opensim.opensim -R "$GUEST_BINDIR"
export PATH="$PATH:$GUEST_BINDIR"
export HOME="$APPDIR"
cd "$GUEST_BINDIR"
sudo -u opensim mono OpenSim.exe

コミュニティ フォーラム -> 一般の話題 -> 国際線就航

- Shinobar Martinek の投稿

これまでシノバー内の島を結んでいた紙飛行機ですが、このたび OSGや Metropolis などのハイパーグリッドへも飛べるようにしました。紙飛行機で飛べるのかという不安はさておき…。

Shinobar Annex 西方にあります。紙飛行機でなくてもテレポートゲートでも行けるんですけどね。

Japan Open Town や しのぐり へも飛べますよ。

紙飛行機

DDNS(Dynamic DNS)を用いた自宅サーバーにおいて、自宅サーバーのIPが変更されると、次のような障害が出ます。

何度も報告されていますが、たとえば https://www.jogrid.net/wi/mod/forum/discuss.php?d=349

1.  自宅サーバーのSIMに直接ログインができない。JOG Center Sim に飛ばされる。

2. JOG Center Sim から自宅サーバーのSIMにテレポートできない。他のSIMを経由することでテレポートできる場合がある

後者は JOG Center Simが再起動されるまで続き、前者は ROBUSTサーバーが再起動されるまで続きます。

この理由は、ROBUSTサーバーやSIMサーバーがDNSをキャッシュしており、それぞれのサーバーが再起動するまでキャッシュが更新されないからと、解釈されてきました。キャッシュが更新されないのはそれぞれのサーバーに問題があるのか、mono の問題なのか判然としておりません。

しかし、この理由の解釈に私は疑問を抱いています。何度かの経験で、KasumiBeachからは必ずTPできたことなどからです。

そこで実験用に自前グリッド shinogrid を立ち上げました。結論から言うと、JOGで起きているTP障害のうち、少なくともROBUSTに起因すると思われる上記1のような障害は shinogrid では起きていません。SIMサーバーに起因すると思われる上記2の障害は発生するものの、SIMサーバーを再起動しなくても、そのうち復帰し(どのタイミングなのか判然としません)、問題なくTPできるようになります。

shinogrid のROBUSTサーバーとWelcome Area である Shinobar SIMサーバーはカゴヤクラウドVPSによる固定IPです。周辺SIMである Shinobar North, Shinobar East, Shinobar South は自宅サーバーで、DDNSを利用しています。

Shinobar SIMサーバーおよびROBUST:

hg.shinobar.server-on.net

カゴヤクラウド VPS

Ubuntu 14.04

mono 3.2.8

OpenSim 0.8.2.1

Shinobar North など周辺SIMサーバー:

shinobar.server-on.net

パピーリナックス 571JP (Ubuntu 12.04 互換)

mono 2.10.8

OpenSim 0.8.2.1

 

もとちゃさんのブログを辿り、Isekiさんの助けを借りて、Shinobar Gridを公開できるまでになりましたのでご報告します。

shinogrid サイト http://hg.shinobar.server-on.net/moodle/

shinogrid ログインURL hg.shinobar.server-on.net:8002

OpenSimで起きるいろいろな障害、とりわけ Dynamic DNSを用いた自宅サーバーで起きる問題を調べる上で、固定IPの、自分で管理できる ROBUSTサーバーが欲しいとの思いで立ち上げたものです。同様の実験をしてみたいと思われる方々のために公開しました。実験に参加したいと思われる方はドキュメントをお読みください。

Shinobar Grid は OpenSim ハイパーグリッド・モードの実験のため設置したものです。恒久的な運用を企図したものではありません。突然のサービス停止があり得ることを承知おきください。

JOGやOSGなどのアバターの Shinobar Gridへの訪問はお気軽にどうぞ。現在 JOG Center Sim のハイパーグリッドエリアの奥の壁に shinogridへのTP看板を設置しています。

しのぐりログイン画面