Digi Connect ME(DC-ME-01-IZU)とクロスケーブルで接続しWebサーバーにアクセスする

DC-ME-01T-IZU

 シリコンハウス共立でDigi社のConnect ME(DC-ME-01-IZU)を1000円で購入した。
 Connect MEとはDigi社が販売している組み込みモジュール製品で、無線/有線のネットワーク越しでシリアル通信ができるというもの。それだけではなく色々なことができる。

 見た目はEthernetのRJ-45コネクタ単体を一回り大きくしたようなもの。知らない人が見たら変わった形のRJ-45コネクタ、にしか見えない。
 今回購入したのはDC-ME-01-IZUというもので、調べたところ現在のDigi社のWebサイトの商品リストには無く、近しいものはDC-ME-01T-Cと思われる。幸い共立エレショップがネット販売もしているので商品ページからスペックは見られる。
eleshop.jp
 本体のRJ-45端子とは反対側の裏側に1.27mmピッチの2*10の端子がある。1.27mmピッチでは使いづらいので、1.27→2.54変換のサンハヤトのCK-47と2X10のボックスヘッダ(ボックスヘッダ 20P(2×10): パーツ一般 秋月電子通商-電子部品・ネット通販)を購入してはんだ付けした。

はんだ付け

 DC-ME-01TのHardware Referenceのpdf(Digi Connect ME NET+OS)を参考にピン配置図を作った。

DC-ME-01Tピン配置図

※裏側からのピン配置図なので注意。

 電源(3.3V)の電圧を加えてLANケーブルとルーターを接続してWebサーバーを確認したが、DC-ME-01T-IZUは192.168.1.1へのみDHCPの問い合わせを行うらしく、ルーターなどのDHCPサーバーが192.168.1.1以外の場合、IPが割り振られず永遠にアクセスできない。その場合ルーターの設定を変更するか、あるいはクロスケーブルでPCとDC-ME-01T-IZUを直結してPC側でDHCPサーバーを立てるかである。今回はKea-DHCPを使ってPC側にDHCPサーバーを立ててアクセスを試みる。なおPCの環境はUbuntu 22.04.1 LTSで、Kea-DHCPのkeactrlはver.2.0.2、kea-dhcp4はver.2.0.2である。
最初にKea-DHCPサーバーをインストールする。

$sudo apt install kea-dhcp4-server

インストール後、PC側のクロスケーブルで接続に使用するEthernetのインターフェースを確認する。

$ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp00: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff

ここでは2が有線LANのインターフェースで、インターフェース名enp00を控えておく。判別方法としては「enp~」から始まるときはだいたい有線LANで、「wlp~」から始まるときはおそらく無線LANである。
次にKea-DHCPの設定を行っていく。万が一オリジナルの設定がわからなくなっときに困るのでバックアップを取っておく。

$ cp /etc/kea/kea-dhcp4.conf ~/kea-dhcp4_origin.conf

直接オリジナルの設定ファイルを変更するのはよろしくなく、また本来ならばKea-DHCPの起動オプションで設定ファイルを指定して起動することができるのだが、Permission deniedで弾かれたため以下非推奨の設定の方法で行う。(解決方法が見つかれば修正します。)

$ sudo vim /etc/kea/kea-dhcp4.conf


// confファイルはJSON形式で記述されておりコメントは//で書く。
"Dhcp4": {
"interfaces-config": {
// インターフェース名を指定する。
"interfaces": [ "enp00" ]
~~
"subnet4": [
{
// サブネットマスクを指定する。
"subnet": "192.168.1.0/24",
~~
// 使用するIPアドレスの範囲を指定する。DC-ME-01T-IZUに与える固定IPアドレスはこの範囲のものにする。
"pools": [ { "pool": "192.168.1.10 - 192.168.1.200" } ],
~~
"option-data": [
{
// デフォルトゲートウェイIPアドレスを指定する。
"name": "routers",
"data": "192.168.1.1"
}
],
// 固定IPアドレスを設定していく。
"reservations": [
{
// 一番簡単なMACアドレスからIPアドレスを与える方法で設定する。
// DC-ME-01-IZUのMACアドレス
"hw-address": "00:40:9d:XX:XX:XX",
"ip-address": "192.168.1.10"
},
{
// 追加で指定する場合は続けて書いていく。
}
~~
設定ファイルを保存したら$sudo keactrl statusDHCPサーバの起動を確認する。起動していればsudo keactrl reloadで設定の再読込、停止しているのならsudo keactrl start -s dhcp4で起動する。ログは/var/log/kea-dhcp4.logにあり、起動しない場合は確認する。エラーログが出ずに起動しない場合はJSONの文法でエラーを起こしている場合もあるので、設定ファイルを確認する。
DHCPサーバーの起動に成功したら、Ubuntuのネットワークの接続の設定を変更して、固定IPにする。enp00インターフェースのIPv4の設定を「手動」にし以下のようにアドレスを設定する

アドレス: 192.168.1.1
ネットマスク: 24
ゲートウェイ: 192.168.1.1

DC-ME-01T-IZUに電源をつないで起動し、クロスケーブルでPCに接続する。pingを打って割り振られているか確認する。DC-ME-01T-IZUのwebサーバーが起動が遅いので帰ってこないときは、しばらく待って再度打つ。

$ ping 192.168.1.10

pingが帰ってきてIPアドレスが割り振られていることを確認したらブラウザで192.168.1.10にアクセスすると、下のようなページに繋がれば成功である。

またtelnetを使用しても接続が可能である。

$ telnet 192.168.1.10
Trying 192.168.1.10...
Connected to 192.168.1.10.
Escape character is '^]'.

#>   

backup boot close connect display exit help info kill newpass quit reconnect 
revert rlogin set show status telnet who ? 

#> status

  Connection: 1          From: 192.168.1.1

    Connection not associated with any sessions.

#> qConnection closed by foreign host.
$ 

なお、Kea-DHCPはOSが起動時に毎回自動起動するので、$ sudo systemctl disable isc-dhcp-serverで起動しないようにすると、$sudo keactrl start -s dhcp4で起動しなくなる。この場合は$ sudo systemctl start kea-dhcp4-server.serviceで一度起動すれば、$ sudo keactrl stopで止めても再度$ sudo keactrl start -s dhcp4で起動が可能になる。

参考文献