2018年8月10日金曜日

D-STAR リピータ・ゲートウェイ(dsgwd)のインストール(CentOS 7 対応)

Back



=MEMO= dsgwdはアイコム株式会社の、xchange dprs dstatus multi_forward は安田OM(7M3TJZ)/ JARL D-STAR委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。 (最終更新 2018.11.02
JARL D-STAR委員会リリースアナウンスはこちら ⇨ http://app.d-star.info/dsgwd.pdf
準備するもの
  • CentOS 7(2018年夏に於ける最新版 7.5:1804)のインストールされたLANカードを2枚持つPC

  • DD(バックアップイメージを取るなどに使用)コマンドを使用しなければ WiFiも可能と言う事ですし、USB-RJ45 変換アダプタの使用等も出来ますが、 サーバーとしての安定性を考慮すると上述の仕様をお勧めします。

  • JARLレポジトリを利用するための準備

  • CentOS 6 の32ビット、64ビット版、及び CentOS 7 の32ビット版、64ビット版について、2018.09.20現在利用可能です。

    次の準備をして、次項のインストールへ
    # yum install wget -y
    # cd /etc/yum.repos.d
    # wget -N http://app.d-star.info/rpm/yum/jarl.repo
    
    /etc/yum.repos.d ディレクトリ内に jarl.repo と言うファイルがダウンロードされます。


dsgwd 及び D-STAR X-change関連ソフトのインストール
  1. 64ビットOSの場合以下のファイルが足りないと言うメッセージが出る場合が有ります。

  2. 64ビット版のみ
    # yum install libc.so.6 libpthread.so.0
    

  3. JARLレポジトリからインストールする

  4. # yum install -y deltarpm
    # yum install dsgwd-jp dprs xchange dstatus multi_forward
    
    dsgwdはdsgwd-jp と指定します。dxchangeは dprsxchangedstatus という3つのプログラムに分かれました。 また、multi_forward というアプリケーションが追加されています。
    deltarpm は dstatus に必要なソフトです。インストール済みならこのコマンドは不要です。

    dsgwdは、インストールのみで自動立ち上げスクリプトも生成され、環境設定ファイル dsgwd.confは /etc に配置されます。

    xchange、dprs、dstatus、multi_forward の設定ファイルは次のフォルダに入りますので、ファイル名を変更します。(元ファイルは残します。)
    # cd /opt/dstar/conf/
    # cp xchange.conf.org xchange.conf
    # cp dprs.conf.org dprs.conf
    # cp dstatus.conf.org dstatus.conf
    # cp multi_forward.conf.org multi_forward.conf
    


それぞれの設定ファイルを編集

    =MEMO= 今回の xchangedprsdstatusmulti_forward の3アプリケーションは 前回のdxchangeのように、dsgwd のアドオン的存在ではなく、xchange が dsgwd と ID-RP2C の間に割って入ります。 従って今までの 172.16.0.20 は dsgwd にではなく xchange に設定します。 それに伴って、dsgwd の設定は xchange に向かうためローカルループの 127.0.0.1 となります。 この様に、xchange dprs dstatus multi_forward をセットアップする時は下記の dsgwd.conf も大きく設定が変わります。

  1. dsgwd.conf の編集

  2. # yum install nano -y       (好みです)
    # nano /etc/dsgwd.conf
    
      GNU nano 2.3.1                    File: /etc/dsgwd.conf
    #
    # dsgwd.conf
    # Configuration file for D-STAR GW-Server Daemon
    # (C) 2004-2017 Icom Inc. Revision 1.4 Beta
    #
    
    # --- Setting the following two parameters is mandatory. ---
    # Zone Repeater's Infomation
    ZR_CALLSIGN=[Repeater Callsign(モジュールA,B無し)]
    ZR_ADDR=127.0.0.1   #172.16.0.20から変更 xchange のGW_NICへ
    
    # --- Caution! Use the following parameters as they are. ---
    # --- Only when you need any customization,              ---
    # ---        please change the following parameters.     ---
    # Zone Repeater's Infomation
    ZR_PORT=20011
    ZR_SRCPORT=20100
    ZR_ETHIFNAME=lo     #ローカルループを指定
    GW_ZRPORT=20010
    
    # DNS Server
    DNS_ADDR=8.8.8.8    #管理サーバでネームサーバが稼働するまで(googleネームサーバ)
    
    # GateWay
    GW_ETHIFNAME=eth0   #CentOS7ではenp1s0のような標記に変更になりました。
    DEFAULT_GW=10.0.x.x #ルータのLAN側アドレスです。
    #GW_LOGINT=300
    #GW_VCPORT=40000
    #GW_VCSRCPORT=40002
    #GW_DTPORT=40001
    #GW_ZRPORT=20000
    
    # Kanri Server
    MGSV_ADDR=trust.d-star.info    #ドメインネームで指定
    MGSV_PORT=30001
    MGSV_LOGADDR=trust.d-star.info #ドメインネームで指定
    MGSV_LOGPORT=30000
    
    # GW connection
    #CON_WAIT_INTERVAL=2
    #CON_REFRESH_INTERVAL=300
    #CON_MAX_GW=50
    
    # LOG Infomation
    LOG_GWREG=1
    LOG_INVOICE=1
    LOG_INDATA=1
    LOG_OUTVOICE=1
    LOG_OUTDATA=1
    LOG_OUTNET=1
    LOG_GWVOICE=1
    LOG_GWDATA=1
    LOG_USERERR=1
    
    # END dsgwd.conf
    
    
    バージョン1.3からの1番目の変更点は MGSV_ADDR の ドメインネーム指定が可能となったことです。 これはJARL管理サーバの多重化に関連して、この FQDN で指定しておけばサーバの一部がトラブルを起こしても別のサーバがそれに取って代われると言う意味を持ちます。

    dsgwdにおけるその他の確認事項

    # nano /etc/rsyslog.conf
    
      GNU nano 2.3.1                      File: /etc/rsyslog.conf
                 :
                 :
    # ### end of the forwarding rule ###
    local0.*                        /var/log/dsgwd.log
    
    ファイルの最終行に一行追加されているかを確認してください。以前はこれを手入力していました。

    次に上記で指定したログファイルが存在するか確認します。
    # ls /var/log/dsgwd.log
    
    もし無ければ、ファイルの存在を確認できないためプログラムが立ち上がりませんので、空ファイルを作ります。
    # touch /var/log/dsgwd.log
    

    起動させてみます。

    # service dsgwd start
    

    # ps -e
            :
            :
     1226 ?        00:00:00 exec-gw-nonstop
     1230 ?        00:00:04 dsgwd
    
    
    上記のように立ち上がれば、一先ず完了です。


  3. xchange.conf の編集

  4. # nano /opt/dstar/conf/xchange.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/xchange.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       12 Aug. 2018
    #
    CALLSIGN=[Repeater Callsign]                    #例:JP1YYY 
    MODULE_NAME=[Repeater Callsign] [Module A又はB] #例:JP1YYY A
    DEBUG=1
    ZR_NIC=eth1             #CentOS7ではenp2s0のような標記に変更されています。
    ZR_ADDR=172.16.0.1      #新しくD-STAR X-change自体がコントローラと会話します。
    ZR_IN_PORT=20000
    ZR_OUT_PORT=20000
    GW_IN_PORT=20011
    GW_OUT_PORT=20010
    GW_NIC=lo               #dsgwd とローカルループで接続されます。
    MON_PORT=21000
    GW_ADDR=127.0.0.1
    HTTP_PORT=8080          #xchange管理用WEBのポートです。変更出来ます。
    UPNP=1                  #上のポートは自動で開けられますが、手動にする時UPNP=0にします
    
    FORWARD=127.0.0.1:50000:dprs          #dprs へのポートです。
    FORWARD=127.0.0.1:50001:dstatus       #dstatus へのポートです。
    FORWARD=127.0.0.1:50002:multi_forward #multi_forward へのポートです。
    
    
    UPNP=1に依る自動設定をする時はルータのUPnPを有効にしてください。 又、UPNP=0で手動設定する時はルータのHTTP_PORTで指定したポートを開け、ゲートウェイPCまでフォワーディングしてください。

  5. dprs.conf の編集

  6. # nano /opt/dstar/conf/dprs.conf
    
      GNU nano 2.3.1                   File: /opt/dstar/conf/dprs.conf
    #
    #       Version V02.00 or later
    #       Satoshi Yasuda
    #       14 Aug. 2018
    #
    APRS_SERVER=d-prs.d-star.info:14580
    CALLSIGN=[Repeater Callsign]
    MODULE_NAME=[Repeater Callsign] [Module A又はB] 
    RADIO_ID=I
    SEND_INTERVAL=60
    AUTO_RELINK=1
    RETRY_COUNT=0
    BEACON_LAT=00.0000      #北緯(小数点表示)
    BEACON_LONG=000.0000    #東経(小数点表示)
    BEACON_COMMENT=D-STAR->APRS
    BEACON_INTERVAL=1200
    DEBUG=1
    MON_PORT=50000         #xchange からデータを貰うポートです。
    ACCEPT_TYPE=MIX         #Accept Type: GW, ZR, MIX
    
    


  7. dstatus.conf の編集

  8. # nano /opt/dstar/conf/dstatus.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/dstatus.conf
    #
    #       Version V00.79 or later
    #       Satoshi Yasuda
    #       10 Oct. 2015
    #
    MON_PORT=50001          #xchange からデータを貰うポートです。
    STATUS=jk1zrw.org:21050
    
    
    このアプリケーションの役割は、「dxchangeが稼働しているレピータのアクセス状況(暫定運用)」用のデータ収集です。

  9. multi_forward の編集

  10. # nano /opt/dstar/conf/multi_forward.conf
    
      GNU nano 2.3.1                  File: /opt/dstar/conf/multi_forward.conf
    #
    #   Version V00.79 or later
    #   Satoshi Yasuda
    #   10 Oct. 2015
    #
    DEBUG=1
    FORWARD_PORT=50002        #xchange からデータを貰うポートです。
    MULTI_CONNECT_PORT=51000  #ユーザが接続するポートです。(Hole Punch:ポートフォワード不要)
    
    
    このアプリケーションの役割は、別途リリース(2018.10.12現在テスト版)される dmonitor(Raspberry用)とターミナルモードに設定した無線機をUSB接続し、 dmonitorの機能で指定ポート51000へリフレクタのように接続することによって、コールサインルーティングではないリピータの利用(現在はモニタリングのみ) を目指すものです。



ゲートウェイ・サーバの自動起動

=MEMO= JARLアプリケーションに関してはアップデート(yum update xchange等)の後、 自動起動用 Systemd Unit Filedisable に戻りますので、再度有効にしてください。
=MEMO= 以下の設定において自動で立ち上がらないケースがあります。その場合起動のタイミングを遅らせると成功する場合が有りますのでこの項目の最後に追記しました。(2018.11.02)

  1. 自動起動用ユニットファイルの有効化

  2. # systemctl enable xchange.service
    # systemctl enable dprs.service
    # systemctl enable dstatus.service
    # systemctl enable multi_forward
    

    確認は
    # systemctl is-enabled [xxx.service]
    

    ファイルは /etc/systemd/system に有ります。属性は 755 にする必要は有りません。
    # cd /etc/systemd/system
    # chmod 644 xchange.service dprs.service dstatus.service multi_forward.service
    

  3. 前項までのインストールと準備が完了したら再起動します。

  4. # reboot
    

  5. 前項同様に、自動起動しているか確認をします。

  6. # ps -e
      717 ?        00:00:00 polkitd
      718 ?        00:00:00 irqbalance
      719 ?        00:00:01 dprs
      721 ?        00:00:00 dbus-daemon
      731 ?        00:00:01 xchange
      733 ?        00:00:00 NetworkManager
      743 ?        00:00:00 systemd-logind
      749 ?        00:00:00 crond
      753 ?        00:00:00 chronyd
      755 ?        00:00:00 kworker/3:2
      757 tty1     00:00:00 agetty
     1027 ?        00:00:00 tuned
     1029 ?        00:00:00 sshd
     1030 ?        00:00:00 rsyslogd
     1052 ?        00:00:00 exec-gw-nonstop
     1059 ?        00:00:00 dsgwd
     1434 ?        00:00:00 kworker/1:2
     1435 ?        00:00:00 kworker/1:1H
     1443 ?        00:00:00 dstatus
     1444 ?        00:06:04 multi_forward
     1445 ?        00:00:00 kworker/1:0
     1446 ?        00:00:00 sshd
     1448 pts/0    00:00:00 bash
     1462 pts/0    00:00:00 ps
    
    

  7. dsgwd のログを確認します。

  8. # tail /var/log/dsgwd.log
    
    ファイルの最後(最新)から10行表示します。連続して監視したい時は次のようにします。
    # tail -f -n30 /var/log/dsgwd.log
    
    ファイルの最後から30行を指定して表示、ログが排出される度に追加されます。

    Aug 26 11:08:39 localhost dsgwd[1054]: INFO - STARTUP dstar GW (C) 2004-2017 Icom Inc. Revision 1.4 Beta2
    Aug 26 11:08:39 localhost dsgwd[1054]: DEBUG - GW regist OK. Global IP = 211.333.99.999.
    Aug 26 11:08:40 localhost dsgwd[1054]: DEBUG - [LOG_GWREG]    Execute GW regist. (trust.d-star.info)
    Aug 26 11:08:40 localhost dsgwd[1054]: DEBUG - [LOG_GWREG]    GW regist OK. Global IP = 211.333.99.999.
    

    他にもログが存在します。
    # tail /dstar/log/log2
    

    [root@localhost ~]# tail /dstar/log/log2
    2018-08-08T10:09:13+0900 start
    2018-08-08T10:09:13+0900 end
    
    --- exec-gw-nonstop ---
    
    2018-08-08T10:10:31+0900 start
    
    --- exec-gw-nonstop ---
    
    2018-08-08T10:14:15+0900 start
    


  9. xchange のログを確認します。

  10. # tail /var/log/xchange.log
    Sat Sep  1 20:53:21 2018 D-STAR X-change (xchange) with ID-RP2C & dsgwd V02.01 (Aug 31 2018  20:28:06) Start
                             Linux 3.10.0-862.11.6.el7.x86_64 #1 SMP Tue Aug 14 21:49:04 UTC 2018
    Sat Sep  1 20:53:21 2018 Word Size : 64
    Sat Sep  1 20:53:21 2018 NIC (enp2s0) Zone Repeater Monitor Port 21000 open.
    Sat Sep  1 20:53:21 2018 NIC (lo) Gateway Port in(from dsgwd):20011 out(to dsgwd):20010 open.
    Sat Sep  1 20:53:21 2018 NIC (enp2s0) Zone Repeater Port in(from ID-RP2C):20000 out(to ID-RP2C):20000 open.
    Sat Sep  1 20:53:21 2018 Forward Port 127.0.0.1:50000 open.
    Sat Sep  1 20:53:21 2018 Forward Port 127.0.0.1:50001 open.
    Sat Sep  1 20:53:21 2018 HTTP Port 8080 open.
    
    


  11. dprs のログを確認します。

  12. # tail /var/log/dprs.log
    Sun Aug 26 10:52:38 2018 D-STAR D-PRS (dxchange add on) V02.00 (Aug 22 2018  16:14:30) Start
    Sun Aug 26 10:52:38 2018 Error on config file : ACCEPT_TYPE
    Sun Aug 26 10:52:38 2018 Word Size : 64
    Sun Aug 26 10:52:39 2018 APRS Server Connected
    Sun Aug 26 10:52:39 2018 # logresp JPxYxx-IS verified, server DPRS01
    Sun Aug 26 10:52:39 2018 APRS Server (DPRS01) Verified.
    Sun Aug 26 10:52:39 2018 Beacon Sent
    Sun Aug 26 10:52:59 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:52:59 GMT DPRS01 157.7.138.120:14580
    Sun Aug 26 10:53:19 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:53:19 GMT DPRS01 157.7.138.120:14580
    Sun Aug 26 10:53:39 2018 # aprsc 2.1.4-g408ed49 26 Aug 2018 01:53:39 GMT DPRS01 157.7.138.120:14580
    
    


  13. dstatus のログを確認します。

  14. # tail /var/log/dstatus.log
    Sun Aug 26 11:00:41 2018 D-STAR X-change (xchange) add on status V00.00 (Aug 24 2018  20:57:59) Start
    Sun Aug 26 11:00:41 2018 Status Port jk1zrw.org:21050 open.
    
    


  15. multi_forward のログを確認します。


  16. =MEMO= この機能を利用してリピータに接続、 リピータでの通信がモニターできるアプリケーション(dmonitor)がRaspberry用に実験提供されています。 下記ログでは2件の dmonitor が接続されています。2018.10.11 追記
    Thu Oct 11 16:54:19 2018 D-STAR X-change (xchange) add on status terminated (Up : 1d23h 9m22s)
    
    Thu Oct 11 16:54:19 2018 D-STAR X-change (xchange) add on multi_forward V00.01 (Oct  2 2018  17:54:18) Start
                             Linux 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018
    Thu Oct 11 16:54:19 2018 Word Size : 64
    Fri Aug  3 16:10:22 4436 Monitor Port 51000 open.
    Fri Aug  3 16:10:22 4436 Hole Punch Port 30010 open.
    Thu Oct 11 16:54:20 2018 Connect from 202.171.147.58(63177)
    Thu Oct 11 16:54:20 2018 Connect from 221.118.142.70(19964)
    
    


  17. 自動起動のタイミングを調整する

  18. サーバーのアップデート等の後リブートすると、サービスの一部が立ち上がってこない場合が有ります。 但しコマンド入力では立ち上がる場合、自動起動のタイミングが適切でないと考えられます。 この様な場合は起動を少し遅らせると正常に自動起動します。 multi_forward を例に説明したいと思います。

    先ず、multi_forward.service を無効にします。
    # systemctl disable multi_forward.service
    

    次に、同名で遅延ユニットファイルを作成します。(拡張子は .timer になります)
    # nano /etc/systemd/system/multi_forward.timer
    
      GNU nano 2.3.1                  File: /etc/systemd/system/multi_forward.timer
    [Unit]
    Description=multi_forward Start delay timer
    
    [Timer]
    OnBootSec=30sec
    #Unit=multi_forward.service
    
    [Install]
    WantedBy=timers.target
    
    

    ユニットファイルが完成したらタイマーを有効にします。(サービスは無効のままにします。)
    # systemctl enable multi_forward.timer
    # reboot
    

    [Timer]セクションで遅延時間を調整してください。また .service と .timer が同名の場合は Unit=... の記述は不要ですが、名前を変えたい場合は正しく記述してください。



運用中の簡易管理とアプリケーションの更新
  1. 管理用モニタリングWEB

  2. http://[グローバルアドレス]:8080(ポートはxchangeで設定変更可)をサーバのIPアドレスへポートフォワードすれば見ることが出来ます。

    =MEMO= V02.03より、マニュアルでポートフォワードせずとも、uPnPを有効にしておくことで自動設定出来るようになりました。 事情によりマニュアル設定する場合は、xchange.conf の設定例を参照してください。 (2018/09/21)



  3. アプリケーションの更新

  4. # ls /etc/cron.daily/
    dprs  dstatus  logrotate  man-db.cron  multi_forward  xchange
    

    上記のように一日に一回のペースで自動的にアップデートがチェックされ、レポジトリに更新ファイルが存在すれば更新が実行されます。 WEBでは、リスタートされてカウンターがクリアされ、上部に表示されるバージョンがアップします。(2018.10現在 xchange はV02.04にアップしています。)

    もし、手動でアップデートしたい時は次のようにします。
    # yum update -y xchange dprs dstatus multi_forward
    
    同様に、dsgwd(アイコム社製)のアップデートが有った場合は、自動更新しませんので次のようにします。
    # yum update -y dsgwd-jp
    


Back




J E 3 H C Z/XLX047 B

5 件のコメント:

  1. 今セットアップ中のGWサーバでmulti_forward がBoot後に再起動を繰り返している事象が発生しています、この情報を参考にtimerの対策をしてみたいと思います。
    一つ質問ですがこの場合、timerのenable は必要でしょうか?

    $ systemctl enable multi_forward.timer

    返信削除
    返信
    1. JR2JDE 岩井様
      はい、ご指摘のとおりENABLEが必要です。投稿中にも追記しておきます。
      有り難うございました。

      削除
  2. 了解しました、明日テスト予定でしたので今晩でも設定してみます。
    ありがとうございました。
    セットアップ中のPCの性能が低いので処理が遅い影響が多分にあるかと思われます。
    LIVAZ-4/32(N3350)+M.2 128GB SSD で構築中。オンボード32GBにも非常用でCentOS導入

    返信削除
  3. multi_forward の起動OKになりました、xchangeにも15秒ほどTimerを設定したところ起動時にupnpがONになるようになりました。

    返信削除
    返信
    1. おめでとうございます。upnpのタイミングに就いては非常に参考になりました。有り難うございます。

      削除