Admission Webhookで快適なSecret管理 / Berglas Secret Admission Webhook
はじめまして、インターン生の松本直樹と申します。 この記事では、私がNTT研究所におけるインターン「コンテナランタイムの実装と評価」のインターン期間中に取り組んだ「bypass4netns」について紹介させていただきます。 自己紹介私は京都大学 情報学研究科に所属し、 普段は次世代型ホームネットワークと称してホームネットワークとSDNの融合や計算処理オフロードに関する研究に取り組んでいます。 コンテナ技術やその周辺のネットワーク技術に関しては普段から興味があったものの、 時間をかけて取り組む機会がありませんでした。 その折に、今回のインターンの募集を見つけ、実装を中心に触れることができる良い機会だと思い応募させていただきました。 インターン期間中はRootlessコンテナとネットワーク周りにどっぷりと浸ることができ、 非常に貴重な体験ができました。 はじめに: Rootless コンテナに
はじめに こんにちは。enechainのPlatform Engineering Deskで働いているsoma00333です。 enechainではproductのdeploy先としてGKEを採用しており、Platform Engineering DeskではKubernetes Clusterの運用業務を行っています。 enechainは「エネルギーの取引所を作る」というmissionを持っており、productも増えてきています。 Platform Engineering Deskも今後ますますsecurityに力を入れていく予定です。 前回は、Platform Engineering Deskのsecurityに関する取り組みの一例として、Pod Security Admissionを紹介しました。 ※ Pod Security Admissionの紹介 今回は、引き続きsecuri
どうも、インフラの後藤です。夏休みの自由研究として、HTTP/3について遊んでみたのでよろしくおねがいします。 はじめに HTTP/3はRFC目前となっており、すでに多くのブラウザがサポートし、ミドルウェアも実装が進められています。また、GCPではCloud CDN やHTTPS Load Balancingですでに利用することが出来ます。 HTTP/3は、トランスポートプロトコルにUDPで動作するQUICを利用しています。このQUICは様々な効率化の仕組みが盛り込まれていて、結果としてHTTPプロトコルの高速化が実現されています。 一方で、少ない環境ではあるものの、QUICが利用できないネットワークがあることも知られています。実際に使用する場合に問題になることはなく、多くの場合はHTTP/2にフォールバックされアクセスが行われます。ですが、国内での実情は調査の余地があると思われます。 今
プライム・ストラテジー「KUSANAGI」の開発チームの石川です。 「KUSANAGI」はWordPressをはじめとするCMSを高速に動作させる世界最速クラスの仮想マシンです。わたしたちは「KUSANAGI」を開発して皆様にご利用いただくほか、お客様のウェブサイトを「KUSANAGI」で運用しています。 この連載では、「KUSANAGI」の開発やお客様とのお話の中で感じた課題や実際の運用の中で得た知見などをお伝えしています。 今回は次世代のHTTPとも呼ばれる「HTTP/3」の裏側で使われている「QUIC(クイック)」についてお話ししたいと思います。 Googleが通信パフォーマンス改善について追求した「QUIC」 QUICはもともとGoogleによって設計されたトランスポート層の通信プロトコルです。 Googleがプロトコルを開発することを意外に思う人がいるかもしれませんが、Googl
Stream: Internet Engineering Task Force (IETF) STD: 7 RFC: 9293 Obsoletes: 793, 879, 2873, 6093, 6429, 6528, 6691 Updates: 1011, 1122, 5961 Category: Standards Track Published: August 2022 ISSN: 2070-1721 Author: RFC 9293 Transmission Control Protocol (TCP) Abstract This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protoco
Something I learned recently and I thought was amazing - you can create sockets straight from your shell! Well, assuming you use bash or zsh - from some surface level digging, I couldn’t find anything for fish. Here’s how it works: bash Bash supports tcp and udp connections out of the box, and does so with an imaginary device in /dev. Enter And you’ll create a connection to HOST:PORT. $PROTO can b
インターネットの標準として使われてきたプロトコルが置き換わるかもしれない。インターネットの通信プロトコルなどの標準化を手掛けるIETF(Internet Engineering Task Force)は2021年5月27日(米国時間)、通信プロトコル「QUIC(Quick UDP Internet Connections)」をRFC 9000として勧告した。これが長らく使われてきたTCP(Transmission Control Protocol)に取って代わる可能性があるとして関心を集めている。 IETFが標準化したQUICは、2013年に米Google(グーグル)が発表した、大量のアクセスを高速に処理するためのプロトコル「QUIC」を発展させたものだ。グーグルのQUICはWeb専用で、UDP(User Datagram Protocol)を利用する通信プロトコルであり、独自の暗号化手法
NICからの割り込みを適切なCPUに振り分けられるようなHintをIPヘッダオプションとして定義する「Multiple Core Performance Hint Option」という提案が提出されています。(特許としても申請中とのこと) ざっくり眺めて見ようかと思います。ここらへん詳しいわけではないので、間違いがあればご指摘ください。 背景 10Gbpsなどのトラフィックを処理する場合、NICからの割り込みを一つのCPUコアで処理しきれないことがあります。 NICからの割り込みを複数のCPUコアで分散する仕組みとして、Linuxでは「Receive Side Scaling (RSS)」、「Receive Packet Steering (RPS)」、「Receive Flow Steering (RFS)」などの仕組みがあります。 このとき、同じ通信フローの処理は同じコアで処理するのが
To make it quick, I wish I had known about port forwarding and tunneling earlier. With this blog post, I try to understand it better myself and share some experiences and tips with you. Topics: use cases, configuration, SSH jumphosts, local/remote/dynamic port forwarding, and limitations Use cases # SSH tunneling and port forwarding can be used to forward TCP traffic over a secure SSH connection f
ブックオフの店舗(「Wikipedia」より) 大手古本チェーン「ブックオフ」を全国に展開しているブックオフコーポレーションが8月27日、書籍の在庫不足を迎えていることを発表し、本の売却を懇願する「【皆さまへ】ブックオフから本気のお願いです」と題した動画をユーチューブ上で公開した。「『ブックオフなのに本ねぇ~じゃん!』とCMで言っていたら、本当に本が足りなくなりそうです」という悲痛な叫びから始まる、インパクト大の同動画は世間の注目を集めた。 8月末から9月13日まで買取強化キャンペーンの一環として、文庫本を売却してくれた客に抽選で図書カードなどをプレゼントすると発表したブックオフだが、なぜ在庫不足という事態に直面していたのだろうか。法政大学大学院教授の真壁昭夫氏に話を聞いた。 低価格、立ち読み可能、清潔感――ブックオフの従来の戦略 初めに、ブックオフはどのようにして、大手チェーン店として展
MySQL 8.0.22 の新機能で DNS SRV レコードのサポートというのがあったので試してみた。 https://dev.mysql.com/doc/refman/8.0/en/connecting-using-dns-srv.html MySQLサーバー3台 (a.example.com, b.example.com, c.example.com)とそれに接続するためのクライアントの計4台を docker-compose で作成する。 Dockerfile FROM ubuntu RUN apt update RUN apt install -y mysql-client libmysqlclient-dev gcc unbound bind9-dnsutils RUN rm -f /etc/unbound/unbound.conf.d/root-auto-trust-ancho
GitHubのトレンドを眺めていたところ、KubeVelaというOSSが目に止まりました。 KubeVelaとは 一言で言えば、開発者が楽にK8sにアプリをデプロイするためのツールセットです。 通常、開発者がK8sにアプリをデプロイする際はPod、Service、Ingress、Resource Request、CRD etc...の概念を理解する必要があり、これらを全て理解することは決して楽ではありません。 KubeVelaはこの労力を最小限にするアプローチの1つとして提供されており、開発者はAppfileという設定ファイルのみを管理するだけで良くなるため、複雑なK8sの設定をあまり意識せずにデプロイすることが可能になります。 今回は、このKubeVelaをローカルのK8sクラスター上に展開しながら、動作を確認していきます。 検証環境 Mac OS Catalina Docker: 19
1.はじめに ネットワークのパフォーマンスを決定付ける最も重要な要素は、最終的にはアプリケーションにあるでしょう。ただ、ワークロードの特性によっては、デフォルト設定されたTCPカーネルパラメータが制約となり、パフォーマンスを発揮できないときもありますね。 非常にたくさんのカーネルパラメータがありますが、本文では、ネットワーク帯域幅(bandwidth)のカーネルパラメータ、ネットワーク容量(capacity)のカーネルパラメータを主に扱います。 2.準備 Linuxはsysctlコマンドで簡単にカーネルパラメータを実行時に変更できます。 次のようなコマンドを使用すると、現在のカーネルパラメータ設定値の全体を閲覧できます。 $ sysctl -a ここで取り上げるネットワークは、特にTCPのcapacityとbandwidthなどを調整(tuning)できるカーネルパラメータのごく一部を紹介
hb.matsumoto-r.jp 上記のリンクの昨日書いた記事のスコープや前提、及び、ユースケースがわかりにくかったので、以下にそれらをもう少し詳細に書こうと思います。コメントやアドバイスをすでに頂いた方はありがとうございます。 まず、この手法にいたった課題について説明してきます。 これまでWebホスティングサービス(レンタルサーバ)のように、WordPressのようなWebアプリケーションを配置するための領域(一般ユーザで利用するテナント)を貸し出すようなプラットフォームサービスにおいて、低価格化を実現するために単一のサーバにどれだけ高集積にテナントを収容するかという検討がなされてきました。 そんな中、テナント単位でプロセスを用意したり、IPアドレスをはじめとした個別リソースの紐付けを極力行わずに、共有のデータベースミドルウェアを使い、できるだけリソースを共有するような方式、例えばAp
macOS と Linux の UNIX Domain Socket の SO_SNDBUF, SO_RCVBUF について調べていた。 経緯 会社で @kurotaky のトラブルシューティングの相談を受けた際の覚書。 下記のように UNIX Domain Socket を挟んで IPC しているコードがあり、macOS と Linux で挙動が違っているのを調べていた。Linux では Go Ethereum が送ってくるデータを全部読み出せるが、macOS だと一部 ( 8192 バイト 注1 ) しか読み出せないとのことだった。 Ruby のコード <----- UNIX Domain Socket -----> Go Ethereum 色々調べてみたところ、macOS / Linux で UNIX Domain Socket のデフォルトの SO_SNDBUF, SO_RCVBU
目次 目次 概要 tcpソケットプログラミングとは サーバ側 3way-handshakeと状態遷移 backlogとは syn-queue どうやったら溢れるか 溢れたらどうなるか accept-queue どうやったら溢れるか (メモ)Nginxのアーキテクチャ 溢れたらどうなるか tcp_abort_on_overflow=1 tcp_abort_on_overflow=0 まとめ 概要 nginx.org backlog=number sets the backlog parameter in the listen() call that limits the maximum length for the queue of pending connections. By default, backlog is set to -1 on FreeBSD, DragonFly BSD,
Telebit - Written in JS. Code. tunnel.pyjam.as - No custom client; uses WireGuard directly instead. Written in Python. source code SSH-J.com - Public SSH Jump & Port Forwarding server. No software, no registration, just an anonymous SSH server for forwarding. Users are encouraged to use it for SSH exposure only, to preserve end-to-end encryption. No public ports, only in-SSH connectivity. Run ssh
More posts When writing services that accept TCP connections, we tend to think of our work as starting from the point where our service accepts a new client connection and finishing when we complete the request and close the socket. For services at scale, operations can happen at such a high rate that some of the default resource limits of the Linux kernel can break this abstraction and start caus
Usage: q [OPTIONS] [@server] [type...] [name] All long form (--) flags can be toggled with the dig-standard +[no]flag notation. Application Options: -q, --qname= Query name -s, --server= DNS server(s) -t, --type= RR type (e.g. A, AAAA, MX, etc.) or type integer -x, --reverse Reverse lookup -d, --dnssec Set the DO (DNSSEC OK) bit in the OPT record -n, --nsid Set EDNS0 NSID opt -N, --nsid-only Set E
TCP(Transmission Control Protocol)とIP(Internet Protocol)といえば、インターネットを支える基盤のプロトコルだ。実はTCPはIPより先に存在していたのをご存じだろうか。 TCPが最初に登場したのは1974年。ビントン・サーフ氏とボブ・カーン氏がIEEE(米国電気電子学会)の学会誌『Transactions on Communications』に論文「A Protocol for Packet Network Intercommunication」を投稿した。この時点のTCPは現在のTCPとIPの両方の機能が盛り込まれていた。現在のインターネットの4階層モデルからすると、TCPはインターネット層とトランスポート層にまたがるプロトコルだったのだ。 ビントン・サーフ氏が描いたTCPのアイデア。1973年に描いたとされる初めて図示したものを、20
Flaskではデフォルトでは5000番ポートで開発サーバが起動する。 自分はとあるアプリの開発で普段、Flaskで開発したとあるアプリをMac上で起動しているんだけどこれがある日うまく動かなくなった。アプリケーション的になにかをいじったわけではなく、ぱっと思いつく心あたりはない。 ターミナルからMacで使用されているポートを確認したら確かに5000番が何かに使われている(IPとかユーザ名だけマスクした)。 % lsof -i:5000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ControlCe 490 xxxxxxx 22u IPv4 0xf8bcd361exxxxxxxx 0t0 TCP *:commplex-main (LISTEN) ControlCe 490 xxxxxxx 23u IPv6 0xf8bcd36xxxxx
この状態で再度ping,tracepathコマンドを実行しましたが、結果は変わりませんでした。。 どうやらNLBの仕様として、設定済みのリスナーに一致しないネットワークトラフィックは意図しないトラフィックとしてターゲットに転送せずにドロップするようです。 設定済みのリスナーに送信されるすべてのネットワークトラフィックが、意図されたトラフィックとして分類されます。設定済みのリスナーに一致しないネットワークトラフィックが、意図しないトラフィックとして分類されます。Type 3 以外の ICMP リクエストも、意図しないトラフィックとみなされます。Network Load Balancer は、意図しないトラフィックをターゲットに転送せずにドロップします。 出典:Network Load Balancer のリスナー - Elastic Load Balancing Pingで使われれるのはIC
twitterで見かけた、「Dissecting Performance of Production QUIC」という論文の備忘録 Nice paper on how QUIC being faster in theory doesn't always make QUIC faster in practice, due to implementation details:https://t.co/j4EbEkgPwZ BTW, this kind of thing is why I often find high-level design discussions that don't really dig into the details to be overrated. pic.twitter.com/xPkChrZVVp— Dan Luu (@danluu) 2021年8月7日 htt
現代では衛星通信を利用するネットワーク接続環境まで登場しており、地球上のほぼ全ての場所でインターネットを利用できるという時代といえます。しかし、現行のインターネットプロトコルを惑星間の通信に使おうとした場合、距離などの問題が立ちはだかります。「インターネットの父」の1人として知られるヴィントン・サーフ氏が、自身が長年にわたって取り組んできた惑星間インターネットの歴史と未来について回答しています。 Vint Cerf’s Plan for Building An Internet in Space | Quanta Magazine https://www.quantamagazine.org/vint-cerfs-plan-for-building-an-internet-in-space-20201021/ 国際宇宙ステーションと地球は無線およびインターネットプロトコルで接続されており、
Navigation index next | An Introduction to Computer Networks, desktop edition 2.0.11 » Table of Contents An Introduction to Computer Networks Indices and tables Next topic Preface Quick search An Introduction to Computer Networks¶ Peter L Dordal Department of Computer Science Loyola University Chicago Contents: Preface Second Edition Licensing German Edition Classroom Use Acknowledgments Progress
home A TCP Proxy in 30 lines of Rust Jul 2021 TCP proxies accept connections from one computer and forward them to another. AWS Global Accelerator and Cloudflare Spectrum are examples of TCP proxies you can pay to use in the wild. TCP proxies can be quite simple. Here we’ll write one in 30 some lines of Rust. After we write it we’ll demonstrate the proxy’s functionality by proxying traffic from lo
連載 LinuxサーバーのTCPネットワークのパフォーマンスを決定するカーネルパラメータ – 1編 4.ネットワークcapacity関連パラメータ 4.1 maximum file count Linuxをはじめとする一般的なUnixソケットは、まるでファイルのような扱いを受けます。 システム全体で保有できるファイル数が制限されていれば、当然ソケットの全体数にも影響を与えるでしょう。 Linuxでシステム全体が保有できる最大ファイル数は、fs.file-maxカーネルパラメータで設定します。 以下のようなコマンドで現在の設定値を確認できます。 $ sysctl fs.file-max fs.file-max = 775052 一般的に、この値は適度に大きな値が設定されているので、余程のことがない限り、修正することはないでしょう。 ただ、システムが非常に多くのファイルとソケットを使用している
tcpの仕様上、接続先がコネクションをcloseしているかはパケットを一度は実際に送るまでわからないよという話CTCP はじめに サーバがコネクションをclose後しばらくして、クライアントがwriteしました。関数呼び出しの結果はエラーでしょうか? 上記の正解は「何事もなく、成功する」です。この挙動が理解できている方はこの記事を読む必要はないかもしれません。 自分は「接続先がcloseしたソケットにwriteした場合はプロセスがSIG-PIPEを受け取るかシグナルをハンドリングしていた場合はEPIPEが返ってくる」と思っていました。 それは、Linuxのマニュアルに以下の記載があるためです。 EPIPE fd is connected to a pipe or socket whose reading end is closed. When this happens the writin
Linux 5.17 To Boast A Big TCP Performance Optimization Written by Michael Larabel in Linux Networking on 16 November 2021 at 09:19 AM EST. 11 Comments While the Linux 5.16 merge window just ended and that kernel won't be out until the tail end of the calendar year, already for Linux 5.17 new material is beginning to accumulate in the respective subsystem development trees... One set of changes mer
I've developed a TCP tunnel, called "Mallet", that works like VPN. It depends on jpillora/chisel for TCP tunneling. You just need to run a chisel server in a machine that you would like to get traffic through. Mallet configures iptables (Linux) or pf (macOS) to redirect traffic to the TCP tunnel. Features No admin privilege required in a server. You just need SSH as a normal user. You still need s
webrtc_turn.rst WebRTC で利用されいる TURN プロトコルの解説 日時:2021-01-29 作:@voluntas バージョン:2021.2 url:https://voluntas.github.io/ この記事が良いと思ったらこの記事に Star をお願いします。 著者 株式会社時雨堂 で 1 から多くの商用環境で利用されている WebRTC SFU を開発している。 WebRTC スタックは暗号ライブラリの利用している部分以外はすべて自前実装。 概要 WebRTC は P2P というイメージをお持ちの方が多いと思います。 今回は P2P で繋げなかった場合に利用される TURN というプロトコルの話をします。 目的は単純で、本気で WebRTC を使う場合は繋がることが重要になります。 そして、トラブルシューティングをする人向けの話です。 実際に運用している
There is a common view out there that the QUIC transport protocol (RFC 9000) is just another refinement to the original TCP transport protocol [1] [2]. I find it hard to agree with this sentiment, and for me QUIC represents a significant shift in the set of transport capabilities available to applications in terms of communication privacy, session control integrity and flexibility. QUIC embodies a
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く