Network」カテゴリーアーカイブ

NEC NetMeister 利用規約変更

NetMeister の利用規約変更のメールが届いた。
EOL から1年後に機器の登録取消。
保守が中止されるので、ファームウェア更新・DDNS が使用出来なくなる。

ix2207 は今年(2023年)販売終了なので、2028年 EOL になる。
NetMeister で DDNS が使用可能なのは、NetMeister Prime を契約しないと
最長 2029年まで。

NetMeister以外のダイナミックDNSサービスも可能だが、
Free の DDNS ドメインは、スパムメールの温床として
セキュリティソフトに弾かれるので個人利用なら良いでしょう。

販売終了直前に納入した機器は DDNS だけを考えると、6年しか使えないので
10年更新が基本の規模の小さな自治体や出先事務所の仮設 VPN に利用する企業には、
YAMAHA の RTX を勧めた方が無難かも?

UNIVERGE IX2207 と strongSwan で IPsecVPN

UNIVERGE IX2207 を入手したので、Raspberry Pi 4 との間で IPsecVPN を構築してみた。

● IX2207 設定
とりあえず、WebGUI で出来る範囲で設定

※ keepalive は、WebGUI では設定出来ないので、必要ならコマンドにて設定

● Raspberry Pi4 設定
strongSwan (swanctl) の proposal は、aes256-sha1-modp2048 で可能
iptables を設定後、LAN 間接続良好 (ssh・VNC 等にて確認)

apcupsd ネットワーク共有

UPS から電源を供給してる server を 電源OFFの前に shutdown する

APCUPSD:Version 3.14.14

●マスタ側の設定変更

$ sudo nano /etc/apcupsd/apcupsd.conf
————————
#NISIP 127.0.0.1
NISIP 0.0.0.0
————————
$ sudo systemctl restart apcupsd

●スレーブ構築

・UPS のバッテリーから電源を供給してる server で構築
・シャットダウンするだけなので、apcupsd-cgi は不要
・masterより先に停止する

$ sudo apt install apcupsd
$ sudo nano /etc/apcupsd/apcupsd.conf
———————————————————
UPSCABLE ether
UPSTYPE net
DEVICE masterのip:ポート番号

BATTERYLEVEL ○○ ← masterより高め
MINUTES ○○ ← masterより残時間多め
TIMEOUT ○○ ← masterより早め
NISIP 0.0.0.0
SELFTEST OFF
———————————————————

$ sudo nano /etc/default/apcupsd
—————————-
ISCONFIGURED=yes
—————————-
$ sudo systemctl restart apcupsd

マスターへの接続確認
$ apcaccess
DATA が表示されれば OK

apcupsd メール送信

停・復電時のメール通知

■ Postfix インストール
# apt install postfix libsasl2-modules -y
gmail の smtp を使用する様にすれば
プライベートIP接続のプロバイダからもメール送信可能

■ apcupsd メールを送信
デフォルトでは、nkf が無いので
# apt install nkf
設定は、このサイト などを参考に

■ 停電試験
※ UPS の ACプラグの抜差しで試験
● Web 表示

● 停電時のメール

● 復電時のメール

Raspi で WiFi 中継器

Rasberry Pi zero W と GW-450D KATANA で WiFi中継器 を作ってみた。

内蔵 WiFi は、wpa_supplicant にて既設 WiFi AP に接続
GW-450D KATANA (bullseye で、自動認識) は、hostapd にて WiFi AP を構築
wlan1 (GW-450D KATANA) 側に、isc-dhcp-server を構築
wlan0・wlan1 を iptables 双方向に疎通可に設定
既設 gateway (Router等) に、スタティックルート 設定
これで、UTP の追加敷設なしで、既設 WiFi のエリア外でも LAN 接続が出来る。

※ wlan0・wlan1 間の bridge が出来なかったので NAT 接続

ahamo と Raspbery pi で自宅 NET 回線

ahamo 大盛り 100GB 4,950円
大盛りでもテザリングOK
1回あたり5分以内の通話が、回数無制限で無料

自宅でオンラインゲーム等はやらないし 1ヶ月 100GB 有れば十分なので、
NTT の 回線を解約し、ahamo sim にて自宅 NET 回線を構築した。

まず、以下の環境にて接続してみたら、
RTX と L-03f の USB 2.0 がボトルネックの様で、速度が 22〜25Mbps 程度しか出なかった。
(スマホでは、50〜60Mbps)

折角の音声 sim なのに通話もできないので、古いスマホ・古いPHS・Raspi 3B で
通話・SMS 可能なモバイルルーターを作成。

スマホ・PHS・Pi3 は余り物なので、ダイソーのスマホスタンド(¥110)のみ購入

古いスマホなので USB テザリングだと過充電でバッテリー破損を考慮し
テザリングは WiFi を選択。

最近のスマホは、保護回路で100%になれば充電を止めてくれるので
USB テザリングが良いかも?

速度は、WiFi 接続なので 50〜20Mbps とふらつくが、
1回あたり5分以内の通話が(回数無制限)無料のメリットが大きい。
(着信は100%スマホなので、折返し電話する場合に使用)
Gateway がスマホなので、pi3 の iptables は最小限の input・forward・net 設定でOK

問題点

  • 当方のテザリング環境では DNSリレーが NG だったので、pi3 に内部向けDNS(Unbound) を構築し、DHCP(isc-dhcp-server) で 1st DNS に設定した。
  • 100GB 制限が有るので、apache2 + Vnstat v2.6 でパケット量を可視化
  • 元々、バッテリー劣化で買い替えた古いスマホなので、充電が煩雑
  • プライベートIP の sim なので、サーバーの外部公開が不可
  •  
    ※ vnstat PHP frontend は、v1 用の Webサイト ですが、v2 でも見た目は同じです。 

    Pi 2・3 bullseye で WI-U2-433DM と GW-450D を使用

    ■ WI-U2-433DM
    このサイトを参考に rtl8812au ドライバーを追加
    pi3 : 2022-04-04-raspios-bullseye-armhf ・ 2022-04-04-raspios-bullseye-arm64
    pi2 : 2022-04-04-raspios-bullseye-armhf
    で構築してみた結果
    pi3 は、問題なく動作。
    pi2 は、insmod では組み込めず modprobe で動作可能。

    ■ GW-450D (KATANA)
    自動認識で使用可能
    ※ openwrt-21.02.3 でも kmod-mt76x0u をインストールすれば使えた。

    どちらの USB WiFi も hostapd にて bridge AP を構築し確認済
    これで、古い余り物でも暫くは使えそうです。

    Pi Zero W で LTE Router ( VPN+VLAN )

    過去記事の
    VLAN WiFi AP
    RTX1200-Raspi 間で IPsec VPN – 2
    RTX1200-Raspi 間で IPsec VPN – 3
    MyDNS.jp の自動更新
    Unbound で 内部向け DNS
    に、isc-dhcp-server を VLAN 対応で追加して Router を試作してみた。
    (試作なので、スループットは無視)
    WiFi AP は、自宅内に 2.4GHz 帯の空き ch が無いので、今回は未構築。


    余ってた GS908M に、VLAN 2・VLAN 3・VLAN 4 が設定してあったので、そのまま流用。

    試験動作は良好ですが、
    実運用には pi3 か pi4 で構築しないと使い物にはならないと思われます。

    Unbound で 内部向け DNS

    最近、Nextcloud・Zabbix・Redmine・WordPress 等
    設定テスト用のサーバーが増えて、IP を覚えるのも大変になったので
    余りの Pi zero を Unbound で、内部向けDNSにした。

    ● install
    # apt install -y unbound
    (apt だと一寸古いけど、内部からだけのアクセスなので)

    ● 基本設定 (IPv6 不使用)
    /etc/unbound/unbound.conf.d/

    server:
        # IPv4 デフォルトルート
        interface: 0.0.0.0
    
        # IPv4 使用
        do-ip4: yes
    
        # UDP/TCP両方使う
        do-udp: yes
        do-tcp: yes
    
        # ローカル IP からの問い合わせを許可
        access-control: 127.0.0.1/8 allow
        access-control: 10.0.0.0/8 allow
        access-control: 172.16.0.0/12 allow
        access-control: 192.168.0.0/16 allow
    
        # バージョンを出さない
        hide-version: yes
        hide-identity: yes
    
        # スプーフィングパケットを 1000個 受け取ると自動でキャッシュをクリア
        unwanted-reply-threshold: 1000
    
        # roothintを指定する
        root-hints: "/etc/unbound/root.hints"
    
        # ログを出す
        logfile: "/var/log/unbound/unbound.log"
        use-syslog: no
        log-time-ascii: yes
    
    remote-control:
        # unbound-control 使用
        control-enable: yes
    
        # ローカルのみ使用
        control-interface: 127.0.0.1
    
        # デフォルトの鍵を指定
        server-key-file: "/etc/unbound/unbound_server.key"
        server-cert-file: "/etc/unbound/unbound_server.pem"
        control-key-file: "/etc/unbound/unbound_control.key"
        control-cert-file: "/etc/unbound/unbound_control.pem"
    

    unbound.conf チェック
    # unbound-checkconf /etc/unbound/unbound.conf.d/unbound.conf

    ● ルートヒント取得
    # curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache

    ルートヒントの更新とログローテーションは、近日中に設定予定

    ● パフォーマンス調整 (不要)
    以下、日本Unboundユーザー会の文書
    ————————————————————
    これはunboundを最適化するためのガイドです。
    ほとんどのユーザはこれを行う必要はありません。
    ————————————————————

    ● 内部向け DNS
    ドメインを所有していれば、サブドメインで運用

    ドメイン未所有の場合
    「.local」のドメイン名は、非推奨なので下記の .test か .example を使用
    ——————————————————————————————
    例示用の予約トップレベル・ドメイン名
    .test テスト用
    .example 例示用
    .invalid ドメイン名が“不正”であることを表すためのドメイン
    .localhost ループ
    ——————————————————————————————

    【正引きの設定】
    local-data: “domain. [TTL] IN レコード IP”
    【逆引きの設定】
    local-data-ptr: IP [TTL] domain.”

    /etc/unbound/unbound.conf.d/

    server:
        local-zone: "hoge.test." transparent
    
        local-data: "hoge.test. IN A 192.168.0.1"
        local-data: "foo.hoge.test. IN A 192.168.0.2"
    
        local-data-ptr: "192.168.0.1 hoge.test."
        local-data-ptr: "192.168.0.2 foo.hoge.test."
    

    ※ [TTL] 省略時は、3600 秒

    # service unbound restart

    ● dump_cache
    # unbound-control dump_cache

    MyDNS.jp の自動更新

    更新の手順
    自身のグローバルIPアドレスを確認
    IPが変化した時だけ MyDNS と IP比較用ファイル を更新
    ( MyDNS へ過度なアクセスをしない )
    ※ 更新スクリプトは任意の場所(今回は /home/「user」/ipsend)

    ● Linux でグローバルIPアドレスを確認する方法
    $ curl ifconfig.me
    $ curl ifconfig.io
    $ curl inet-ip.info
    今回は、inet-ip.info を使用

    ● IP比較用ファイルの初期作成
    $ mkdir /home/「user」/ipsend
    $ curl -s inet-ip.info > /home/「user」/ipsend/old_ip.txt
    $ chmod 666 /home/「user」/ipsend/old_ip.txt

    ● MyDNS 更新スクリプト

    #!/bin/bash
    
    newip=$(curl -s inet-ip.info)
    oldip=$(sudo cat /home/「user」/ipsend/old_ip.txt)
    
    if [ "$oldip" != "$newip" ]; then
    wget -O - --http-user=「mydns-user」 --http-password=「mydns-passwd」http://ipv4.mydns.jp/login.html
    echo $newip > /home/「user」/ipsend/old_ip.txt
    fi
    
    exit 0
    

    $ chmod 755 /home/「user」/ipsend/ipsend.sh

    ● 更新の確認
    IPが変化した時だけ MyDNS を更新してるかを確認する為に LOG に書き出す。
    # touch /var/log/mydns.log
    # chmod 666 /var/log/mydns.log

    # MyDNS IP
    */10 * * * * sh /home/「user」/ipsend/ipsend.sh > /var/log/mydns.log 2>&1
    

    # /etc/init.d/cron restart

    ※ IPが変化し、更新した時だけ下記の用な LOG が書き込まれる。
    —————————
    ipv4.mydns.jp に接続
     …
    `STDOUT’ に保存中
    <html>
     …
    </html>
     …
    stdout へ出力しました
    —————————
    更新しなかった時は、空ファイルを上書きする。

    ● 自動更新
    試験結果が良ければ LOG 書き出しを停止
    ( SDカード延命の為、余計な書き込みをしない )

    # MyDNS IP
    #*/10 * * * * sh /home/「user」/ipsend/ipsend.sh > /var/log/mydns.log 2>&1
    */10 * * * * sh /home/「user」/ipsend/ipsend.sh &>/dev/null
    

    # /etc/init.d/cron restart