Back
- dsgwdはアイコム株式会社の、xchange dprs dstatus multi_forward は安田OM(7M3TJZ)/ JARL D-STAR委員会の著作物です。 インストール及び設定に関する実務についてのみ今後の参考のために記載します。また手順に変更があれば随時、変更・追加致します。 (最終更新 2024.8.19)
- 新ゲートウェイシステム・フローチャートはこちら TODO Virtual Center
- 本ブログに関するご意見・お問い合わせはこちらへお願いします。 D*Star Network FORUM
準備するもの
- AlmaLinux(2024年8月時点に於ける最新版 9.4)のインストールされたLANカードを2枚持つPC
- JARLレポジトリを利用するための準備
=MEMO= ブログをAlma Linuxへのインストールに暫定対応させました。(2024.4.16 追記)
SSHの使用に関して「AlmaLinuxのSSHを公開鍵と秘密鍵で」をご参照ください。
DD(バックアップイメージを取るなどに使用)コマンドを使用しなければ WiFiも可能と言う事ですし、USB-RJ45 変換アダプタの使用等も出来ますが、 サーバーとしての安定性を考慮すると上述の仕様をお勧めします。
現在AlmaLinux用のリポジトリーは作成されていませんので CentOS 7 のリポジトリーを利用しての暫定インストールとなります。従ってリポジトリーリストの変更を伴います。
この手順はアイコム(株)のテストによる情報がD-STAR委員会に提供されたものを参照しています。また、今後リポジトリーの作成作業等によりアクセス出来ないことなども発生すると思われますのでよろしくお願いします。
CentOS 6 の32ビット、64ビット版、及び CentOS 7 の32ビット版、64ビット版について利用可能です。 Alma Linuxについては=MEMO=参照
次の準備をして、次項のインストールへ
# yum install wget -y # cd /etc/yum.repos.d # wget -N http://app.d-star.info/rpm/yum/jarl.repo # cd/etc/yum.repos.d ディレクトリ内に jarl.repo と言うファイルがダウンロードされます。
=MEMO= Alma Linux用のリポジトリーが完成するまでの暫定処理
# cd /etc/yum.repos.d # nano jarl.repo
GNU nano 5.6.1 jarl.repo
# jarl.repo : [dstatus] name=dstatus CentOS-$releasever $basearch baseurl=http://app.d-star.info/rpm/centos/$releasever/$basearch/ enabled=1 │ gpgcheck=0 └─> /centos/7/$basearch/ に書き換える :この$releaseverの所を、CentOS 7 のリポジトリーに特定するため、すべての行で 7 に書き換えます。
CentOS 7 向けのアプリケーション(dsgwd-jp)で必要となる環境とAlma Linuxが提供する環境のすり合わせ。(ダウングレード含む)
# dnf install initscripts # wget https://ftp.sakura.ad.jp/almalinux/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm # dnf install compat-openssl10-1.0.2o-4.el8_6.x86_64.rpmここまで Alma Linux
dsgwd 及び D-STAR X-change関連ソフトのインストール
- JARLレポジトリからインストールする
# yum -y install dsgwd-jp dprs xchange dstatus multi_forward
=MEMO= Alma Linuxからは yum の代わりに dnf に慣れた方が良いでしょう。
# dnf -y install dsgwd-jp dprs xchange dstatus multi_forward
dsgwdはdsgwd-jp と指定します。dxchangeは dprs、xchange と dstatus という3つのプログラムに分かれました。 また、multi_forward というアプリケーションが追加されています。
deltarpm は dstatus に必要なソフトです。インストール済みならこのコマンドは不要です。
dsgwdは、インストールのみで自動立ち上げスクリプトも生成され、環境設定ファイル dsgwd.confは /etc に配置されます。
xchange、dprs、dstatus、multi_forward の設定ファイルは次のフォルダに入ります。
# ls /opt/dstar/conf/
それぞれの設定ファイルを編集
- dsgwd.conf の編集
- xchange.conf の編集
- dprs.conf の編集
- dstatus.conf の編集
- multi_forward の編集
=MEMO= 今回の xchange、dprs、dstatus、multi_forward の4アプリケーションは 前回の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 も大きく設定が変わります。
# yum install nano -y (好みです。サーバーGUI仕様ではインストール済みです。) # 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 #ローカルループを指定 # DNS Server DNS_ADDR=8.8.8.8 #グーグル汎用DNS. 本来はDEFAULT_GWと同じ10.0.x.x #ですがネットワーク環境が変わっても訂正の必要が有りません。 # 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=20010 # 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上記のように立ち上がれば、一先ず完了です。
# 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 #UPNP=1に依る自動設定をする時はルータのUPnPを有効にしてください。 又、UPNP=0で手動設定する時はルータのHTTP_PORTで指定したポートを開け、ゲートウェイPCまでフォワーディングしてください。CALLSIGN=[Repeater Callsign]この2行は不要となりました。MODULE_NAME=[Repeater Callsign] [Module A又はB]記載している場合は削除してください。 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 へのポートです。 FORWARD=127.0.0.1:50003:decho #エコーサーバ へのポートです。
# 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:14580CALLSIGN=[Repeater Callsign]この2行は不要となりました。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
# 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=status.d-star.info:21050
このアプリケーションの役割は、「dxchangeが稼働しているレピータのアクセス状況(暫定運用)」用のデータ収集です。# 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:ポートフォワード不要) # HTTP_PORT=8081 #multi_forward管理用WEBのポートです。xchange用と同じになってはいけません。 # UPNP=1 #上記管理用WEBポートを自動で開ける時コメントアウト。手動で開けてもUPNP=0と記載する MAX_TIME=0 #dmonitor,ICOM DVリピータモニターで接続した場合の時間制限(sec 0:制限なし 2022.10.12更新) MAX_CONNECT=0 #dmonitor,ICOM DVリピータモニターで接続できる局数制限(0:制限なし 2022.10.12更新)このアプリケーションの役割は、別途リリースされている dmonitor(Raspberry用)とターミナルモードに設定した無線機をUSB接続(DVMEGA, DVAP, NodeAdapterV7は無線接続)し、dmonitorの機能で指定ポート51000へリフレクタのように接続することによって、そのリピータをZONE Repeaterとして山掛け運用や他リピータへのコールサインルーティングを提供する事を目指すものです。(対象となる機能にICOM DVリピータモニターが追加されました 2022.10.12更新)
参考 dmonitor & 専用Nextionディスプレイ
ゲートウェイ・サーバの自動起動
- 自動起動用ユニットファイルの有効化
- 前項までのインストールと準備が完了したら再起動します。
- 前項同様に、自動起動しているか確認をします。
- dsgwd のログを確認します。
- xchange のログを確認します。
- dprs のログを確認します。
- dstatus のログを確認します。
- multi_forward のログを確認します。
- 自動起動のタイミングを調整する
初期状態から有効に設定されていますが、次の確認の結果 disable無効なら、有効化します。
# systemctl is-enabled [xxx.service]
# systemctl enable xchange.service # systemctl enable dprs.service # systemctl enable dstatus.service # systemctl enable multi_forward
ファイルは /etc/systemd/system に有ります。属性は 755 にする必要は有りません。
# cd /etc/systemd/system # chmod 644 xchange.service dprs.service dstatus.service multi_forward.service
# reboot
# ps -e : 3691 ? 00:00:04 tuned 3692 ? 00:01:23 xchange 3694 ? 00:01:08 dprs 3695 ? 00:01:06 multi_forward 3697 ? 00:01:11 dstatus 3698 ? 00:00:01 rsyslogd 3711 ? 00:00:00 exec-gw-nonstop 3716 ? 00:00:19 dsgwd 3902 ? 00:00:00 httpd : :
# 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
# 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.
# 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
# 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.
=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)
標準仕様にて調整済みの方法
まず xchange.service をネットワークが立ち上がってから起動するようにデフォルト設定されています。# nano /etc/systemd/system/xchange.service
GNU nano 2.3.1 File: /etc/systemd/system/xchange.service
[Unit]
Description = xchange daemon
After = network.target
[Service]
ExecStart = /usr/bin/xchange
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
dprs.service、dstatus.service、multi_forward.service についても、dprsの例と同じ様になっています。
# nano /etc/systemd/system/dprs.service
GNU nano 2.3.1 File: /etc/systemd/system/dprs.service
[Unit]
Description = dprs daemon
After = xchange.service
[Service]
ExecStart = /usr/bin/dprs
Restart = always
Type = simple
[Install]
WantedBy = multi-user.target
以下がその結果です。
: 4185 ? 00:00:00 NetworkManager 4207 ? 00:00:00 avahi-daemon 4213 ? 00:00:00 chronyd 4508 ? 00:00:00 sshd 4509 ? 00:00:00 tuned 4510 ? 00:00:00 xchange 4511 ? 00:00:00 dprs 4512 ? 00:00:00 dstatus 4513 ? 00:00:00 multi_forward 4518 ? 00:00:00 rsyslogd 4526 ? 00:00:00 crond 4527 ? 00:00:00 gdm 4538 ? 00:00:00 exec-gw-nonstop 4544 ? 00:00:00 dsgwd :
この時仮に、何らかの理由によって multi_forward が立ち上がらないとします。multi_forward.service ファイル内の After指定を After=dprs.service に変更します。 すると、multi_forward が dprs の後に立ち上がったりして調整できます。
それでも調整できない時、一部を遅延
サーバーのアップデート等の後リブートすると、サービスの一部が立ち上がってこない場合が有ります。 但しコマンド入力では立ち上がる場合、自動起動のタイミングが適切でないと考えられます。 この様な場合は起動を少し遅らせると正常に自動起動します。 multi_forward を例に説明したいと思います。先ず、multi_forward.service を無効にし、After行を削除します。
# 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=... の記述は不要ですが、名前を変えたい場合は正しく記述してください。
運用中の簡易管理とアプリケーションの更新
- 管理用モニタリングWEB
- アプリケーションの更新
http://[グローバルアドレス]:8080(ポートはxchangeで設定変更可)をサーバのIPアドレスへポートフォワードすれば見ることが出来ます。
=MEMO= V02.03より、マニュアルでポートフォワードせずとも、uPnPを有効にしておくことで自動設定出来るようになりました。 事情によりマニュアル設定する場合は、xchange.conf の設定例を参照してください。 (2018/09/21)
# 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
今セットアップ中のGWサーバでmulti_forward がBoot後に再起動を繰り返している事象が発生しています、この情報を参考にtimerの対策をしてみたいと思います。
返信削除一つ質問ですがこの場合、timerのenable は必要でしょうか?
$ systemctl enable multi_forward.timer
JR2JDE 岩井様
削除はい、ご指摘のとおりENABLEが必要です。投稿中にも追記しておきます。
有り難うございました。
了解しました、明日テスト予定でしたので今晩でも設定してみます。
返信削除ありがとうございました。
セットアップ中のPCの性能が低いので処理が遅い影響が多分にあるかと思われます。
LIVAZ-4/32(N3350)+M.2 128GB SSD で構築中。オンボード32GBにも非常用でCentOS導入
multi_forward の起動OKになりました、xchangeにも15秒ほどTimerを設定したところ起動時にupnpがONになるようになりました。
返信削除おめでとうございます。upnpのタイミングに就いては非常に参考になりました。有り難うございます。
削除