オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

ルータの自作:つづき

»

先日ルーターを自作した記事を書いたところ、意外とアクセスがあったようなので、気をよくして続きです。

その後、より本物のルータらしくするために調整していました。一番苦労したのはARPというか、IPアドレスとMACアドレスの紐付けです。ioctlで取得していたのですが、実は非常に不安定で・・・というのも、パケットの中継を自作プログラムで行うため、カーネル内ではARPテーブルのポジティブフィードバックが行われず、結構あっさりとARPテーブルから消えてしまうのです。そこで、自作ルータアプリ内でIPアドレスとMACアドレスのテーブルを持つようにし、MACアドレスがわからない場合は自分でARPパケットを投げ、ARP応答も常にチェックするようにしてテーブルを構築するようにしました。結局何でも自分でやった方がコントロールできて良いものです。。

また、tracerouteコマンドに対応するためにも、IPヘッダのTTLをカウントダウンすることと、TTLがゼロになったらICMP_TIME_EXCEEDEDを応答する機能も追加しました。

これでようやく、ほぼ普通のルータレベルになったと思います。もっとも、NATやIPマスカレードは今回不要なので作ってませんが。でも実はIPアドレスとポート番号も管理しているので、やろうと思えばできます!

ということで、ネットワークプログラミングはやっぱり楽しい!!

さて、ルータの実験をするため、いろいろとブラウザで重たいページを見たりしていたところ、Google Earthがいつのまにか結構進化していることに気がつきました(全然見てなかったもので)。

Gearth
勤務先のCADビルです。なかなか本物っぽく見えますねぇ!山手線の線路・車両の立体感が少し物足りないのですが、ビルはなかなかそれっぽいです。

さて、その勤務先の、プリント基板設計事業のWEBページが更新されました。これまでIT関連事業やゴルフ練習場用機器関連事業ばかり目立っていて、プリント基板設計事業が寂しい状態でしたので、まずは見た目とボリュームをかなり増やしてみました。営業担当のブログもありますので(メタボネタが充実してます・・・)、是非どうぞ。

Comment(2)