タグ

*networkと*softwareに関するsh19910711のブックマーク (38)

  • Multusで遊ぶ - 赤帽エンジニアブログ

    Red Hatでコンサルタントをしている織です。記事では、KubernetesのPodに複数のNICを接続するための、MultusというCNIプラグインについてご紹介します。 Multusとは MultusはKubernetesのCNI (Container Network Interface) プラグインのひとつです。典型的なKubernetesの構成では、PodにはひとつのNICしかアサインされませんが、Multusを使うとPodに追加のNICを生やして、複数のネットワークに接続することができるようになります。内部的には、Multusは複数のCNIプラグインを同時に稼働させるための「メタCNIプラグイン」として稼働します。 Multus (https://github.com/intel/multus-cni より) Multusは、KubernetesNetwork Plumb

    sh19910711
    sh19910711 2024/04/25
    "Multus: Podに追加のNICを生やして、複数のネットワークに接続することができる / メタCNIプラグイン: 複数のCNIプラグインを同時に稼働させる / 接続するネットワークをNetworkAttachmentDefinitionというCustom Resourceとして表現" 2020
  • eBPF でパケットを触ってみよう

    eBPF でパケットを触ってみよう nonylene

    eBPF でパケットを触ってみよう
    sh19910711
    sh19910711 2023/12/01
    "IP アドレスベースの Firewall を作るまでの解説 / Linux の tc (traffic control) でパケットフィルタリング / tc: Linux でパケットの制御を行うための機構。 eBPF プログラムをアタッチできる"
  • Macで自由にパケットのフィルタリング、帯域制限、パケロス率の設定をする - CubicLouve

    Macにおいて、ネットワーク帯域の制御などはNetwork Link Conditionerで対応可能です。 下記ページよりAdditional Tools for Xcode を探してdmgをダウンロードし、その中にあるNetwork Link Conditioner.prePane からインストール可能です。 https://developer.apple.com/download/all/ そうすると、システム環境設定の中にNetwork Link Conditionerがあるので、そこから利用可能です。 このNetwork Link Conditionerを利用すれば、帯域幅の制限やパケロス率の設定などを簡単に実現できます。 ただし、UDPパケットを全部落としつつ、TCPパケットについて帯域幅やパケロス率を設定したいという複雑なネットワーク環境を再現するためにはNetwork Li

    Macで自由にパケットのフィルタリング、帯域制限、パケロス率の設定をする - CubicLouve
    sh19910711
    sh19910711 2023/04/05
    2022 / "macOSはBSD系OSなので、pfを使うことでTCP/IPのフィルタリングを行う + iptablesとかではない / dummynet: 帯域のコントロール、ネットワークトラッフィクの遅延やパケロス率の制御などを行えるネットワークのエミュレータ"
  • Tailscaleに接続できるAWS LambdaをCDKで作成する

    はじめに 前回の記事で紹介した通り、P2P型のVPNであるTailscaleは設定が簡単であり、非常に便利だ。 そんなTailscale ネットワークにAWS Lambdaを接続できるらしい。が、公式ドキュメントを読んでも今一つピンとこなかった。 比較的新しい機能ということもあって事例も見つからないため、試しに作って動かしてみた。 前提知識 AWS CDK Tailscale on AWS Lambdaはコンテナで動かすことを前提にしている。 AWS上で管理するコンテナイメージは通常ECRを利用するが、検証目的で作成・削除を繰り返す際に、中のコンテナイメージを削除するのが少々面倒である。 であるが、先日AWS CDK v2.70.0で追加となったRepository deletion機能を使えば、自動で削除できて便利だ。 cdk-docker-image-deployment CDKでEC

    Tailscaleに接続できるAWS LambdaをCDKで作成する
    sh19910711
    sh19910711 2023/04/04
    "Tailscale on AWS Lambdaはコンテナで動かすことを前提 / ECR: コンテナイメージを削除するのが少々面倒 + 先日AWS CDK v2.70.0で追加となったRepository deletion機能を使えば、自動で削除できて便利"
  • 特定ホスト名の通信だけVPN経由にするルータ設定(OpenWrt編) - hnwの日記

    自宅のルーターの設定で、普段の通信はデフォルトゲートウェイを使いたいけど、一部のホスト名の通信だけはVPNトンネルインターフェースを使いたい、という状況がまれにあります。一般的なニーズではないと思いますが、少なくとも私にはそういうニーズがありました。 IPアドレスごとに外向きインターフェースを切り替えたいのであればiptablesの設定だけで実現できます。一方で、ホスト名によってインターフェースを切り替えるのは一般的には困難です(ホスト名の解決はアプリケーション層で行われるのに対し、iptablesはネットワーク層・トランスポート層での処理になるため)。このような場合に、IPset経由でdnsmasqとiptablesを連携してルーティングを切り替える方法があります。稿ではこのやり方を説明します。 OpenWrtとは OpenWrtは組み込み用途のLinuxディストリビューションで、家庭

    特定ホスト名の通信だけVPN経由にするルータ設定(OpenWrt編) - hnwの日記
    sh19910711
    sh19910711 2023/03/28
    2021 / "IPset: IPアドレスやその他のネットワーク情報を高速に検索できるLinux上のオンメモリデータベース + iptablesと組み合わせて使う前提の仕組み / IPset経由でdnsmasqとiptablesを連携してルーティングを切り替え"
  • Tailscale SSHでSSHのキー管理から解放された世界線 - サーバーワークスエンジニアブログ

    面白そうなサービスを見つけたので紹介します。タイトル通り、Tailscaleというサービスを利用し、SSHのキー管理無しでSSH環境を構成・運用できます*1。 tailscale.com Tailscaleについて まず、Tailscaleについて簡単に紹介します。 TailscaleはマネージドのVPNサービスで、利用者がVPNサーバを構築することなく、リモートアクセスしたい端末にTailscaleをインストールし、Tailscaleを起動するだけでリモートアクセスを実現できます。 認証にMicroSoftGitHubのSSOを利用可能です。 また、端末同士の通信は peer-to-peer 型となっており、Tailscaleのサーバを介さないため、高いスループットの実現が期待できます。 その他特徴は以下リンク等を参照ください。 tailscale.com Tailscale SSHに

    Tailscale SSHでSSHのキー管理から解放された世界線 - サーバーワークスエンジニアブログ
    sh19910711
    sh19910711 2023/02/08
    2022 / "Tailscale SSH: 公開鍵・秘密鍵の配置が必要無くなり + そもそもOSにsshdのデーモンが起動している必要が無くなります / ユーザーのアクセス管理はTailscaleのACLで管理 > 鍵の作成・配置といった煩わしい作業から解放"
  • MySQLのパケットを読んでいく - tom__bo’s Blog

    この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。 最近golangMySQLのclient/serverプロトコルのでシリアライザを作っていて、この記事ではclient/serverプロトコルを解説しつつ、そのデシリアライザの紹介をしようと思っていました。 ですが、思っている以上に進捗出せなかったので、今回はMySQLのpacketを読む面白さと参考にすると良い資料を紹介しようと思います。 なんでパケットを読むのか MySQLの通信プロトコルを知ることでMySQLの運用が楽になったり、知らないと困るようなことはまずありません。 とはいえ、プロトコルを解釈できればclient/server間の通信を中継したり、キャプチャすることで分析することができます!! 僕がプロトコルを理解しようと思ったきっかけは、プロダクション環境で実行されているクエ

    MySQLのパケットを読んでいく - tom__bo’s Blog
    sh19910711
    sh19910711 2022/09/19
    2018 / "通信プロトコルまでドキュメントになっているミドルウェアはそう多くないと思っていて(当社比)、プロトコルに関してもここまで整備がされているのはMySQLの良さの一つ"
  • モバイル対戦アクションゲームの通信最適化テクニック

    © 2018 SQUARE ENIX CO., LTD. All Rights Reserved. モバイル対戦アクションゲームの 通信最適化テクニック 通信遅延やパケロスへの対策をがんばる テクニカルディレクター 石森礼二 © 2018 SQUARE ENIX CO., LTD. All Rights Reserved. 前置き 通信の遅延には、それをごまかすテクニックがありますよね。 • ユーザーの操作をそのユーザーの画面にとりあえず即反映する 通信の結果を待たず、右キーを押したらすぐ右に移動する • 受信した通信結果が矛盾したら、通信を正として訂正する 実はすでに敵に吹っ飛ばされていたので右に移動はできなかったとか こうすれば、通信の劣悪さを感じづらくなります。 ただ、通信が劣悪だと矛盾が頻発するため“対戦”アクションゲームとし ては通信もなるべく頑張る必要があります。 ※ひとりプレ

    sh19910711
    sh19910711 2022/09/14
    2018 / "通信の遅延には、それをごまかすテクニックがあります / UDPでやりとりする場合、送信元を偽装したなりすましパケットに注意 / recvmmsg: 1回のシステムコールで大量のパケットを取得することができます"
  • 名前解決サービスを自作する - Qiita

    はじめに 名前解決サービスって? 皆さんが今お使いのネットワーク(LAN)には、「example」という名前のPCは接続されているでしょうか? 臨時使用の仮想マシンを作る際に foo とか hoge の様な名前のマシンを構築することはあるかもしれませんが、普通はそんなコンピューター名にはしないと思います。また、/etc/hostsに「example」という名前に関する定義はあるでしょうか? たとえば、127.0.0.1 exampleと書かれていれば、ping exampleを実行すると、自マシンからのping結果が返ってくるはずです。 ここから先は、「example」という名のホストは存在せず、/etc/hostsにもそのような定義はなく、ping exampleを実行すると、ping: unknown host exampleという結果が表示される前提で話を進めます。 ホスト名からIP

    名前解決サービスを自作する - Qiita
    sh19910711
    sh19910711 2022/09/04
    2019 / "nsswitch.conf: filesは最初に/etc/hostsの定義から検索 + Sambaがインストールされた環境であればwinsというのもあるかも / プログラムによって動的に名前解決を行いたい場合: 名前解決ライブラリを自作 + nsswitch.confに登録"
  • sshuttleでDNSリクエストを転送する - ぶていのログでぶログ

    VPNからsshuttleに切り替えてから、不便だなぁと思っていたのはDNSリクエストを転送できないことだった。 VPNの接続先のDNSサーバに接続して、リモート先の内部で利用しているドメインを正引きするのに使っていた。 sshuttleはSSHのポートフォワードを元にしたツールなので、UDPなDNSリクエストを転送できないと思いこんでいた。 が、なんとDNSリクエストを転送できることに気がついた! --dns capture local DNS requests and forward to the remote DNS server --ns-hosts IP[,IP] capture and forward DNS requests made to the following servers --to-ns IP[:PORT] the DNS server to forward re

    sshuttleでDNSリクエストを転送する - ぶていのログでぶログ
    sh19910711
    sh19910711 2022/08/04
    "--dns を指定していると、ローカル環境のDNSリクエストをリモートのDNSサーバに転送 / DNSサーバへのリクエストをiptablesを使ってshuttleのトンネルにリダイレクト / --ns-hosts: 指定したIPへのDNSリクエストのみ転送"
  • [翻訳] 仮想ネットワークのための Linux network interface まとめ

    [翻訳] 仮想ネットワークのための Linux network interface まとめ Published at 2018-01-28 | Last Update 2020-10-28 注意 自分用の勉強メモです。 この記事は、以下の記事から翻訳されています。 Introduction to Linux interfaces for virtual networking Macvlan vs Ipvlan Bridge vs Macvlan 必要な部分しか翻訳していないため、不明な点がある場合は、元のテキストを参照してください。 注意 Bridge Bonded interface Team device VLAN (Virtual LAN) VXLAN (Virtual eXtensible Local Area Network) MACVLAN IPVLAN IPVLAN mode

    sh19910711
    sh19910711 2022/06/03
    2018 / "netdevsimは、さまざまなネットワークAPIのテストに使用されるシミュレートされたネットワークデバイスです。現時点では、ハードウェアオフロード、tc / XDPBPFおよびSR-IOVのテストに特に重点を置いています"
  • tracerouteの仕組みをtcpdumpとwiresharkで理解する - $shibayu36->blog;

    どうやってIPからMACアドレスを解決するか - ARPの挙動を調べた - $shibayu36->blog; に続き、マスタリングTCP/IPで気になったことの実践。tracerouteではIPヘッダのttlの値とICMPをうまく利用して、経路を教えてくれるというのを見たので、今回はそのパケットの様子をtcpdump + wiresharkを使って見てみることで、仕組みの理解を深めてみたい。 tracerouteの仕組み まず手元でtracerouteを8.8.8.8に対して打つと、以下のように経路情報を教えてくれる。 $ traceroute 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets 1 aterm.me (192.168.10.1) 4.408 ms 3.977 ms 3.989 ms

    tracerouteの仕組みをtcpdumpとwiresharkで理解する - $shibayu36->blog;
    sh19910711
    sh19910711 2022/03/06
    "途中の経路でTTLが0になったらICMPのType11(時間超過)を返してくる特性を活かして、IPヘッダのTTLの値を1から順に2、3、4、...と増やしていきながらUDPパケットを送信し応答を使って経路を知るという仕組み"
  • tcpdumpでistioをデバッグして遊ぶ - gong023の日記

    kubernetes の周辺で service mesh の話が聞かれるようになってそこそこ経ちました。istio に関して言えば、今年の半ばに1.0もリリースされています。今後 kubernetesistio という組み合わせはどんどん一般的なものになっていきそうです。 例えば istio には、特定条件下のリクエストの振り分け、リトライ、gRPC の Client loadbalancing をしてくれる機能があります。それぞれ至って簡単なアイディアですが、それらに機能を実現するために istio 内部では複数のコンポーネントが複雑に連携しています。そういった内部的なアーキテクチャを知りたければ、例えば traffic-management のページにいくと詳しい解説を見ることができます。ただ、やはりドキュメントにない細かい挙動を知りたい、実際に動かしながら挙動を見てみたほうがわ

    tcpdumpでistioをデバッグして遊ぶ - gong023の日記
    sh19910711
    sh19910711 2021/09/04
    "How Istio manages microservice applications – A traffic flow analysis with TCP Capture というビデオをみて面白そうだなと / 単純に k8s 上にあるアプリケーションのデバッグ方法として覚えておくと役に立つこともあるかも"
  • Kubernetes Network Deep Dive (LoadBalancer) - Qiita

    はじめに Kubernetes では、コンテナ(Pod) を外部からアクセスさせるために、Service LoadBalancer を使って外部公開が出来ます。LoadBalancer を作ったときに、どういうことが Kubernetes クラスタ上で起こり、どのように通信出来るのでしょうか。 マネージドサービスを使っていでも、何かの拍子に通信障害が発生することがあります。障害を解析するためには、正しい通信経路を把握することが重要です。 通信経路を調査した内容を備忘録として残します。Kubernetes 環境は、Oracle Cloud のマネージドサービスである OKE を使って調査していますが、他の環境でも基的には同じような挙動になると思います。 事前準備 OKE クラスタを作成して、Deployment と LoadBalancer を作成します。作業用ディレクトリを作成します。

    Kubernetes Network Deep Dive (LoadBalancer) - Qiita
  • CVE-2020-10749(Kubernetesの脆弱性)のPoCについての解説 - knqyf263's blog

    少し前ですが、Kubernetesの方から以下の脆弱性が公開されました。 github.com タイトルにはCVE-2020-10749と書きましたが、複数のCNI実装が影響を受ける脆弱性でCVE-2020-10749はcontainernetworking/pluginsにアサインされたものです。他にもCalicoはCVE-2020-13597、DockerCVE-2020-13401、などとそれぞれCVE-IDがアサインされています。 このIssueの説明を読んで、はいはいあれね完全に理解した、と思って一旦閉じました。ですが、頭で分かった気になって手を動かさないのは一番やってはいけないことと念じ続けてきたのに、しれっと同じことをやりそうになっていた事に気づきました。なので数日経ってからちゃんとPoCを書いてみました。多少知識が増えてくるとついうっかりやってしまいがちなので気をつけなけ

    CVE-2020-10749(Kubernetesの脆弱性)のPoCについての解説 - knqyf263's blog
  • curl は何をしているか #システムコール編 - Qiita

    はじめに curl は Web サーバや REST API の動作確認でよく利用されているコマンドです curl が実際にどんな処理を行っているのか、strace コマンドを使用してシステムコールレベルで観察してみたいと思います 説明に間違いがありましたらごめんなさい 調査環境 Web サーバ 1 台とクライアントマシン 1 台を LAN ケーブルで直結し、OS は Linux をインストール、Web サーバは nginx を使用します 各マシンの IP アドレスは以下の通りです マシン IP アドレス

    curl は何をしているか #システムコール編 - Qiita
  • digとtcpdumpを利用してDNSの反復問い合わせの挙動を確認しよう | DevelopersIO

    こんにちは。サービスグループの武田です。 インターネットを利用する上で必要不可欠なしくみとしてDNSDomain Name System)があります。DNSホスト名からIPアドレスを調べる名前解決のしくみですね。それではこのDNSというサーバは実際にどのように名前解決を行っているのでしょうか? 今回はコマンドを使って、簡単に挙動を確認してみましょう。 なおこの記事では、DNSサーバが階層構造となってドメイン管理をしていることの説明はしません。 問い合わせには2種類ある DNSサーバは実際にレコードを保持して管理する DNSコンテンツサーバ と、コンテンツは保持せず問い合わせの解決と結果をキャッシュする DNSキャッシュサーバ があります。一般的にクライアント(DNS用語では スタブリゾルバ と呼ぶ)はDNSキャッシュサーバに対して問い合わせを行います。 さてDNSキャッシュサーバはコン

    digとtcpdumpを利用してDNSの反復問い合わせの挙動を確認しよう | DevelopersIO
  • nethogs でプロセス別の通信量を調べる - ablog

    nethogs はネットワークの top コマンド的なもので通信量の多いプロセスをランキング表示して、秒間通信量も見ることができる。 インストール sudo yum -y install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* git clone https://github.com/raboof/nethogs cd nethogs make sudo make install 使ってみる sudo /usr/local/sbin/nethogs 参考 NetHogs is a small 'net top' tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwid

    nethogs でプロセス別の通信量を調べる - ablog
  • Ansible の標準lookup pluginの「dig」で名前解決する - てくなべ (tekunabe)

    はじめに Ansible には標準で「dig」という名前解決ができる lookup plugin があることを知りました。 Lookups — Ansible Documentation 基的な書式は lookup('dig', 'example.com.') です。 公式ドキュメントに実行例がなかったので試してみることにします。 準備 内部で dnspython というパッケージを利用するのであらかじめインストールしておきます。 pip install dnspython なお、dnspython をインストールしていない状態で playbook を実行すると以下のエラーが表示されます。 fatal: [localhost]: FAILED! => {"failed": true, "msg": "An unhandled exception occurred while runnin

    Ansible の標準lookup pluginの「dig」で名前解決する - てくなべ (tekunabe)
  • Ansible でネットワーク機器のコマンド結果をパースしてくれるフィルタープラグイン「ansible_helpers」を試してみた - てくなべ (tekunabe)

    ■ はじめに Ansible はCisco IOS や、Juniper JUNOSなど様々なネットワーク機器に対応するモジュールがあります。 show系のコマンドを実行して結果を取得することもできますが、取得した結果を良い感じにパースしてくれるフィルタープラグイン 「ansible_helpers」を見つけたので試してみます。 作者はnetmikoの作者でもある Kirk Byers (@ktbyers) さんです。 ▼プラグインを知るきっかけとなったツイート Ansible filter plugin I wrote to help convert unstructured data to structured data using ntc-templates and TextFSM https://t.co/D3SyGzjVLK— Kirk Byers (@kirkbyers) 20

    Ansible でネットワーク機器のコマンド結果をパースしてくれるフィルタープラグイン「ansible_helpers」を試してみた - てくなべ (tekunabe)