長文

「学科ではネットワークに繋がるために必要なIPアドレスやゲートウェイなどの情報を自動で割り当てるためのプロトコルであるDHCPを使ってネットに繋ぐために、MACアドレスをシステムに登録します。DHCPではなるべく一度繋がった機器に対して同じIPを振るようになっていますがIPが変わってしまうこともあります。それは再起動を行ってキャッシュがクリアされた時やDHCPが持っているIPアドレスの範囲がいっぱいになってしまった時に使われていないIPが振られるといったときです。IPが変わるとサーバ用途で使いにくい、などの理由からMACアドレスを登録することによってMACアドレスに対して同じIPアドレスを振り続けられるようにし、サーバ用途なPCでも安定的な利用ができるようになっているわけです。IPアドレスが変わるとなぜサーバ用途で使いにくいのか、というと話が若干それてしまいますが、DNSとの連携が理由として挙げられます。定期的にIPが変わってしまうようになると一度設定したホストに対してIPアドレスを変更する必要がある上に、DNSレコードが伝搬されるのには時間がかかります。DNSレコードの伝搬に時間がかかる、というのは学科を例に挙げると、VM申請をしてホスト名も登録したのにsshでそのホスト名でログインできないということを経験したことがある人も居ると思います。それはDNSのレコードの伝搬に時間がかかっているためです。IPアドレスでsshアクセスするとしっかり通信する、というのはホスト名を貴方が参照しているDNSサーバが知らないためです。話はそれましたが、そのため、サーバ用途で機器を使用する際にはIPアドレスを固定するのが一般です。逆にサーバ用途でもないのにグローバルIPをstaticな状態にしている学科はセキュリティやらの観点的に言えばかなり問題があるとは思いますがそれはさておき、MACアドレスは世界で一意なアドレスであるためにIPアドレスが被るということは基本的には発生しません。ちなみにMACアドレスの最初の3オクテットはベンダIDを、後半の3オクテットは機器IDを指しています。なので最初の3オクテットで調べるとそのMACアドレスがどこのベンダのものなのかがすぐに分かります。安定したIPアドレスの供給をDHCPで使うために登録されたMACアドレスはMACアドレスを登録したユーザ名と一緒に学科のDB(データベース)に保存されています。DHCPが振るIPを固定化したい場合はleaseファイルというファイルに直接書き込みますが、学科ではそのときにDBにもそのMACアドレスを保存しています。なぜDBに保存しているのか、というと実はよく分かってません。DBを使っているのはDNSとデータベースの連携をしているためで、そのために必要な情報といえばIPとホスト名くらいなものなわけでとか考えていましたけど実はDNSには結構なレコードの種類があって、で、その種類とか諸々を挿入・変更・削除しやすいDBを使って管理しているってことなんだろうか、と書いていて思いました。でも結局DBにMACアドレスを保存するのは謎で、DNSに必要なIPアドレスとホスト名とレコードのタイプがあればいいじゃん、ホスト名って言ったけどレコードのデータじゃん、とかって思いましたけど学科ではそういうの全部webで管理してましたし一台一台をしっかり把握するっていう意味ではMACアドレスを使うってのは理に叶ってるな、と思いました。実際上述した通りMACアドレスってのは世界中でただ一つのアドレスな分けですからね。そんなこんなで話それまくりなんですけれど、矛側は、このDBにアクセスするという権限が与えられています。DBといっても結局テーブルで分けられているわけで、ストーキングツール側がこのDBの全ての情報にアクセスできる、っていうわけではないはずです。今現在は、ですけれど。ちなみにストーキングツール側が取得している情報はMACアドレスとユーザ名と更新日くらいなもののはずです。これも今現在は、という制限つきなんですけれど。怖いところはこれから仕様が変更される可能性があるってことなんですけれど、その辺はお得意のソーシャルエンジニアリングでどうにかしたいと思いますキリッ。で、ストーキングツールはこれだけに飽き足らず、というかこれだけでどうやって個人特定するんですか、っていう話でもあるんですけど、各部屋のスイッチから定期的に情報を取得することもしています。これを実現するプロトコルはSNMP(Simple Network Management Protocol)といって、IPネットワーク上のネットワーク機器のマネジメントや制御を行う方法を定めたプロトコルです。このプロトコルを用いてストーキングツールでは定期的にスイッチに繋がっているネットワーク機器のMACアドレスをSNMPのクライアントに送信するように設定しています。またもやちなみに、SNMPっていうプロトコルはそもそも、トラブルの早期発見とかシステム運用の効率化ってのを実現するためのものです。あと、SNMPで情報取得するのって、結構機器に負荷をかけるとかって先生からは聞きました。ストーキングツール負荷かけてる割に運用に関係してねえじゃん!!!ってのが僕個人の感想だったりします。ストーキングツールはそんな持ってる情報を送るだけで負荷がかかるとか言われる弱弱しいネットワーク機器にSNMPによる負荷をかけながらスイッチから得たMACアドレスと、DBのMACアドレスを比較することにより、個人と居場所の特定をしているのです。悪です。とは言ってもスイッチのポートに繋がってるネットワーク機器のMACアドレスを取得する程度ではそんなに負荷があるとは思えませんが。SNMPはツリー構造で欲しい情報を指定します。ルートに近い値を指定すると、その分スイッチの持っている情報の多くを取得できるっていうことです。得たい情報を調査するのに何度も短時間でルートに近い部分から調査していくっていうことで負荷がかかるのでしょうかね。その辺はよくわかりません。けど、重要な有限の資源であるネットワーク帯域の一部がそういうことに使われてるんですよっていうことですね。」

戻る
ちゃんと読んでみるといかに適当に書いたかが分かる。