[openrtm-users 02957] ルータのLAN側にあるRTCの操作

16 個の投稿 / 0 new
最終投稿
tmsimiz
オフライン
Last seen: 8年 4ヶ月 前
登録日: 2011-05-23 10:15
[openrtm-users 02957] ルータのLAN側にあるRTCの操作

皆様

静岡大の清水です。
標記の件で上手くいかずに困っています。
方法をご存じの方がいれば教えて頂けると幸いです。

(やりたいこと)
192.168.0.0/24のネットワーク内にPC1とルータ1があり、
ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
どうすればよいのでしょうか。

少し複雑なので、IPアドレス等を整理します。
・PC1: 192.168.0.10
・ルータWAN側: 192.168.0.11
・ルータLAN側: 192.168.1.1
・PC2: 192.168.1.2
・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809

PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
ただ、RTCとしては何も操作ができません。

おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
分かるが、それがRTObjectとして機能していない状態だと思います。

OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
rtc.confで設定しないといけないようですが、
そこに書いてあるやり方がよくわかりません。

corba.alternate_iiop_addresses の項目なのに、設定例では、
corba.additional_ior_addresses になっていたり、
上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。

# OpenRTM-aistのソースをgrepしてみましたが、
# corba.additional_ior_addresses は指定しても意味がないように見えます。
# corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
# こちらが正しいのはではないかと思いますが、どうなのでしょう。

また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
ネームサーバがないため、
LAN(192.168.1.0/24)内のネームサーバを使うしかありません。

上記の場合、rtc.confをどう書けばよいのでしょうか?
よろしくお願いいたします。

清水

未定義
ysuga
オフライン
Last seen: 1年 8ヶ月 前
登録日: 2011-05-23 10:14
[openrtm-users 02960] ルータのLAN側にあるRTCの操作

清水先生,
菅です.

ルータの向こう側でNATが掛かっていると,基本的にソケットがつながらないので,
RTM以前の問題になってしまうと思います.

一つは,ルータにポートフォワード機能があれば,
それを使うことです.ただ,CORBAで利用するポートがどれなのか僕にはよくわかりません.
もう一つは,ルータにもよりますが,すべてのポートをフォワードする機能があるので,
ルータ内のRTCが動作しているPCに対して,
すべてのパケットを転送すれば解決すると思います.

ルータの下にいくつかのRTCがある場合は,さらに問題が複雑ですね・・・

妙案がある方いらっしゃいますか?

2013年11月20日 20:53 Masayuki Shimizu :
> 皆様
>
> 静岡大の清水です。
> 標記の件で上手くいかずに困っています。
> 方法をご存じの方がいれば教えて頂けると幸いです。
>
> (やりたいこと)
> 192.168.0.0/24のネットワーク内にPC1とルータ1があり、
> ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
> PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
> どうすればよいのでしょうか。
>
> 少し複雑なので、IPアドレス等を整理します。
> ・PC1: 192.168.0.10
> ・ルータWAN側: 192.168.0.11
> ・ルータLAN側: 192.168.1.1
> ・PC2: 192.168.1.2
> ・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
> ・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809
>
> PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
> 192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
> ただ、RTCとしては何も操作ができません。
>
> おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
> 分かるが、それがRTObjectとして機能していない状態だと思います。
>
> OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
> rtc.confで設定しないといけないようですが、
> そこに書いてあるやり方がよくわかりません。
>
> corba.alternate_iiop_addresses の項目なのに、設定例では、
> corba.additional_ior_addresses になっていたり、
> 上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。
>
> # OpenRTM-aistのソースをgrepしてみましたが、
> # corba.additional_ior_addresses は指定しても意味がないように見えます。
> # corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
> # こちらが正しいのはではないかと思いますが、どうなのでしょう。
>
> また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
> ネームサーバがないため、
> LAN(192.168.1.0/24)内のネームサーバを使うしかありません。
>
> 上記の場合、rtc.confをどう書けばよいのでしょうか?
> よろしくお願いいたします。
>
> 清水

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02961] ルータのLAN側にあるRTCの操作

安藤です

すみません、corba.additional_ior_addresses は古いオプション名で
corba.alternate_iiop_addresses が正しいです。Webページの方は直しました。

http://openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7#toc23

この場合、ネームサーバがプライベート側にあるんですね。そうすると
ネームサーバ用だけでなくRTC用にもポートフォワード設定をする必要があります。

1. ポートフォワード設定: 29101→ 192.168.1.2:2810 を追加する
2. PC2のrtc.conf には以下のように記述

corba.nameservers: 192.168.1.2:2809
corba.endpoints: 192.168.1.2:2910
corba.alternate_iiop_addresses: 192.168.0.11:29101

これで、ネームサーバ上のRTCの参照には

- 192.168.1.2:2910
- 192.168.0.11:29101

が含まれることになり、RTSEが 192.168.1.2:2910 にアクセスしてリーチしなかった
場合、つぎに 192.168.0.11:29101 にアクセスしに行き、結果としてルータの内側の
RTCに到達できるはずです。

こちらで試していないので、うまくいくかどうかはわかりませんが、とりあえず
これで試してみていただけないでしょうか。よろしくお願いいたします。

2013年11月20日 20:53 Masayuki Shimizu :
> 皆様
>
> 静岡大の清水です。
> 標記の件で上手くいかずに困っています。
> 方法をご存じの方がいれば教えて頂けると幸いです。
>
> (やりたいこと)
> 192.168.0.0/24のネットワーク内にPC1とルータ1があり、
> ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
> PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
> どうすればよいのでしょうか。
>
> 少し複雑なので、IPアドレス等を整理します。
> ・PC1: 192.168.0.10
> ・ルータWAN側: 192.168.0.11
> ・ルータLAN側: 192.168.1.1
> ・PC2: 192.168.1.2
> ・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
> ・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809
>
> PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
> 192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
> ただ、RTCとしては何も操作ができません。
>
> おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
> 分かるが、それがRTObjectとして機能していない状態だと思います。
>
> OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
> rtc.confで設定しないといけないようですが、
> そこに書いてあるやり方がよくわかりません。
>
> corba.alternate_iiop_addresses の項目なのに、設定例では、
> corba.additional_ior_addresses になっていたり、
> 上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。
>
> # OpenRTM-aistのソースをgrepしてみましたが、
> # corba.additional_ior_addresses は指定しても意味がないように見えます。
> # corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
> # こちらが正しいのはではないかと思いますが、どうなのでしょう。
>
> また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
> ネームサーバがないため、
> LAN(192.168.1.0/24)内のネームサーバを使うしかありません。
>
> 上記の場合、rtc.confをどう書けばよいのでしょうか?
> よろしくお願いいたします。
>
> 清水

suehiro
オフライン
Last seen: 4ヶ月 1週 前
登録日: 2011-05-23 18:56
[openrtm-users 02963] ルータのLAN側にあるRTCの操作

安藤様,清水様,

末廣です.

安藤さんのやり方でRTCにはアクセスできるようになると
思うのですが,それだけで良いのでしょうか?

菅さんが指摘しているように他のcorbaオブジェクトの
iiopを全部書き換えないと入出力ポートやサービスポートは
使えないのではないかと思います.

簡単な代替案としては,vpnなどでトンネルを掘って
rtm用のvirtual lanセグメントを作ってしまうのが
良いのではないでしょうか.

いかがでしょうか.

(2013/11/21 10:28), Ando Noriaki wrote:
> 安藤です
>
> すみません、corba.additional_ior_addresses は古いオプション名で
> corba.alternate_iiop_addresses が正しいです。Webページの方は直しました。
>
> http://openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7#toc23
>
> この場合、ネームサーバがプライベート側にあるんですね。そうすると
> ネームサーバ用だけでなくRTC用にもポートフォワード設定をする必要があります。
>
> 1. ポートフォワード設定: 29101→ 192.168.1.2:2810 を追加する
> 2. PC2のrtc.conf には以下のように記述
>
> corba.nameservers: 192.168.1.2:2809
> corba.endpoints: 192.168.1.2:2910
> corba.alternate_iiop_addresses: 192.168.0.11:29101
>
> これで、ネームサーバ上のRTCの参照には
>
> - 192.168.1.2:2910
> - 192.168.0.11:29101
>
> が含まれることになり、RTSEが 192.168.1.2:2910 にアクセスしてリーチしなかった
> 場合、つぎに 192.168.0.11:29101 にアクセスしに行き、結果としてルータの内側の
> RTCに到達できるはずです。
>
> こちらで試していないので、うまくいくかどうかはわかりませんが、とりあえず
> これで試してみていただけないでしょうか。よろしくお願いいたします。
>
>
>
>
> 2013年11月20日 20:53 Masayuki Shimizu :
>> 皆様
>>
>> 静岡大の清水です。
>> 標記の件で上手くいかずに困っています。
>> 方法をご存じの方がいれば教えて頂けると幸いです。
>>
>> (やりたいこと)
>> 192.168.0.0/24のネットワーク内にPC1とルータ1があり、
>> ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
>> PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
>> どうすればよいのでしょうか。
>>
>> 少し複雑なので、IPアドレス等を整理します。
>> ・PC1: 192.168.0.10
>> ・ルータWAN側: 192.168.0.11
>> ・ルータLAN側: 192.168.1.1
>> ・PC2: 192.168.1.2
>> ・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
>> ・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809
>>
>> PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
>> 192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
>> ただ、RTCとしては何も操作ができません。
>>
>> おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
>> 分かるが、それがRTObjectとして機能していない状態だと思います。
>>
>> OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
>> rtc.confで設定しないといけないようですが、
>> そこに書いてあるやり方がよくわかりません。
>>
>> corba.alternate_iiop_addresses の項目なのに、設定例では、
>> corba.additional_ior_addresses になっていたり、
>> 上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。
>>
>> # OpenRTM-aistのソースをgrepしてみましたが、
>> # corba.additional_ior_addresses は指定しても意味がないように見えます。
>> # corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
>> # こちらが正しいのはではないかと思いますが、どうなのでしょう。
>>
>> また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
>> ネームサーバがないため、
>> LAN(192.168.1.0/24)内のネームサーバを使うしかありません。
>>
>> 上記の場合、rtc.confをどう書けばよいのでしょうか?
>> よろしくお願いいたします。
>>
>> 清水

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02964] ルータのLAN側にあるRTCの操作

末廣先生

安藤です

corba.additional_ior_addresses オプションでは、そのプロセスのすべてのオブジェクト
リファレンスに指定のIPアドレスが追加されますので、ポートフォワーディングさえ設定
されていれば一応NATの内と外のRTCを通信させることができます。

#C++,Python版ではomniORBのomniIOR::add_IIOP_ADDRESS()という関数で、
#Java版ではIorのインターセプタを利用して実現しています。

ただ、NAT内のRTCが増えると、その分だけポートフォワーディングを設定する必要が
あるので非常に面倒ではあります。UPnPでポートフォワーディングを自動で設定
する拡張モジュールも作りかけたのですが、途中で止まっています。

VPNなどでトンネリングでネットワークがフラットに見えるようになっていれば
そういった手間がなくて楽ですので、それも一つの手だと思います。
VPNならエンドポイントを固定できるので(できますよね)、DHCPで実アドレスが
変わったりしてもVPNを張りなおせば通信は維持できそうですね。ROSは
そうしているんでしたっけ?

2013年11月21日 10:47 ts :
> 安藤様,清水様,
>
> 末廣です.
>
> 安藤さんのやり方でRTCにはアクセスできるようになると
> 思うのですが,それだけで良いのでしょうか?
>
> 菅さんが指摘しているように他のcorbaオブジェクトの
> iiopを全部書き換えないと入出力ポートやサービスポートは
> 使えないのではないかと思います.
>
> 簡単な代替案としては,vpnなどでトンネルを掘って
> rtm用のvirtual lanセグメントを作ってしまうのが
> 良いのではないでしょうか.
>
> いかがでしょうか.
>
>
> (2013/11/21 10:28), Ando Noriaki wrote:
>> 安藤です
>>
>> すみません、corba.additional_ior_addresses は古いオプション名で
>> corba.alternate_iiop_addresses が正しいです。Webページの方は直しました。
>>
>> http://openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7#toc23
>>
>> この場合、ネームサーバがプライベート側にあるんですね。そうすると
>> ネームサーバ用だけでなくRTC用にもポートフォワード設定をする必要があります。
>>
>> 1. ポートフォワード設定: 29101→ 192.168.1.2:2810 を追加する
>> 2. PC2のrtc.conf には以下のように記述
>>
>> corba.nameservers: 192.168.1.2:2809
>> corba.endpoints: 192.168.1.2:2910
>> corba.alternate_iiop_addresses: 192.168.0.11:29101
>>
>> これで、ネームサーバ上のRTCの参照には
>>
>> - 192.168.1.2:2910
>> - 192.168.0.11:29101
>>
>> が含まれることになり、RTSEが 192.168.1.2:2910 にアクセスしてリーチしなかった
>> 場合、つぎに 192.168.0.11:29101 にアクセスしに行き、結果としてルータの内側の
>> RTCに到達できるはずです。
>>
>> こちらで試していないので、うまくいくかどうかはわかりませんが、とりあえず
>> これで試してみていただけないでしょうか。よろしくお願いいたします。
>>
>>
>>
>>
>> 2013年11月20日 20:53 Masayuki Shimizu :
>>> 皆様
>>>
>>> 静岡大の清水です。
>>> 標記の件で上手くいかずに困っています。
>>> 方法をご存じの方がいれば教えて頂けると幸いです。
>>>
>>> (やりたいこと)
>>> 192.168.0.0/24のネットワーク内にPC1とルータ1があり、
>>> ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
>>> PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
>>> どうすればよいのでしょうか。
>>>
>>> 少し複雑なので、IPアドレス等を整理します。
>>> ・PC1: 192.168.0.10
>>> ・ルータWAN側: 192.168.0.11
>>> ・ルータLAN側: 192.168.1.1
>>> ・PC2: 192.168.1.2
>>> ・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
>>> ・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809
>>>
>>> PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
>>> 192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
>>> ただ、RTCとしては何も操作ができません。
>>>
>>> おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
>>> 分かるが、それがRTObjectとして機能していない状態だと思います。
>>>
>>> OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
>>> rtc.confで設定しないといけないようですが、
>>> そこに書いてあるやり方がよくわかりません。
>>>
>>> corba.alternate_iiop_addresses の項目なのに、設定例では、
>>> corba.additional_ior_addresses になっていたり、
>>> 上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。
>>>
>>> # OpenRTM-aistのソースをgrepしてみましたが、
>>> # corba.additional_ior_addresses は指定しても意味がないように見えます。
>>> # corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
>>> # こちらが正しいのはではないかと思いますが、どうなのでしょう。
>>>
>>> また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
>>> ネームサーバがないため、
>>> LAN(192.168.1.0/24)内のネームサーバを使うしかありません。
>>>
>>> 上記の場合、rtc.confをどう書けばよいのでしょうか?
>>> よろしくお願いいたします。
>>>
>>> 清水
>>> --------------------
>>> Masayuki Shimizu
>>> Assistant Professor
>>> Dept. of Mechanical Engineering, Shizuoka Univ.
>>> 3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
>>> TEL/FAX: +81-53-478-1061
>>> Email: tmsimiz@ipc.shizuoka.ac.jp
>>> _______________________________________________
>>> openrtm-users mailing list
>>> openrtm-users@openrtm.org
>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users@openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
>
>

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02965] ルータのLAN側にあるRTCの操作

末廣先生、清水先生、皆様

安藤です

試しにVPNでRTCをつなぐとどうなるかをやってみました。以下にドキュメントとして
まとめましたので、間違いなどありましたらご指摘ください。ざっとですが
パフォーマンスの比較もしてみました。

http://www.openrtm.org/openrtm/ja/content/rtm_on_vpn_ja

MTU/MRUなどは調整していませんので、確定的なことは言えませんが、
やってみた印象としてはかなり遅いです。WindowsのVPNは遅いという噂も
ありますので、Linuxだけだともう少しましになるかもしれませんが。
あと、WindowsのVPNはちょくちょく切れました。切れるとポートの接続も
切れてしまいました。

VPNに関して何かいい方法ご存知の方いらっしゃいませんか?

2013年11月21日 13:44 Ando Noriaki :
> 末廣先生
>
> 安藤です
>
> corba.additional_ior_addresses オプションでは、そのプロセスのすべてのオブジェクト
> リファレンスに指定のIPアドレスが追加されますので、ポートフォワーディングさえ設定
> されていれば一応NATの内と外のRTCを通信させることができます。
>
> #C++,Python版ではomniORBのomniIOR::add_IIOP_ADDRESS()という関数で、
> #Java版ではIorのインターセプタを利用して実現しています。
>
> ただ、NAT内のRTCが増えると、その分だけポートフォワーディングを設定する必要が
> あるので非常に面倒ではあります。UPnPでポートフォワーディングを自動で設定
> する拡張モジュールも作りかけたのですが、途中で止まっています。
>
> VPNなどでトンネリングでネットワークがフラットに見えるようになっていれば
> そういった手間がなくて楽ですので、それも一つの手だと思います。
> VPNならエンドポイントを固定できるので(できますよね)、DHCPで実アドレスが
> 変わったりしてもVPNを張りなおせば通信は維持できそうですね。ROSは
> そうしているんでしたっけ?
>
>
>
> 2013年11月21日 10:47 ts :
>> 安藤様,清水様,
>>
>> 末廣です.
>>
>> 安藤さんのやり方でRTCにはアクセスできるようになると
>> 思うのですが,それだけで良いのでしょうか?
>>
>> 菅さんが指摘しているように他のcorbaオブジェクトの
>> iiopを全部書き換えないと入出力ポートやサービスポートは
>> 使えないのではないかと思います.
>>
>> 簡単な代替案としては,vpnなどでトンネルを掘って
>> rtm用のvirtual lanセグメントを作ってしまうのが
>> 良いのではないでしょうか.
>>
>> いかがでしょうか.
>>
>>
>> (2013/11/21 10:28), Ando Noriaki wrote:
>>> 安藤です
>>>
>>> すみません、corba.additional_ior_addresses は古いオプション名で
>>> corba.alternate_iiop_addresses が正しいです。Webページの方は直しました。
>>>
>>> http://openrtm.org/openrtm/ja/content/rtcconf%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7#toc23
>>>
>>> この場合、ネームサーバがプライベート側にあるんですね。そうすると
>>> ネームサーバ用だけでなくRTC用にもポートフォワード設定をする必要があります。
>>>
>>> 1. ポートフォワード設定: 29101→ 192.168.1.2:2810 を追加する
>>> 2. PC2のrtc.conf には以下のように記述
>>>
>>> corba.nameservers: 192.168.1.2:2809
>>> corba.endpoints: 192.168.1.2:2910
>>> corba.alternate_iiop_addresses: 192.168.0.11:29101
>>>
>>> これで、ネームサーバ上のRTCの参照には
>>>
>>> - 192.168.1.2:2910
>>> - 192.168.0.11:29101
>>>
>>> が含まれることになり、RTSEが 192.168.1.2:2910 にアクセスしてリーチしなかった
>>> 場合、つぎに 192.168.0.11:29101 にアクセスしに行き、結果としてルータの内側の
>>> RTCに到達できるはずです。
>>>
>>> こちらで試していないので、うまくいくかどうかはわかりませんが、とりあえず
>>> これで試してみていただけないでしょうか。よろしくお願いいたします。
>>>
>>>
>>>
>>>
>>> 2013年11月20日 20:53 Masayuki Shimizu :
>>>> 皆様
>>>>
>>>> 静岡大の清水です。
>>>> 標記の件で上手くいかずに困っています。
>>>> 方法をご存じの方がいれば教えて頂けると幸いです。
>>>>
>>>> (やりたいこと)
>>>> 192.168.0.0/24のネットワーク内にPC1とルータ1があり、
>>>> ルータ1のLAN側(192.168.1.0/24)にあるPC2でRTCが動作しているとします。
>>>> PC1で動くRTSEからPC2のRTCの操作(活性化など)をしたい場合、
>>>> どうすればよいのでしょうか。
>>>>
>>>> 少し複雑なので、IPアドレス等を整理します。
>>>> ・PC1: 192.168.0.10
>>>> ・ルータWAN側: 192.168.0.11
>>>> ・ルータLAN側: 192.168.1.1
>>>> ・PC2: 192.168.1.2
>>>> ・CORBAネームサーバ: 192.168.1.2:2809 (PC2の2809番ポート)
>>>> ・ルータのポートフォワード設定: 28091番ポート => 192.168.1.2:2809
>>>>
>>>> PC2上でRTCを起動させ、PC1のRTSEのネームサーバに
>>>> 192.168.0.11:28091を追加すると、そこにRTCのゾンビオブジェクトが見えます。
>>>> ただ、RTCとしては何も操作ができません。
>>>>
>>>> おそらく、何かのCORBAオブジェクトがPC2のネームサーバに登録されていることは
>>>> 分かるが、それがRTObjectとして機能していない状態だと思います。
>>>>
>>>> OpenRTMのHPの情報では、corba.alternate_iiop_addresses か何かを
>>>> rtc.confで設定しないといけないようですが、
>>>> そこに書いてあるやり方がよくわかりません。
>>>>
>>>> corba.alternate_iiop_addresses の項目なのに、設定例では、
>>>> corba.additional_ior_addresses になっていたり、
>>>> 上記の例のように、違う番号のポートに変換する場合はどうすべきかがわかりません。
>>>>
>>>> # OpenRTM-aistのソースをgrepしてみましたが、
>>>> # corba.additional_ior_addresses は指定しても意味がないように見えます。
>>>> # corba.alternate_iiop_addresses は実際にアドレスを追加する操作をしているので、
>>>> # こちらが正しいのはではないかと思いますが、どうなのでしょう。
>>>>
>>>> また、今回の場合、PC1のサブネット内(192.168.0.0/24)には
>>>> ネームサーバがないため、
>>>> LAN(192.168.1.0/24)内のネームサーバを使うしかありません。
>>>>
>>>> 上記の場合、rtc.confをどう書けばよいのでしょうか?
>>>> よろしくお願いいたします。
>>>>
>>>> 清水
>>>> --------------------
>>>> Masayuki Shimizu
>>>> Assistant Professor
>>>> Dept. of Mechanical Engineering, Shizuoka Univ.
>>>> 3-5-1, Johoku, Naka-ku, Hamamatsu 432-8561, JAPAN
>>>> TEL/FAX: +81-53-478-1061
>>>> Email: tmsimiz@ipc.shizuoka.ac.jp
>>>> _______________________________________________
>>>> openrtm-users mailing list
>>>> openrtm-users@openrtm.org
>>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>> _______________________________________________
>>> openrtm-users mailing list
>>> openrtm-users@openrtm.org
>>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>>
>>
>>

kumagai@tjcc.to...
オフライン
Last seen: なし 前
登録日: 2012-01-29 15:20
[openrtm-users 02969] ルータのLAN側にあるRTCの操作

東北学院の熊谷です。

> VPNに関して何かいい方法ご存知の方いらっしゃいませんか?

について、RTMを通したことはまだなかったとおもいますが、いま、自分で
使っている方法をご参考までお知らせします。

・各プライベートネットにLinuxサーバを一台おいておく
 ※RaspPiでもいけそうな気はする
・pppをssh上で通す
 pppd pty 'ssh SERVER /usr/sbin pppd OPTIONS' pppdオプション
・staticなルートを設定する

です。これで大学自室、家、実験室のローカルネットを基本的にすべて
同一のローカルネットとして使えます。
(もちろん、実験室から家には到達できないように、ハブとなる教員室で
 ルーティングは制限)

これにより、
・sshやWindowsのファイル共有など、ポートごとの管理をせずに、一括して
 つかえる。
・プライベート内のWindowsPC−遠隔のNASなど、サーバ以外もぜんぶ
 トンネルしてくれる。
・経路はsshで暗号化でたぶんセキュア
とできます。
原理的にはRTMも使えるはずです。

ただし、Windowsパソコン@教員室から実験室のサーバまでpingが5msくらい
(Linuxサーバ間でも4.7msくらい)、家までだと調子いいと25msくらい、と
当然、そこそこかかりますので、リアルタイムのループにいれるのはちょっと
つらく、計測データを広域に届ける、あるいはリモートブレインする、程度の
制約になるとおもいます。

その他詳細:
・実際にはLinuxサーバは表には無く、ブロードバンドルータの
 バーチャルサーバ機能でsshなどだけ、サーバに渡しています。
・いっぱつでつながらないことも多く、再接続も必要なので、
 リトライ付きのスクリプトにして、監視しています。
・大学→家は、そのまえに大学のファイアウォール上の外向きssh踏み台に
 いちどsshして、その内側で家までのsshをかけるという三重パイプ
 構造になっています。
・さすがにWindowsのファイル共有はpingが遅いと極端にパフォーマンスが
 おちるので、家と大学のNASの相互バックアップなどは、Linuxサーバで
 マウントして、rsyncです。

SoftEtherというご提案もありましたが、sshが通る環境なら、この方法も
楽な部類だと思います。
Linuxサーバの運用は必要にはなりますが...<そこでRTMのネームサーバを
動かしておけば(^^;;

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02972] ルータのLAN側にあるRTCの操作

末廣先生、熊谷先生、清水先生

安藤です

VPNに関する情報ありがとうございます。ソフトイーサのPacketiXはPPTPより
速いようですし、設定も比較的楽そうなのでいいですね。
熊谷先生の方法もなかなかマニアック(とくに3重パイプのとこ(w)でよさそうですし、
例えばRaspberryPiでVPN専用のサーバを用意しておき、必要なネットワークに
設置する、といった運用方法が確立できれば、どんな環境でもRTC間の連携が
すぐにできるようになるのでいいですね。

清水先生がおっしゃるように、CORBAやネットワークのことがわからなくても
運用できるようにOpenRTMでそういう機能が提供・自動設定などできるように
ゆくゆくはしていきたいと思います。

時間があればPacketiXやsshトンネルの方法でRTMの運用を行う方法を
ドキュメントにまとめたいと思いますが、すでにやられたことがある方がいらっしゃれば
教えてください。よろしくお願いします。

2013年11月22日 9:49 :
> 東北学院の熊谷です。
>
>> VPNに関して何かいい方法ご存知の方いらっしゃいませんか?
>
> について、RTMを通したことはまだなかったとおもいますが、いま、自分で
> 使っている方法をご参考までお知らせします。
>
> ・各プライベートネットにLinuxサーバを一台おいておく
>  ※RaspPiでもいけそうな気はする
> ・pppをssh上で通す
>  pppd pty 'ssh SERVER /usr/sbin pppd OPTIONS' pppdオプション
> ・staticなルートを設定する
>
> です。これで大学自室、家、実験室のローカルネットを基本的にすべて
> 同一のローカルネットとして使えます。
> (もちろん、実験室から家には到達できないように、ハブとなる教員室で
>  ルーティングは制限)
>
> これにより、
> ・sshやWindowsのファイル共有など、ポートごとの管理をせずに、一括して
>  つかえる。
> ・プライベート内のWindowsPC−遠隔のNASなど、サーバ以外もぜんぶ
>  トンネルしてくれる。
> ・経路はsshで暗号化でたぶんセキュア
> とできます。
> 原理的にはRTMも使えるはずです。
>
> ただし、Windowsパソコン@教員室から実験室のサーバまでpingが5msくらい
> (Linuxサーバ間でも4.7msくらい)、家までだと調子いいと25msくらい、と
> 当然、そこそこかかりますので、リアルタイムのループにいれるのはちょっと
> つらく、計測データを広域に届ける、あるいはリモートブレインする、程度の
> 制約になるとおもいます。
>
>
> その他詳細:
> ・実際にはLinuxサーバは表には無く、ブロードバンドルータの
>  バーチャルサーバ機能でsshなどだけ、サーバに渡しています。
> ・いっぱつでつながらないことも多く、再接続も必要なので、
>  リトライ付きのスクリプトにして、監視しています。
> ・大学→家は、そのまえに大学のファイアウォール上の外向きssh踏み台に
>  いちどsshして、その内側で家までのsshをかけるという三重パイプ
>  構造になっています。
> ・さすがにWindowsのファイル共有はpingが遅いと極端にパフォーマンスが
>  おちるので、家と大学のNASの相互バックアップなどは、Linuxサーバで
>  マウントして、rsyncです。
>
> SoftEtherというご提案もありましたが、sshが通る環境なら、この方法も
> 楽な部類だと思います。
> Linuxサーバの運用は必要にはなりますが...<そこでRTMのネームサーバを
> 動かしておけば(^^;;

isao-hara
オフライン
Last seen: 4年 6ヶ月 前
登録日: 2011-06-04 18:20
[openrtm-users 02973] ルータのLAN側にあるRTCの操作

皆様:

原@産総研です。
いろいろ意見が出ていますが、ソフトイーサに関しては、TCP

2013年11月22日 12:06 Ando Noriaki :

> 末廣先生、熊谷先生、清水先生
>
> 安藤です
>
> VPNに関する情報ありがとうございます。ソフトイーサのPacketiXはPPTPより
> 速いようですし、設定も比較的楽そうなのでいいですね。
> 熊谷先生の方法もなかなかマニアック(とくに3重パイプのとこ(w)でよさそうですし、
> 例えばRaspberryPiでVPN専用のサーバを用意しておき、必要なネットワークに
> 設置する、といった運用方法が確立できれば、どんな環境でもRTC間の連携が
> すぐにできるようになるのでいいですね。
>
> 清水先生がおっしゃるように、CORBAやネットワークのことがわからなくても
> 運用できるようにOpenRTMでそういう機能が提供・自動設定などできるように
> ゆくゆくはしていきたいと思います。
>
> 時間があればPacketiXやsshトンネルの方法でRTMの運用を行う方法を
> ドキュメントにまとめたいと思いますが、すでにやられたことがある方がいらっしゃれば
> 教えてください。よろしくお願いします。
>
>
> 2013年11月22日 9:49 :
> > 東北学院の熊谷です。
> >
> >> VPNに関して何かいい方法ご存知の方いらっしゃいませんか?
> >
> > について、RTMを通したことはまだなかったとおもいますが、いま、自分で
> > 使っている方法をご参考までお知らせします。
> >
> > ・各プライベートネットにLinuxサーバを一台おいておく
> > ※RaspPiでもいけそうな気はする
> > ・pppをssh上で通す
> > pppd pty 'ssh SERVER /usr/sbin pppd OPTIONS' pppdオプション
> > ・staticなルートを設定する
> >
> > です。これで大学自室、家、実験室のローカルネットを基本的にすべて
> > 同一のローカルネットとして使えます。
> > (もちろん、実験室から家には到達できないように、ハブとなる教員室で
> > ルーティングは制限)
> >
> > これにより、
> > ・sshやWindowsのファイル共有など、ポートごとの管理をせずに、一括して
> > つかえる。
> > ・プライベート内のWindowsPC−遠隔のNASなど、サーバ以外もぜんぶ
> > トンネルしてくれる。
> > ・経路はsshで暗号化でたぶんセキュア
> > とできます。
> > 原理的にはRTMも使えるはずです。
> >
> > ただし、Windowsパソコン@教員室から実験室のサーバまでpingが5msくらい
> > (Linuxサーバ間でも4.7msくらい)、家までだと調子いいと25msくらい、と
> > 当然、そこそこかかりますので、リアルタイムのループにいれるのはちょっと
> > つらく、計測データを広域に届ける、あるいはリモートブレインする、程度の
> > 制約になるとおもいます。
> >
> >
> > その他詳細:
> > ・実際にはLinuxサーバは表には無く、ブロードバンドルータの
> > バーチャルサーバ機能でsshなどだけ、サーバに渡しています。
> > ・いっぱつでつながらないことも多く、再接続も必要なので、
> > リトライ付きのスクリプトにして、監視しています。
> > ・大学→家は、そのまえに大学のファイアウォール上の外向きssh踏み台に
> > いちどsshして、その内側で家までのsshをかけるという三重パイプ
> > 構造になっています。
> > ・さすがにWindowsのファイル共有はpingが遅いと極端にパフォーマンスが
> > おちるので、家と大学のNASの相互バックアップなどは、Linuxサーバで
> > マウントして、rsyncです。
> >
> > SoftEtherというご提案もありましたが、sshが通る環境なら、この方法も
> > 楽な部類だと思います。
> > Linuxサーバの運用は必要にはなりますが...<そこでRTMのネームサーバを
> > 動かしておけば(^^;;
> > --------------------------------------------
> > 東北学院大学工学部 機械知能工学科 熊谷正朗
> >
> > _______________________________________________
> > openrtm-users mailing list
> > openrtm-users@openrtm.org
> > http://www.openrtm.org/mailman/listinfo/openrtm-users
> _______________________________________________
> openrtm-users mailing list
> openrtm-users@openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users
>

isao-hara
オフライン
Last seen: 4年 6ヶ月 前
登録日: 2011-06-04 18:20
[openrtm-users 02974] ルータのLAN側にあるRTCの操作

皆様:
原@産総研です。
間違って送信してしまいました、申し訳ございません。
ソフトイーサを使ったVPNですが、ソフトイーサ自体は、IP on TCP/IPだったと思いますので、
設定さえすれば、問題なく動作すると思います。ただし、場所によってはセキュリティ上の問題で
使えないということもあります。(産総研がそうですね)

また、安藤さんがおっしゃったような「ネットワークの知識がなくても」というのは、いかがなものか
と思います。よく考えると、そのような実装だとネットワークのセキュリティ管理者が運用を許可しない
場合が容易に考えられます。

少なくとも、ネットワーク管理者が「制御」でき、かつ、「簡単にどこでも設定(接続)できる」ことが重要だと思いますが。

まぁ、CORBAを知らなくてもというのは、現状はすでにそうなっていると思います。

ネームサーバーの機能を拡張してProxyをするようになれば、ネームサーバーのポートの開放だけで
通信できるようにはなると思いますが。(多分、皆さん総勘違いしているのではないかと思いますので)

2013年11月22日 12:49 原功 :

> 皆様:
>
> 原@産総研です。
> いろいろ意見が出ていますが、ソフトイーサに関しては、TCP
>
>
>
> 2013年11月22日 12:06 Ando Noriaki :
>
> 末廣先生、熊谷先生、清水先生
>>
>> 安藤です
>>
>> VPNに関する情報ありがとうございます。ソフトイーサのPacketiXはPPTPより
>> 速いようですし、設定も比較的楽そうなのでいいですね。
>> 熊谷先生の方法もなかなかマニアック(とくに3重パイプのとこ(w)でよさそうですし、
>> 例えばRaspberryPiでVPN専用のサーバを用意しておき、必要なネットワークに
>> 設置する、といった運用方法が確立できれば、どんな環境でもRTC間の連携が
>> すぐにできるようになるのでいいですね。
>>
>> 清水先生がおっしゃるように、CORBAやネットワークのことがわからなくても
>> 運用できるようにOpenRTMでそういう機能が提供・自動設定などできるように
>> ゆくゆくはしていきたいと思います。
>>
>> 時間があればPacketiXやsshトンネルの方法でRTMの運用を行う方法を
>> ドキュメントにまとめたいと思いますが、すでにやられたことがある方がいらっしゃれば
>> 教えてください。よろしくお願いします。
>>
>>
>> 2013年11月22日 9:49 :
>> > 東北学院の熊谷です。
>> >
>> >> VPNに関して何かいい方法ご存知の方いらっしゃいませんか?
>> >
>> > について、RTMを通したことはまだなかったとおもいますが、いま、自分で
>> > 使っている方法をご参考までお知らせします。
>> >
>> > ・各プライベートネットにLinuxサーバを一台おいておく
>> > ※RaspPiでもいけそうな気はする
>> > ・pppをssh上で通す
>> > pppd pty 'ssh SERVER /usr/sbin pppd OPTIONS' pppdオプション
>> > ・staticなルートを設定する
>> >
>> > です。これで大学自室、家、実験室のローカルネットを基本的にすべて
>> > 同一のローカルネットとして使えます。
>> > (もちろん、実験室から家には到達できないように、ハブとなる教員室で
>> > ルーティングは制限)
>> >
>> > これにより、
>> > ・sshやWindowsのファイル共有など、ポートごとの管理をせずに、一括して
>> > つかえる。
>> > ・プライベート内のWindowsPC−遠隔のNASなど、サーバ以外もぜんぶ
>> > トンネルしてくれる。
>> > ・経路はsshで暗号化でたぶんセキュア
>> > とできます。
>> > 原理的にはRTMも使えるはずです。
>> >
>> > ただし、Windowsパソコン@教員室から実験室のサーバまでpingが5msくらい
>> > (Linuxサーバ間でも4.7msくらい)、家までだと調子いいと25msくらい、と
>> > 当然、そこそこかかりますので、リアルタイムのループにいれるのはちょっと
>> > つらく、計測データを広域に届ける、あるいはリモートブレインする、程度の
>> > 制約になるとおもいます。
>> >
>> >
>> > その他詳細:
>> > ・実際にはLinuxサーバは表には無く、ブロードバンドルータの
>> > バーチャルサーバ機能でsshなどだけ、サーバに渡しています。
>> > ・いっぱつでつながらないことも多く、再接続も必要なので、
>> > リトライ付きのスクリプトにして、監視しています。
>> > ・大学→家は、そのまえに大学のファイアウォール上の外向きssh踏み台に
>> > いちどsshして、その内側で家までのsshをかけるという三重パイプ
>> > 構造になっています。
>> > ・さすがにWindowsのファイル共有はpingが遅いと極端にパフォーマンスが
>> > おちるので、家と大学のNASの相互バックアップなどは、Linuxサーバで
>> > マウントして、rsyncです。
>> >
>> > SoftEtherというご提案もありましたが、sshが通る環境なら、この方法も
>> > 楽な部類だと思います。
>> > Linuxサーバの運用は必要にはなりますが...<そこでRTMのネームサーバを
>> > 動かしておけば(^^;;
>> > --------------------------------------------
>> > 東北学院大学工学部 機械知能工学科 熊谷正朗
>> >
>> > _______________________________________________
>> > openrtm-users mailing list
>> > openrtm-users@openrtm.org
>> > http://www.openrtm.org/mailman/listinfo/openrtm-users
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users@openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
>>
>
>
>

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02975] ルータのLAN側にあるRTCの操作

安藤です

> また、安藤さんがおっしゃったような「ネットワークの知識がなくても」というのは、いかがなものか
> と思います。よく考えると、そのような実装だとネットワークのセキュリティ管理者が運用を許可しない
> 場合が容易に考えられます。
> 少なくとも、ネットワーク管理者が「制御」でき、かつ、「簡単にどこでも設定(接続)できる」ことが重要だと思いますが。
> まぁ、CORBAを知らなくてもというのは、現状はすでにそうなっていると思います。

私も、のべつ幕なしにつながるようなものは想定してませんし、
そこまで実装するのは大変ですので、たぶん無理です(笑

やるとすれば、VPNを使うケース、PacketiXを使うケース、ポートマッピングを使うケース
など典型的な場合において、昨日のドキュメントの様な設定方法を示すか、
それらの環境で便利に使うためのオプションを提供するくらいでしょうか?

ただ、現状いろいろなものが簡単につながるようになった現状において
ネットワークセキュリティー的にある方法が禁止されていたら、別の方法が
取れる、といったようにOpenRTM自体も様々なオプションを提供しておくのが
いいのかなと思います。

> ネームサーバーの機能を拡張してProxyをするようになれば、ネームサーバーのポートの開放だけで
> 通信できるようにはなると思いますが。(多分、皆さん総勘違いしているのではないかと思いますので)

すみません、これってどういう実装を想定されてます?TCP/IPレベルのProxy
なら alternalte_iiop_addresses との合わせ技でいけそうですが。。。
もっといい実現方法があるようでしたら教えてもらえないでしょうか?
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02976] ルータのLAN側にあるRTCの操作

TCP/IPレベルのProxy → IIOPレベル の間違いです。少なくとも
IIOPメッセージを見ないとCORBAオブジェクトのキーがわかりませんね。

原さんの方法はPortableServer::ForwardRequest 例外を使ってメッセージを転送する方法でしょうか?
omniMapper が似たようなことをしていますが、これならネームサーバに組み込めばとりあえず
RTCへのメッセージは転送できますね。

ただ、実際に相互接続するにはポートやEC,サービスインターフェースなど、すべてのオブジェクトを
このプロキシサーバに登録してあげる必要があるので、まじめに実装すると結構面倒かも。。。

安藤

2013年11月22日 15:09 Ando Noriaki :
> 安藤です
>
>> また、安藤さんがおっしゃったような「ネットワークの知識がなくても」というのは、いかがなものか
>> と思います。よく考えると、そのような実装だとネットワークのセキュリティ管理者が運用を許可しない
>> 場合が容易に考えられます。
>> 少なくとも、ネットワーク管理者が「制御」でき、かつ、「簡単にどこでも設定(接続)できる」ことが重要だと思いますが。
>> まぁ、CORBAを知らなくてもというのは、現状はすでにそうなっていると思います。
>
> 私も、のべつ幕なしにつながるようなものは想定してませんし、
> そこまで実装するのは大変ですので、たぶん無理です(笑
>
> やるとすれば、VPNを使うケース、PacketiXを使うケース、ポートマッピングを使うケース
> など典型的な場合において、昨日のドキュメントの様な設定方法を示すか、
> それらの環境で便利に使うためのオプションを提供するくらいでしょうか?
>
> ただ、現状いろいろなものが簡単につながるようになった現状において
> ネットワークセキュリティー的にある方法が禁止されていたら、別の方法が
> 取れる、といったようにOpenRTM自体も様々なオプションを提供しておくのが
> いいのかなと思います。
>
>> ネームサーバーの機能を拡張してProxyをするようになれば、ネームサーバーのポートの開放だけで
>> 通信できるようにはなると思いますが。(多分、皆さん総勘違いしているのではないかと思いますので)
>
> すみません、これってどういう実装を想定されてます?TCP/IPレベルのProxy
> なら alternalte_iiop_addresses との合わせ技でいけそうですが。。。
> もっといい実現方法があるようでしたら教えてもらえないでしょうか?
_______________________________________________
openrtm-users mailing list
openrtm-users@openrtm.org
http://www.openrtm.org/mailman/listinfo/openrtm-users

tmsimiz
オフライン
Last seen: 8年 4ヶ月 前
登録日: 2011-05-23 10:15
[openrtm-users 02966] ルータのLAN側にあるRTCの操作

安藤様
菅様
末廣先生

清水です。

ありがとうございました。
安藤さんに教えて頂いた方法で上手くいきました。

CORBAの仕組みを分からずにマニュアル通りやっていましたが、
ようやくポイントが掴めてきました。

・CORBAエンドポイントはORB一つに対して一つのIPアドレス+ポートの
割り当てが必要で、それをcorba.endpoints のオプションで行う。
これはエンドポイントを実際に作成するため、既にそれが存在していればNG
(複数のORBで同じエンドポイントを共有できない)。
そのため、ORBの数だけエンドポイントが必要になる。
ルータ越えをする場合は、ORBの数だけ(RTCマネージャのプロセス数だけ)
ポートフォワードを設定する必要がある。
なお、一つのORBですべてのRTC, EC, Port等のCORBAオブジェクトを
扱うようにすれば(同一プロセス上ですべてのCORBAサーバントを動かせば)、
一つのポートフォワードでも実行可能。

・実際のエンドポイントに到達できるためには、それが同じサブネット上に
なければならない。しかし今回のようにルータでポートフォワードをしている場合は、
同一サブネット上に存在するポートフォワードのIPアドレス+ポートを
IIOPアドレスに加えてあげればよい。
この操作をするオプションが、corba.alternate_iiop_addresses である。

以上の理解で間違っていればご指摘ください。
この仕組みさえ分かっていれば、rtc.confの設定は容易にできますね。
また一つ勉強になりました。

これに関して問題があるとすればRTSEの反応の遅さですかね。
JavaのCORBA実装のせいのようですが、
あまりにも遅すぎて実用性に欠けるような気がします
(RTCをダイアログに表示させるのに1分ぐらい待たされるのはちょっとしんどい)。

RTCの操作には、omniORBで自作プログラムを組むか、
原さんが開発しているエディタ(CORBAはRtORBでしょうか)を
使った方がよさそうですね。

あと、VPNを使った方法もおもしろそうですね。
RTM専用のネットワークが作れればいいですよね。
ルータとかサブネットとか実際のネットワークを意識しなくてよくなりますし。

清水

suehiro
オフライン
Last seen: 4ヶ月 1週 前
登録日: 2011-05-23 18:56
[openrtm-users 02968] ルータのLAN側にあるRTCの操作

清水先生,皆様,

末廣です.

(2013/11/21 21:35), Masayuki Shimizu wrote:

> ・CORBAエンドポイントはORB一つに対して一つのIPアドレス+ポートの
> 割り当てが必要で、それをcorba.endpoints のオプションで行う。

ORB一つに対して一つのIPアドレス+ポートで良いのですね.
ここは誤解していました.というかマネージャ一つに
一つのORBという方に思い至らなかったのかな.
勉強になります.ありがとうございました.

> あと、VPNを使った方法もおもしろそうですね。
> RTM専用のネットワークが作れればいいですよね。
> ルータとかサブネットとか実際のネットワークを意識しなくてよくなりますし。

PacketiX(SoftEther)を研究室アクセス用に使っています.
rtmでは使ったことがないのですが,内側のlanに
サーバを一つ立ち上げて,外からはその仮想ハブに接続すると
内側のlanに参加できます.清水先生の今回の要望では
これでOKではないでしょうか.内側のlanは変更なしです.
もともとルータ経由で接続するつもりでしたら
スピードもあまり問題ないと思います.

内側のlanのpcも仮想ハブに接続するようにすると
閉じた仮想lanを作れるはずです.
この場合,内部の通信もサーバを経由するので
遅延が発生しますしサーバの性能が重要になります.

PacketiXは性能が良いと聞いていますが,
ストリーミングやファイル転送と違い
スループットより遅延が問題になりそうなので
いろいろ調整が難しいのかもしれません.

tmsimiz
オフライン
Last seen: 8年 4ヶ月 前
登録日: 2011-05-23 10:15
[openrtm-users 02970] ルータのLAN側にあるRTCの操作

末廣先生

清水です。

> ORB一つに対して一つのIPアドレス+ポートで良いのですね.
> ここは誤解していました.というかマネージャ一つに
> 一つのORBという方に思い至らなかったのかな.
> 勉強になります.ありがとうございました.

OpenRTMでは、一つのORBに対して一つのマネージャという
実装になっていると思います。
エンドポイントが複数になってしまうのは、omniORBの実装のためです。

omniORBでは、ORBはプロセスの仮想メモリ空間上で固有となります
(ORBオブジェクトはグローバルにstaticなメモリ割り当てをされる)。
ORBオブジェクトはシングルトンで生成されるので、
同一プロセス内で複数のCORBAオブジェクトを生成しても、
それらは同じORBで管理されるようになります。

OpenRTMのマネージャもシングルトンなので、同一プロセス上で
複数のRTC等のCORBAオブジェクトを作成しても、
それらは同じマネージャ(すなわち同じORB)で管理されるはずです。

しかし、複数RTCを複数プロセスで作成すれば、
それぞれのプロセスの仮想メモリ空間アドレスが異なるために、
新たなORB/マネージャをプロセス数だけ作成せざるを得なくなります。
その場合は、複数のエンドポイントが必要になってきます。

VPNに関する情報もありがとうございます。
VPNサーバの作成等はかなり高度なネットワーク知識が必要そうなので、
現在の私の手には負えないように感じます
(iptablesを使ったポートフォワード設定でさえも苦労しました)。

本当は、CORBAやネットワークの知識が無くてもコンポーネントを
扱えるようにするのがRTミドルウェアの役割だと思いますので、
ビギナーレベルでも簡単にVPNを使ったRTCネットワークを
構築できるものがOpenRTMで提供されれば良いかなと思います。

清水

Ando Noriaki
オフライン
Last seen: 1年 9ヶ月 前
登録日: 2011-09-04 17:20
[openrtm-users 02971] ルータのLAN側にあるRTCの操作

安藤です

> ・CORBAエンドポイントはORB一つに対して一つのIPアドレス+ポートの
> 割り当てが必要で、それをcorba.endpoints のオプションで行う。
> これはエンドポイントを実際に作成するため、既にそれが存在していればNG
> (複数のORBで同じエンドポイントを共有できない)。
> そのため、ORBの数だけエンドポイントが必要になる。
> ルータ越えをする場合は、ORBの数だけ(RTCマネージャのプロセス数だけ)
> ポートフォワードを設定する必要がある。
> なお、一つのORBですべてのRTC, EC, Port等のCORBAオブジェクトを
> 扱うようにすれば(同一プロセス上ですべてのCORBAサーバントを動かせば)、
> 一つのポートフォワードでも実行可能。

そうですね。たいていの実装ではORBはシングルトンですので、ORB=プロセス
と考えていいと思います。ORBが接続を受け付ける端点をエンドポイントと呼んでいて
corba.endpoints がその設定を行うオプションです。

> ・実際のエンドポイントに到達できるためには、それが同じサブネット上に
> なければならない。しかし今回のようにルータでポートフォワードをしている場合は、
> 同一サブネット上に存在するポートフォワードのIPアドレス+ポートを
> IIOPアドレスに加えてあげればよい。
> この操作をするオプションが、corba.alternate_iiop_addresses である。

同一サブネット上になくてもいいですが、ip reachable である必要があります。
NATの内側はそのままではip unreachable ですので、ポートフォワードが必要で
見かけ上のIPアドレス・ポートが変わるので、corba.alternate_iiop_addresses で
そのIPアドレス・ポート番号をIORに含めてやる、といったところです。

これであとはUPnP対応のルータであればminiupnpcなどを使って自動でポート
フォワーディングを設定してあげるようにすれば比較的簡単にルータ内のRTCの
操作ができるようになります、が、まだそこまではできていません。
http://miniupnp.free.fr/
http://d.hatena.ne.jp/konbunori/20110328/1301250660

> 以上の理解で間違っていればご指摘ください。
> この仕組みさえ分かっていれば、rtc.confの設定は容易にできますね。
> また一つ勉強になりました。
>
> これに関して問題があるとすればRTSEの反応の遅さですかね。
> JavaのCORBA実装のせいのようですが、
> あまりにも遅すぎて実用性に欠けるような気がします
> (RTCをダイアログに表示させるのに1分ぐらい待たされるのはちょっとしんどい)。

試しに、RTSEの設定でタイムアウトを少し短めにしてみてください。
ウィンドウ→設定→RT Name Service View の「同期」でタイムアウト待ち時間
がデフォルトで1秒になっているところを50msくらいにしてみてください。
これで少しましになったような気がします。

> RTCの操作には、omniORBで自作プログラムを組むか、
> 原さんが開発しているエディタ(CORBAはRtORBでしょうか)を
> 使った方がよさそうですね。

rtshellもomniORBpyなので、マルチプロファイルに対応しています。
あと、RtORBはマルチプロファイルには対応していなかったように思いますので、
どうなるかはわかりません。

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2195
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク