Top > WiRES > 遠隔地に設置

WiRES/遠隔地に設置

概要

WiRESノードを遠隔地に設置するというミッションが現れた。遠隔地というのは以下のような場所である。

  • 既存インターネット回線を使い、既設のルータの設定変更を行う事無く設置・撤収が可能。
  • なかなか立ち入ることが出来ない。

そこで・・・全てを遠隔で行う方法が必要!となる。

今までの問題点

  • パソコンはたまに調子悪くなって固まる。
    • ある程度の周期で再起動などが必要。
    • WindowsUpdateなどで勝手に再起動してハングアップする例もある。
  • 遠隔地では再起動が出来ない。
    • TermViewerなどでログインすることは出来るが、誤って電源をOFFにしてしまうと二度と立ち上がってこない。(←現地に立ち入って電源を入れてくるしかない。)

設置案

インターネット回線接続

  • 既設ルータの下にもう一つルータを設置する。
    • WANアドレスは DHCP取得にする。
    • ルータで PPTPクライアントとしてマイIPに接続し、ルータ自身にグローバルIPアドレスを割り振る。
    • マイIPに常時接続し、常にルータにはグローバルIPアドレスが割り当たるようにする。
    • 40000-50000(TCP/UDP)をLAN下に接続した WiRESノードPCにポートフォワーディングする。
  • WakeOnLANを使ってインターネット側からPCの電源をONできるようにする。
  • ルータにはPPTPサーバーを稼動させて、WAN側からルータにログインできるようにしておく。
  • ルータは業務用 YAMAHA RTX1000 を使用した。

死活監視機能自動再起動

  • 10分に1回、インターネット接続ができるかどうか ルータのWAN側にpingを送り反応が無ければ、ワイヤーズPC自ら再起動を行うようにする。

ルータの設定

以下の条件で設定した場合。

  • MyIPで取得したIPアドレス 61.206.113.131
  • VPNサーバー myip03.interlink.or.jp(203.141.128.102)
  • LAN2がWAN側で既設ルータ配下に接続しDHCP接続される。
  • LAN1がLAN側でWiRES PC(IP 192.168.100.100)が接続される。
  • pp1でMyIPに常時接続しトンネル1を定義し、nat descriptor 2000 を定義。
  • nat descriptor 2000 で WiRESで使用するポートや遠隔操作用ポート、WakeOnLAN用ポートのフォワーディングを行う。
  • pp anonymous で PPTPサーバーを稼動。トンネル2を定義。

config.dat

# show config
ip route default gateway tunnel 1 metric 1
ip route 61.206.113.0/24 gateway tunnel 1
ip route 203.141.128.102 gateway dhcp lan2
ip lan1 address 192.168.100.1/24
ip lan1 proxyarp on
ip lan1 wol relay broadcast
ip lan2 address dhcp
ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 101080 101081
ip lan2 secure filter out 101013 101020 101021 101022 101023 101024 101025 101099 dynamic 101080 101081 101082 101083 101084 101098 101099
ip lan2 nat descriptor 200
pp select 1
 pp name WAN/VPN:MyIP03
 pp bind tunnel1
 pp always-on on
 pp auth accept mschap
 pp auth myname <MyIP ログインID> <MyIP パスワード>
 ppp ipcp ipaddress on
 ppp ccp type mppe-any
 ppp ipv6cp use off
 ip pp nat descriptor 2000
 pptp service type client
 pp enable 1
pp select anonymous
 pp name RAS/VPN:
 pp bind tunnel2
 pp auth request mschap-v2
 pp auth username <PPTP用ログインID> <PPTP用パスワード>
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type mppe-any
 ppp ipv6cp use off
 ip pp remote address pool 192.168.100.150-192.168.100.152
 ip pp mtu 1280
 pptp service type server
 pp enable anonymous
tunnel select 1
 tunnel encapsulation pptp
  tunnel endpoint address 203.141.128.102
 pptp tunnel disconnect time off
 pptp keepalive interval 30 12
 ip tunnel nat descriptor 2000
 tunnel enable 1
tunnel select 2
 tunnel encapsulation pptp
 pptp tunnel disconnect time off
 tunnel enable 2
ip filter 101000 reject 10.0.0.0/8 * * * *
ip filter 101001 reject 172.16.0.0/12 * * * *
ip filter 101002 reject 192.168.0.0/16 * * * *
ip filter 101003 reject 192.168.100.0/24 * * * *
ip filter 101010 reject * 10.0.0.0/8 * * *
ip filter 101011 reject * 172.16.0.0/12 * * *
ip filter 101012 reject * 192.168.0.0/16 * * *
ip filter 101013 reject * 192.168.100.0/24 * * *
ip filter 101020 reject * * udp,tcp 135 *
ip filter 101021 reject * * udp,tcp * 135
ip filter 101022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 101023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 101024 reject * * udp,tcp 445 *
ip filter 101025 reject * * udp,tcp * 445
ip filter 101030 pass * * icmp * *
ip filter 101031 pass * * established * *
ip filter 101032 pass * * tcp * ident
ip filter 101033 pass * * tcp ftpdata *
ip filter 101034 pass * * tcp,udp * domain
ip filter 101035 pass * * udp domain *
ip filter 101036 pass * * udp * ntp
ip filter 101037 pass * * udp ntp *
ip filter 101080 pass * 192.168.100.1 tcp * 1723
ip filter 101081 pass * 192.168.100.1 gre * *
ip filter 101098 reject-nolog * * established
ip filter 101099 pass * * * * *
ip filter 500000 restrict * * * * *
ip filter dynamic 101080 * * ftp
ip filter dynamic 101081 * * domain
ip filter dynamic 101082 * * www
ip filter dynamic 101083 * * smtp
ip filter dynamic 101084 * * pop3
ip filter dynamic 101098 * * tcp
ip filter dynamic 101099 * * udp
nat descriptor type 200 masquerade
nat descriptor address outer 200 primary
nat descriptor masquerade static 200 1 192.168.100.1 tcp 1723
nat descriptor masquerade static 200 2 192.168.100.1 gre
nat descriptor type 2000 masquerade
nat descriptor masquerade static 2000 1 192.168.100.100 tcp 40000-50000
nat descriptor masquerade static 2000 2 192.168.100.100 udp 40000-50000
nat descriptor masquerade static 2000 3 192.168.100.100 tcp 5800
nat descriptor masquerade static 2000 4 192.168.100.100 tcp 5900
nat descriptor masquerade static 2000 5 192.168.100.1 tcp 1723
nat descriptor masquerade static 2000 6 192.168.100.1 gre
nat descriptor masquerade static 2000 7 192.168.100.255 udp 9104
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.100.2-192.168.100.191/24
dns server 203.141.128.34
dns server dhcp lan2
dns private address spoof on
pptp service on
httpd host lan1

死活監視機能自動再起動

  • こんなことを自動でやってくれるテーブルタップが商品として出回っている。これをつかうのが一番だが、お金をかけないでやりたい。
  • 10分に1回 あるバッチファイルを読み出す。
  • バッチファイルってこんな感じ。

    OnlineTestRestart.bat

    @echo off
    set TARGET_IPADDRESS=61.206.113.131
    set SHUTDOWN_COMMAND="C:\WINDOWS\system32\shutdown.exe"
    set SHUTDOWN_MESSAGE="再起動をすることを準備しています。拒否するにはコマンドラインから shutdown /a を投入してください"
    set /a MAXLOOP_CONUT_LENGTH=3
    set /a PING_LENGTH_AT_ONLINE=2
    set /a PING_WAITTIME_MS=3000
    set /a COUNT=0
    set /a RETRY_WAIT_TIME=30
    
    echo ** 死活監視・再起動 バッチファイル**
    echo   監視先      : %TARGET_IPADDRESS%
    echo   再試行回数  : %MAXLOOP_CONUT_LENGTH%
    echo   再試行間隔  : %RETRY_WAIT_TIME% [sec]
    
    ping -w %PING_WAITTIME_MS% -n %PING_LENGTH_AT_ONLINE% -a %TARGET_IPADDRESS% | find /i "bytes=32" 1>nul
    if %errorlevel%==0 (
     goto end
    ) else (
     echo IP[%TARGET_IPADDRESS%] は ping応答がありませんでした。
     goto step1
    )
    
    :step1
     set /A count=count+1
     echo *** [再試行] %count%/%MAXLOOP_CONUT_LENGTH% 回目です %RETRY_WAIT_TIME%秒後に再試行します。
     ping localhost -n %RETRY_WAIT_TIME% >NUL
     ping -w %PING_WAITTIME_MS% -n %PING_LENGTH_AT_ONLINE% -a %TARGET_IPADDRESS% | find /i "bytes=32" 1>nul
     if %errorlevel%==0 (goto end)
     if %count%==%MAXLOOP_CONUT_LENGTH% (
       echo オフラインにより再起動を準備します
       %SHUTDOWN_COMMAND% /r /f /t 30 /c %SHUTDOWN_MESSAGE% /d p:0:0
       goto end
     )
     goto step1
    
    :end
     exit 0

Reload     Front page List of pages Search Recent changes Backup   Help   RSS of recent changes
Last-modified: Tue, 27 Dec 2016 19:33:48 JST (2668d)