2007年7月15日の日記の2番目の記事へのコメント
■SSD/Linuxのdhclient
ルータ化の第一歩として,まずはdhclientでIPを取るところから始めてみることに.以前,YahooBBでこやつをルータにしたときは,dhclientでうまくIPが取れなくて結局dhcpcdを別途インストールして使ったんですが,今回もやっぱり取れませんでした(´・ω・`).うーん.今回は外部ストレージが無いからdhcpcdを別途入れるということは原則できないので,dhclientでどうにかIP取りたいところです.
ひとまず,T60ではIPを取ることができているので,OpenBlockSでdhclient使ったときと,T60でdhcpcd使ったときのDHCPのDISCOVERパケットをwiresharkでキャプチャして比較してみました.
比べてみると,dhclientの方が最初に送信する情報量が少ない模様.というわけで早速dhclient.confにちまちまと書き足してdhcpcd使ったときと同じような情報を送るようにしてみたんですが,状況は変わりません.うーん.
dhcpcdだと後ろのほうにパディングがついていて,パケットの全体サイズがちょっと大きめになってるのが気になります.dhclientでこれをやるにはどうすれば・・・とソースを読んでみたんですが,dhclientの場合300byte以上だとパディングしてくれなさそう.仕方ないのでパケットサイズを無理やり合わせるためにvendor-class-identifierに余計な文字列をどかどかと突っ込んで調整してやったんですが,これも効果なしorz
うーん,ほんと何がだめなんだろう.・・・そういやT60にもdhclientが入ってるな・・・.これで取れちゃったり・・・取れたし(;´д`)
パケットをキャプチャしてみたんですが,T60とOpenBlockSとではMACアドレス以外まったく同じ.dhclient側のプロトコル処理に問題があるんだとばかり思ってたんですが,全然違うようですな.最初の一歩から間違えていたとはorz.
・・・で,結局どういうことなのかともう一度考えてみると,これら状況から察するに,こっち側の設定には何も問題がなくて,CATVモデムから先で何らかの制限をしているんじゃないかと・・・.例えば,グローバルIP 1個の契約のユーザが,同時に複数のIPを取りにくるのを防ぐために,最初にDHCP DISCOVERを出した人のMACアドレスを記憶して,RELEASEが出る(あるいは一定時間過ぎる)まで別のMACアドレスからのDISCOVERは破棄するとか.
これをプロバイダ側のサーバでやってたらどうにもならんですが,ケーブルモデムでやってるならきっと電源再投入で・・・キタ━━━━(゜∀゜)━━━━ッ!! あんなにどうにもならなかったのがあっさり取れました.この後,T60で再度挑戦してIPが取れるかどうか確認すると,より先の仮説の真偽がはっきりするかと思うんですが,もう面倒なのでこの問題はこの辺で・・・.
2007年7月15日の日記の2番目の記事へのコメント
[コメントを書く]