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

Ando Noriaki n-ando @ aist.go.jp
2013年 11月 21日 (木) 13:44:25 JST


末廣先生

安藤です

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 <suehiro @ is.uec.ac.jp>:
> 安藤様,清水様,
>
> 末廣です.
>
> 安藤さんのやり方で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 <tmsimiz @ ipc.shizuoka.ac.jp>:
>>> 皆様
>>>
>>> 静岡大の清水です。
>>> 標記の件で上手くいかずに困っています。
>>> 方法をご存じの方がいれば教えて頂けると幸いです。
>>>
>>> (やりたいこと)
>>> 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
>>
>
>
> --
> Takashi Suehiro, Professor, Intelligent Systems Lab,
> Graduate School of Information Systems,
> the University of Electro-Communications
> Tel: +81-424-43-5655 Fax: +81-424-43-5682
> E-mail: suehiro @ is.uec.ac.jp
> 1-5-1 Chofugaoka, Chofu, Tokyo 1828585, Japan
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users


More information about the openrtm-users mailing list