2020-06-17 今日はMTGとか昨日の #InfraStudy の感想とかコード書きと調査(TCP_SAVED_SYN便利)

  • 昨日のInfraStudyも大盛況でよかった
  • 登壇者だけでなく司会を褒めてくださるかたもいて、とてもうれしいし、次もしっかりやっていこうという気持ちが強くなります
  • ただずっとスタンディングで喋り続けて、二次会も12時ぐらいまで喋ってたから肉体的に疲れた
    • やせそう!
    • 朝からちょい頭痛で疲れが残っているなと言う感じ
  • まさよしくんのSREの話は組織と文化や歴史を紐解きながらその意義を解説していて、すごくよかった
    • SREによってエンジニアがビジネス収益やそれに付随するコストや信頼性に関わる指標や目標をモデル化し、定量評価しながら変化にも対応していく意識みたいなものが出てきており、それだけでもSREのすごい貢献だなと思うのだけど、これからはSREという言葉やそのものが指す一面の意味にとらわれずに、自社とSREの考え方を照らし合わせながら、自分たちなりの信頼性とその評価、さらには、変化しながらも最終的には安定したサービスを作り続けていくような組織と文化を共に醸成していくのが大事だろうなと思う
      • そういった考えをうまくまとめてお話されていてとてもよかった

  • 昼からはMTGが続くのでそれの準備
  • 自分のやりたいことを突き詰めた上で、それを会社や社会への活動に重ね合わせていくことや、それをもって自分自身の生活も充実させて、さらにやりたいことをやっていくみたいなサイクルの話をした
    • あとはそれをやるために周りを巻き込む必要があって、そのためにどうやれば共感を得られるかといったようなストーリーの組み方についてもお話してみた

  • tcprivをnetfilter経由(厳密にはパケットの書き込みはnetfilterで読み込みはpernet_subsys)じゃない方向で実装を変更中
    • /proc/net/tcprivをopenした時のハンドラでskからskbのチェーンをたどってsynパケットからTCPオプションを抜き出すような実装
      • これがシュッとできなければ、一旦synパケットだけでなく全てのヘッダにtcprivの情報を書くようにしておく(これは実装上の問題としてあとで改めてアーキテクチャと照らし合わせて議論する)
      • カーネルのコード読んでたら見つけたTCP_SAVED_SYNとかを活用するといけるかも? [PATCH net-next] tcp: provide SYN headers for passive connections [LWN.net]
      • あとからでもユーザランドからsynパケットの情報を引き出せるオプション
      • 今回はカーネル側で使うけど、それでもtcp_sock内にそういう情報があるとあとからparseできるので便利
      • Googleさん、僕のやってる研究と似たようなクライアント認証をやっていたのかな?

This patch allows a server application to get the TCP SYN headers for its passive connections. This is useful if the server is doing fingerprinting of clients based on SYN packet contents.

Two socket options are added: TCP_SAVE_SYN and TCP_SAVED_SYN.

The first is used on a socket to enable saving the SYN headers for child connections. This can be set before or after the listen() call.

The latter is used to retrieve the SYN headers for passive connections, if the parent listener has enabled TCP_SAVE_SYN.

TCP_SAVED_SYN is read once, it frees the saved SYN headers.

The data returned in TCP_SAVED_SYN are network (IPv4/IPv6) and TCP headers.

Original patch was written by Tom Herbert, I changed it to not hold a full skb (and associated dst and conntracking reference).

We have used such patch for about 3 years at Google.


  • 研究所定例では鷲北さんから工場やアラーム問題に関するおもしろばなしを発表頂いた
    • スライドも公開されそう
    • とにかく我々は多くのサービス開発や運用をしていたわけだけど、それらに関連する情報は過去に類似に技術や標準がたくさんあって、それらを当時は参考にせずに雰囲気で作ったりしてきたので、やはりそういう情報をサーベイすることは大事だなと思えるし、自分の研究でも良くそういう観点でハットさせられる