Dockerの仮想NICでraw socketプログラミングをやってみる

前回に引き続き、Dockerのネットワーク周りです。
今回はDockerの仮想NICをraw socketで扱ってみようと思います。

Dockerの仮想NICはホストOS上で見えるvethとip linkの関係にあり、対応するvethにパケットを送信するとコンテナ内のethに転送されます。
そしてホストOS上で見えるvethは、通常のNICと同じように扱えます。
Docker標準ではこのvethがLinux bridgeであるdocker0というブリッジに接続されますが、前回はvethをdocker0から剥がしてOpenvSwitchに接続しました。
これによりVLANが扱えたり、OpenFlowでパケット転送を制御したりが可能となりました。
今回は、そのOpenvSwitchに当たる転送処理を自前で実装してみようというのが趣旨になります。
まずは簡単なバカハブ(リピーターハブ)を実装してみたいと思います。

(さらに…)

物理のトランクリンクをOpenvSwitchで受けて各Dockerコンテナに渡す

ご無沙汰しております(3年ぶり)
仕事?
もちろんしてますよ。あと山登りしてます。

それはそうと、仕事でネットワーク関連の検証をやっていて、ただのPing箱がたくさん欲しくなったとき、こんな感じの構成を作りたかった。

今までただPing返してくれれば良かったので、
この絵で言うコンテナ部分をnetns(Linux Network Namespace)でやっていた。
もちろんnetnsはネットワークの隔離であって、ファイルシステムやプロセス空間までは分けてくれない。
なので、すでにホストOS上でApacheだったりsshdだったりが動いていると、起動スクリプトをいじくったりしないといけない。
ここがコンテナになると、一度にネットワークもファイルシステムもプロセス空間も分離できる。
さらにDockerならDockerfile少し書いたり、出来合いのイメージ拾ってくるだけでサーバとかも一瞬で建てられる。
というわけでやってみよう。

(さらに…)

Juliusを使った音声認識で遊ぼうとしたら大変だった話

先日、卒業研究の中間発表が終わりました。
少し時間もできたので、そろそろ高専祭に向けてEject工作の準備を進めなければなりません。
ネタは既に決まっていてTwitter等を見ている方はわかると思いますが、「Ejectカー」です。(詳しくはまた別途記事を書きます。)
機構自体は既に出来上がっていて、もう後は組み立てるだけにところまでは来ています。

で、問題は「何をトリガーにして動かすか」です。
候補としては「Twitterのリプライorハッシュタグ」を考えています。
まぁ他にも色々使えそうなものがあれば使いたいなぁと色々妄想していたのですが、そこで思いついたのが「音声認識」でした。

で、とりあえず音声認識だけやってみようということで、軽い気持ちで始めたのが今回の苦労の始まりでした。

(さらに…)

PHPでアクセスカウンターを作りたい!第二回~リロード対策~

前回の記事から結構放置してましたが、前回の続きです。
(Twitterで後輩に「第二回書けよクソ野郎」的な感じで突っ込まれたので書きます。。)
今回は前回作成したアクセスカウンターにリロード対策を実装します。

前回のソースコードに数行足すだけですので、簡単です。

(さらに…)

[Eject]VPS上にNode.jsでチャットサーバを作って自宅のRaspberryPiにEjectさせる

私が今使っている自宅のインターネット環境ではプロバイダからDHCPでIPアドレスをもらい、固定IPは有料となっています。
また、ポート等も上位のネットワークで管理されており、内向きのパケットは基本的にすべてが破棄されます。
固定IP取得ポート開放はいくらか支払えば可能ですが、月2000円くらいかかったりするので、できれば無料でやりたいですよね。

そこで考えたのが、以前の[Twitter]←(UserStrem監視)←[RaspberryPi]→(制御)→[Eject]だったわけですが、これではTwitterに依存することになります。
できればTwitterなどを使わずに自由にEjectしたいです。(UIも自分で作ったり)

というわけで今回はVPS上にNode.jsでチャットサーバを立てることで実現してみました。

※Ejectネタです。(☝ ՞ਊ ՞)☝ウィーン

(さらに…)

[Eject]光学ドライブの開閉状態を取得してみる

Ejectコマンド工作をやってると良く光学ドライブの開閉状態を確認したくなりますよね。
ならないとしたら、今すぐこの記事を読むのをやめて病院に行って下さい。

※Ejectネタです。(☝ ՞ਊ ՞)☝ウィーン

というわけで今回は、光学ドライブの開閉状態を確認する方法を考えてみました。

(さらに…)

[Eject]Ejectコマンドで遊んだ

ある日、友人のれったーさんがこんなこと言ってました。


というわけで、ここ数日間はEjectやってました。

※Ejectネタです。(☝ ՞ਊ ՞)☝ウィーン
以下、Ejectに興味のある頭のおかしい方向けです。

(さらに…)

PHPでアクセスカウンターを作りたい!第一回~まずはカウントアップから!~

初の(不定期)連載記事です!!

車輪の再発明みたいな感じにはなりますが、アクセスカウンターを作って行きたいと思います。
何でアクセスカウンターなのって、理由としてはシンプルだけど実際に自分で作ったことがなかったからです。

アクセスカウンターと一言に言っても種類も実装方法を結構色んな種類がありますね。
最も単純なのは「ページをロードしたらアクセス数をインクリメントする」というものです。
逆に複雑なものを作ろうとすると、「アクセス情報をデータベースに保存して、あとで統計データが取れるような”システム”」になってしまいます。

どんなものをどう作るのかは用途次第ですが、色々作って行きたいと思います。
(連載的なの初めてなので全何回になるか分かりませんが、どうぞお付き合いお願い致します)

(さらに…)

近況のご報告

前略

お世話になっております。かまぼこです。
はじめに前回の更新から3ヶ月以上という長く期間が空いてしまったことをお詫びいたします。
12月より就職活動も始まり、忙しい日々が続くばかりです。

何を書くかネタは溜まっているのですが、執筆する時間の確保が難しい状況にあります。
そこで今回はまとめて近況のご報告をしようと思い、この度更新しようと考えた次第です。
いつも通り稚拙な文章で申し訳ないのですが、少しでもお楽しみいただけましたら幸いです。

末筆ながら皆様の更なるご活躍をご祈念いたしております。

草々

 

(さらに…)

和風美少女にストレージを管理してもらおう! CrystalDiskInfo Shizuku Edition

最近はSSD使い始めた

HDDクラッシュって怖いですよね。(威圧)
大きなクラッシュは生きてて3回ほど体験しましたが、絶望しかないです。

HDDがクラッシュする前兆、昔は「カツンカツン」言いだしたり、はっきりとした前兆がありました。
しかし、最近のHDDは優秀で、静かになりました。
その分、前兆に気づけなかったりで、HDDがお亡くなりしてしまうと、泣き寝入りするしかないわけです。

そこで、HDDの情報をソフトウェア(ハードウェア)的に取得して、管理するソフトウェアの紹介です。

(さらに…)