Category Archives: 雑記

RTX1200でDHCPとDDNS

自宅のネットワークの上流にはRTX1200が居るのですが,DHCPサーバや,静的なレコードを登録できるDNSサーバになれるので,DHCPサーバとかDNSサーバを別途立てるのはめんどくさいけど,或る程度細かく設定したいという場合に大変便利です.

しかし,DHCPとDNSが互いに連携していないので,DHCPで配布したアドレスをホスト名で名前解決をすることはできません.

そこで,LuaスクリプトでSYSLOGを監視し,DHCPでIPの払い出しを行ったら,show status dhcp summaryからホスト名を検索し,静的DNSレコードを自動で登録するようにしてみました.

公式のサンプルのおかげで初めてでもあっという間にできました.

--[[

  ●DHCPによるDDNS
  DHCPDのSYSLOGを監視し、検出したら当該のホスト名とIPアドレス対を
  静的DNSレコードとして登録

]]

--------------------------##  設定値  ##--------------------------------

-- 検出したい SYSLOG の文字列パターン
ptn = "%[DHCPD%]"

-- MACアドレス検出の文字列パターン
ip_ptn = "%d+%.%d+%.%d+%.%d+"
mac_ptn = "%x%x:%x%x:%x%x:%x%x:%x%x:%x%x"
base_dn = "hogehoge.local"

-- 出力する SYSLOG のレベル (info, debug, notice)
log_level = "info"        -- ★

------------------------------------------------------------
-- ホスト名検索                                             --
------------------------------------------------------------
function search_host_by_mac(mac)

        rtn, str = rt.command("show status dhcp summary")
        ipaddr, host = string.match(str, "("..ip_ptn.."):%s+"..mac..",%s+([%a%w%p]+)")

        return ipaddr, host
end

function search_host_by_ip(ipaddr)

        rtn, str = rt.command("show status dhcp summary")
        host = string.match(str, ipaddr..":%s+([%a%w%p]+)")

        return ipaddr, host
end

------------------------------------------------------------
-- メインルーチン                                         --
------------------------------------------------------------
local rtn, str
local buf

while (true) do
        rtn, str = rt.syslogwatch(ptn)
        ip,mac = string.match(str[1], "("..ip_ptn.."):%s+("..mac_ptn..")")
        if (mac) then
                ipaddr, host = search_host_by_mac(mac)

                if (host == nil) then
                    ipaddr, host = search_host_by_ip(ip)
                end

                if (host) then
                        buf = host .. "@" .. ipaddr
                        rt.syslog(log_level, "[Lua] Host detect " .. buf)

                        rt.command("no ip host "..host.."."..base_dn)
                        rt.command("ip host "..host.."."..base_dn.." "..ipaddr)
                        rt.command("clear dns cache")
                end
        end
end

このスクリプトをschedule at 2 startup * lua /dhcp_ddns.luaのように自動実行するようにしておけば,hostname.hogehoge.local等の名前解決ができるようになります.

居なくなったホストの削除が無いので流動的な環境では一定期間で削除するような処理が要るかも…

こうやって拡張出来るのがいいですねー

  • ホスト名に数字が含まれていると途中で切れる問題を修正しました
  • ホスト名登録後DNSのキャッシュをクリアするようにしました

関西電力計画停電(閲覧とWebAPI)

関西電力の計画停電の予定を閲覧できるシステムを作りました.(http://kteiden.chibiegg.net/)

ブラウザから今日・明日の停電予定を見る事ができます.

計画停電予定(サンプル)

計画停電予定(サンプル)

また,JSON.JSONP及びXMLで取得できるWebAPIも用意しています.詳細はこちらをご覧ください.

計画停電WebAPI

計画停電WebAPI

また,これらの情報はTwitter(@kteiden)でも配信しています.「翌日予定」「当日予定」をその都度配信していますのでご活用ください.

 

Seagete ST32000542ASのファームウエアアップデート

自宅のファイルサーバーのHDDのチェックをしていて、たまたま気づいたのですが。

うちで8台利用しているSeagateのST32000542ASのファームウエアが、「突然電源が切れる」「電源が入らなくなる」など、不具合のあるバージョンCC34でした。

恐ろしいので、アップデートすることに。

アップデータのダウンロード

http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=213915&NewLang=en

このサイトからアップデータCDのISOイメージをダウンロードします。これをCDに焼いて使います。

アップデート

アップデートに利用するPCにアップデート対象のHDDだけを接続し、CDを入れた状態で起動します。この時、USB変換とか使ってはいけません。SATAで直接接続してください。

無事CDから起動すると、READMEが表示されるのでESCを押すと、次のようなメニューが表示されます。

メニュー

メニュー

Lを押すとこのCDが対象としているHDDの型番とバージョンのリストが閲覧できます。

まず、HDDが正しく認識されているか、Sでチェックします。

HDD Scan

HDD Scan

Sを入力してしばらくすると、写真の様に認識されたHDDの一覧が表示されるので型番とバージョンが対象のものである事を確認します。確認できたらESCでメニューに戻ります。

で、メニューからアップデートできれば良いのですが、できないらしいので、「Ctl+C」「y」と入力して、メニューを終了するとプロンプトが表示されます。

コマンド入力

コマンド入力

ここに、写真のように、

FDL486A.EXE -m Hepburn -f HECC358H.LOD -s -x -b -v -a 20

と入力しEnterを入力すると、ファームウエアのアップデートが始まります。ここから完了するまで、電源を切ったり、キーの入力はしないでください。

下のように、プロンプトが表示されれば完了です。

アップデート完了

アップデート完了

「FLASH-M.BAT」と入力すると、メニューに戻れるのでZでシャットダウンしました。

Can you crack it?

Can you crack it? クリア

イギリスの政府通信本部(GCHQ)が現在採用活動の一環として、「Can you crack it?」と題して暗号解読クイズページを公開しています。

イギリス人であればこれをクリアするとエントリーフォームからエントリーできるみたいです。

Can you crack it?

Can you crack it?

で、先日大学の友達と相談しながらクリアしました。

Can you crack it? クリア

Can you crack it? クリア

実はこれ、表示されてる問題をクリアしたと思ったらstage 2 of 3が出て来ます(笑)。

面白かったので、解答までの流れをブログに書きたいのですが、期日まであと1日ちょっとあるので、その後にします。

F-2航空機の事故調査結果のソース

いまさらながらではあるが、以前の「愛知県豊山町でのF2戦闘機墜落事故(原因判明)」という記事を見直して気づいたのだが、配線ミスであったという情報の出典を書くのを忘れていたのだ。

それはちょっとまずい、その記事を書いたときのソースはもう特定できないので防衛省の公式発表の情報を書いておこうと思う。今後は出典URLを書くのを忘れないようにしないと…

防衛省・自衛隊:F-2航空機の事故調査について

10月31日に愛知県名古屋飛行場内で発生したF-2航空機の落下炎上事故に関し、事故調査委員会の現在までの調査により、

 フライトデータレコーダーの記録を解析したところ、パイロットの操舵に対し、機体が正常に追従していない

 飛行制御に係る装置類及び機体配線を調査したところ、装置類は正常に機能していたが、機体の姿勢変化を検知するピッチ・レート・ジャイロ(機首上下方向)とロール・レート・ジャイロ(横回転方向)の配線が逆に接続されていた ことが判明しました。

 このため、離陸時にパイロットが行った機首上下の操舵に伴う機体の動作を、飛行制御コンピュータが機体の上下変化として認識できなくなり、水平尾翼が異常な舵角で上下したために、落下炎上に至ったことが明らかになりました。
 今後は、配線の接続が逆になった原因を中心に細部調査を進めていくこととしています。
 なお、今回の事故を踏まえて一時的に見合わせていた部隊におけるF-2航空機による飛行については、配線取付位置の再確認、及び本事故に関する必要な教育等を実施した上で、逐次実施させることとしております。

阪急西院駅のゴミ箱使用中止

今日、阪急西院駅を通るとゴミ箱が封鎖されていた。
昨日6月26日から7月8日までだそうだ。
阪急西院駅の封鎖されたゴミ箱
昨日と今日に国際会館と迎賓館でG8サミット外相会合が開かれることをすっかり忘れていた…

昨日と今日ってちょうどアメリカが北朝鮮のテロ支援指定国家解除を発表した日だったのだが、もし拉致の被害国が日本ではなく、ほかの国なら「北朝鮮テロ支援国家指定解除」なんか発表されたら暴動とか起きてもおかしくないのかな、と友達と学校で少し話題になったのだが…日本ではやはり「G8外相会合」なんかとピッタリ重なっても何も起きなかった。

河原町はこの記事によると6月13日からだから西院では最初は封鎖するつもりが無かったけれど昨日のアメリカの発表で封鎖することにしたのか、それとも元から昨日封鎖するつもりだったのか気になるが全く関係ないのだろう。

1ヶ月も…

すいません。一ヶ月以上更新してませんでした。
コメントなどいただいて。本当にありがとうございます。
やはり個人のブログにきてくださる方がおられるとうれしい限りです。
ちょっと忙しいので一年ほどサーバー関係やプログラム関係はお休みします。
書くときもあると思いますが。
太陽光発電の記録も時々時間があればまとめて更新します。
データは忘れないようにとっておきますので…
もちろんブログは続けるのでこれからもよろしくお願いします。

大学に入ったら電子工作などもまたしようと…

(最近気になっているサイト)
W-SIM Wiki
マイコン工作実験日記
W-SIMはW-ZERO3 Advanced[es](赤耳)とnine.(青耳)。(赤と青を交換したので…)さらに灰耳の白ROMを持っているので大学入ったら解析なんかもしようかと…。W-SIMのソケット買っとこうかなぁ。
DDをつかってMacのターミナルからPHSに電話をしたり、かかってきた電話に応答したりは実験しました。ライトメールの送受信なんかマイコンからシリアル経由でできたりしたらおもしろいなぁ…と思ったり。自分はH8/SH/PICしか使ったことがないのでAtmegaとかも使えるようにしたいと思います。TOPPERSとかもCQ出版のInterfaceで読んでて面白そう…
まぁ楽しみにおいておきます。

愛知県豊山町でのF2戦闘機墜落事故(原因判明)

2007年10月31日の午前9時12分頃に起きたF2戦闘機墜落事故について。
この航空自衛隊の戦闘機は三菱重工業が定期点検をするために預かっていたそうだ。
タッチアンドゴーの試験をするために愛知県豊山町の県営名古屋空港からの離陸の際、浮上できず(瞬間浮いたが)炎上したという事故だった。幸い乗組員の命に別状はなかった。

このニュースを映像でみたとき私は離陸可能な速度に達する前に操縦桿を引いてしまったのかと思った。以下は素人的な考えであることを承知の上で読んでいただきたい。
Read more …