概要と目的 この記事は下書き中なので, 書きかけの文章を含むことがあります. また情報の過不足や要望に関してなにかあれば私までTwitterかなにかで こっそり教えていただけるととても参考になりありがたいです. (twitter; slankdev) 私はSRv6のVPNv4を実装…
cuishark内部でのパケット解析をlibwiresharkを用いて行うことで, wiresharkの対応プロトコルを全てcuisharkでいじれるようにするという素晴らしい話のための雑記. 開発方針 version1は以下のようになっていた. フロントエンド(TUI): C/C++ with 自作ncurses…
この記事はメモであり, 編集中の内容です. こんなことがありまして... DPDKを用いた高性能パケットフィルタの開発とかを! - パケット解析プログラム開発- DPDKの基礎,入門- 簡単なパケットフィルタ開発- 10GbEの高性能化#もしセキュキャン講師になったらやり…
part1 超素朴に全部手作業でやる 最初にこの方法でやれば全て理解できるしこれが一番理解しやすい.
以下に置いた(画像部分をhatebuに変換するのが大変だったのでリンクにした) もしリンクがきれていたら, Twitter: @slankdevまで連絡をください. すぐ直します。 github.com
バ先の上司に教えていただいたIntel,HPEのNFV白書を読んでいるが, 読解力が皆無なことが確認できてよかった— Hiroki SHIROKURA (@slankdev) 2017年9月3日 NFV Whitepaper by Intel HPE Hiroki SHIROKURA @slankdev 2018.07.30 本レポートは以下のLINKのWhite…
DPDKどドキュメントによると、DPDKを使用したアプリケーションでは用意された雛形のMakefileを 一部変更することでビルド環境を提供しているが、自分で何かをつくりたいときにそんなことを やってられない。 ここでは自分で作成したMakefileでDPDKのアプリケ…
自分用雑記. まだ書きかけです. FreeBSDの黄色い本を読んで自分なりに要約, またSTCPの設計実装のためのメモ ここで出てくる典型的例とはBSDカーネル内での実装のことである. ソースは以下から入手した - ftp://ftp.freebsd.org/pub/FreeBSD/releases/
どこを参照したか FreeBSDソースの以下のファイル ファイル名 概要 sys/net/if_arp.h arphdr構造体とかその辺がある sys/net/if_ethersubr.c Ethernetに関する処理がある sys/netinet/if_ether.c Ether,ARPに関する大事な実装 ARP処理部分の流れ init arpres…
2016.08.01 サイボウズラボユースにて. ずいぶんまえに学んだ内容だが、資料を生理していたらmemoがでてきたので。 ここに吐いておく(間違っていたらすみません) はじめに通常のロックについて 以下の手順で行われる lock() if (inited == false) init() ini…
BPFについてサーベイしたので、それのまとめ. BPF for Dummiesのプロトタイプといえるよういしていけたら最高である。 現状は雑記状態なのでご了承いただきたい. BPFとは,何をするためのものか 正直, 僕自身もよく分からない。 BPFはin kernelのパケットフィ…
ここでは単純に表と図のみでcBPFにどのような命令が含まれて、 どのように動作するのかを示す。Instruction set archの設計論などは まったく触れない。 (ただつかう段階では必要ないため。) 必要があれば、それぞれのBitにどのような意味があるかも説明して…
ここでは単純に表と図のみでeBPFにどのような命令が含まれて、 どのように動作するのかを示す。Instruction set archの設計論などは まったく触れない。 (ただつかう段階では必要ないため。) 必要があれば、それぞれのBitにどのような意味があるかも説明して…
完成はしないが、お勉強は大事である。 なんかしっていたら教えてください。。。涙 Hardware と Softwareでの選択はどのようにしておこなうのか。 下にいくについれて高性能だがフレキシブルでなくなる. とくにASICはできるまでに2年間くらいかかることもあ…
gist.github.com
雑記状態なので、この記事もとても汚いことを了承してください。 DPDKはpthreadwを用いてスレッド操作を行っている。 内部でset affinityを行い、複数のCPUでスレッドを共有しないように固定している らしいが、実際に複数CPUで共有実行を行った場合と、単一…
とりあえずLinux Kernelのネットワークスタックのデバッグ/トレースをしてみようと思う。 Bccを用いたトレース手順 デバッグ対象を決める hookポイント trace内容 それに対して必要なスクリプトを書く (bcc, bpf, python, c) スクリプトを動かしてTraceを確…
Packetとはなんなのかを理解するためにBPFをかじり始めたら どつぼにハマってしまい、とりあえずどんなことができるのかを 簡単なスクリプトを書いて試した. 目次 bpfで関数callをhookする bpfで関数callの引数をtraceする bpfで関数呼び出しの回数を取り出…
私は2015年のセキュリティキャンプの修了生で、2016年はチューターを担当しました。 セキュリティ・キャンプに通過するために何をすれば良いのか、というのを 私なりに簡単に考えました。 このリンク から申し込みができます。 もちろん、私個人の見解なので…
2016/2/1から1年間、サイボウズ・ラボユースという制度で研究開発の支援を受けていた. 一年間、本当に強力なサポートをしていただき、我ながら圧倒的に成長した気がするので、 他の人にもぜひ体験していただきたく、ラボユースの紹介と報告をしようと思う。 …
上記について実際に動かして調べました。 パターン1: remote_core_launchをtryに囲む void func() /* user implementation */ { throw exception; } int main() /* developer implementation */ { dpdk_init(); try { remote_core_launch(func); } catch (e)…
前回のオープンソースカンファレンス2016東京に続き、先日北海道で行われたオープンソース カンファレンス2016北海道にも参加させていただきました。 いつも通り「国立セキュリティ・キャンプ同窓会」というコミュニティで参加をさせていただき、 セキュリテ…
IPA主催のセキュリティ・キャンプの地方大会であるセキュリティ・ミニキャンプ in 四国高松で チューターとして参加させていただきました。 セキュリティ・ミニキャンプin四国 今回はもりたこ君(@mrtc0)と一緒にチューター業務をさせていただきました。こう…
DPDKを使って開発をするのですが、どれだけ早いのか一応自分で測ってまとめてみました。 今回はrdtscを使ってレイテンシ計測を行います。ただ、DPDKの通信速度を計るだけでなく、 Linuxカーネルで同様の通信をした時の速度と比較をします。
DPDKはLinuxやBSDのカーネルをバイパスし、NICをユーザランドから直接触ることにより 従来の通信ソフトウェアと比べはるかに高性能に通信を行うことを可能にしたライブラリである。 近年ではDPDKを用いたソフトウェアルーターで145GbEを達成した実装などがあ…
今年の2月から2ヶ月間サイボウズ・ラボユースという神制度のお世話になってきました。OSC2015/TokyoFallの時にあの川合さんに紹介していただいて、2月からしほ氏(@elliptic_shiho)とかすごい人たちの中で素人発揮してきました。 趣味の開発(大学の研究にする…
先日セキュリティ・キャンプ フォーラム2016に参加することになり、そこでパケット解析ライブラリの開発について話をさせていただきました。 後日@ITさんの記事で紹介をしていただきました。 セキュリティ・キャンプが修了生の「今」を表彰する新たな取り組…
この記事を書こうと思ったきっかけ osx上でc言語で書いたパケットキャプチャでパケットをキャプチャしていた時に並行して wiresharkと見比べていたのですが、なんだかwiresharkと比べてパケットを幾つかドロップしていたため、 少し調べた(他人に頼った)とこ…
前回のOSCに続き、国立セキュリティ・キャンプ同窓会 としてOSCに参加させていただきました。前回は展示のみの参加だったのですが、今回は がっつりセミナーもさせていただきましたので幾つか報告をしようと思います。 後日キャンプ運営の方のサイトに掲載し…
この記事は僕の趣味である「パケット遊び」をたくさんの人に知ってもらい、ぜひパケット仲間を増やそう!といった内容の記事です。 What is LibPGEN LibPGEN (りぶ ぴーじぇん) は筆者(@slankdev)がパケット操作を自由に行うために開発した統合パケット操作補…