06/12/14 16:38:51 utQqiHrs
Userspace I/O kernel drivers for Linux
URLリンク(www.kroah.com)
283:login:Penguin
06/12/14 21:35:59 OngCFZyq
URLリンク(lwn.net)
今週無料公開版のQuote of the weekワロタ
284:login:Penguin
06/12/18 14:50:36 FsmtTeGC
モジュールの質問ってここでOKでしょうか?
kernel_threadを使ったせい?なのか、psすると
3635 pts/0 R 0:00 modprobe hoge
と残るんですが、これは出ないようには出来ないものなんでしょうか?
勿論 rmmod hoge すると消えるんですけど。
285:login:Penguin
06/12/18 17:48:16 CqDzl5wd
カーネルモジュールからカーネルに「擬似的に」IP パケットを
送り付けたいんだけど、いい方法ないかな?
やりたいことを言うと、モジュールで生成したソケット (LISTEN 状態) に
擬似 SYN パケットを送りつけて(Handshake して)そのソケットを
無理やり TCP_CONNECTED の状態に持って行きたい。
netfilter いじればいけると思ってソースを軽く読んでるんだけど、
netfilter って、来たパケットを落としたり書き換えたりするだけで
何も無いところからパケットを生成することはできなかったりする?
(読みが浅いだけかも。もうちょっとちゃんと読むか…)
286:login:Penguin
06/12/19 00:11:12 Y8Ux/Mtq
>>285
ACKも投げないとね
とりあえず、そういうときは本当に接続してLANケーブルひっこぬく
287:login:Penguin
06/12/19 14:55:27 CRmuTbew
>> 286
もちろん ACK も投げる。(記述を省略していた)
他のマシンと通信をしているソケットを(FIN を送らずに)一回破壊して、
通信相手に影響なく別のソケットを作り直して、
通信を継続させる、ということをやりたいのね。
(新たに接続したソケットの Seq. No. は無理やり書き換える)
288:285
06/12/19 16:33:48 CRmuTbew
divert_なんちゃら とかを使えばいいのだろうか。
(e.g. alloc_divert_blk(), divert_frame() とか)
よくわからん。参考になるものが少ない…。
289:login:Penguin
06/12/19 16:40:18 WkfMsLhq
>>285
よくわからんけど
lo からコネクション張るんじゃだめ?
290:login:Penguin
06/12/19 22:53:18 9FDnX5Ig
>>287
ユーザ空間のプログラムを呼び出して、
raw socket で投げつける。
291:285
06/12/20 01:41:48 jEZO7VCp
>>289
>>290
あ、それでいいのか。簡単なことに気づかなかった orz
「自分自身ではない IP を名乗る SYN パケット」を送る必要があって、
返ってくる SYN+ACK パケットをキャッチすることと併せて考えていたら
netfilter にこだわってしまった。
ユーザ空間から送って、キャッチだけ netfilter で行えばいいのか。感謝。