Netlinkを学び始めました。記録です。 今回はNetlink メッセージをコードで書く内容であったり、そのメッセージをキャプチャしてバイナリを読みながらNetlinkを理解する記事になります。 Netlinkとは? ユーザー空間とカーネル空間のやりとりを行う事が出来るLinux kernelのサブシステムです。 Netlinkは、socket通信を利用してユーザー側はカーネル空間との通信を行う事が出来るため通常のネットワークプログラミングと同じように、Netlinkに関する様々な要素を持ったヘッダーを付加し送信を行った後、recv関数といったソケットからメッセージを受け取る関数を使用する事でカーネル空間とユーザ空間の通信を実現しています。 linuxjm.osdn.jp ネットワーク経由でNetlinkを使用する主な要素としては以下が挙げられます。 経路テーブルに関する操作(例:追加,
今回は「Linuxで動かしながら学ぶTCP/IPネットワーク入門」に載せようか悩んで、結局は載せなかった内容のひとつを扱う。 Linux の Network Namespace を使って作った 2 台のルータを、Keepalived (VRRP) を使ってホットスタンバイで冗長化する構成を組んでみる。 つまり、2 台のうち 1 台のルータに障害が起きても、残りの 1 台が役務を引き継いで通信を継続できる状況を再現する。 使った環境は次のとおり。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal $ uname -srm Linux 5.4.0-107-generic aarch
21/11/24 Go Reject Con 2021にて発表 https://moneyforward.connpass.com/event/228698/
Linux has rich virtual networking capabilities that are used as basis for hosting VMs and containers, as well as cloud environments. In this post, I will give a brief introduction to all commonly used virtual network interface types. There is no code analysis, only a brief introduction to the interfaces and their usage on Linux. Anyone with a network background might be interested in this blog pos
[翻訳] 仮想ネットワークのための 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
翻訳ステータス: このページは en:ArchWiki:Archive の翻訳バージョンです。最後の翻訳日は 2020-07-12 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。 このページはアーカイブされたページのリダイレクト先です。 記事を見ようとしてこのページに飛ばされた場合、そのページはアーカイブされています: このページのタイトルの下にある「〜から転送」のリンクを辿ってから、転送ページの履歴を開くことで改訂を閲覧できます。 アーカイブページのリストはカテゴリ:アーカイブや特別:リンク元/ArchWiki:アーカイブを見てください。 アーカイブされたページについて、既存の記事にリダイレクトするほうが好ましいと思ったときは、そうしてください。 ページをアーカイブする方法 ページをアーカイブする前に、既存の記事へリダイレクトすることができないか確かめてください。
はじめに Linux Advent Calendar 10 日目の記事です。 運用や研究開発の現場では、ソフトウェアの実験、または機器のテストや選定などのために、ベンチマークツールや自前のアプリケーションでコンピュータ間の通信速度を計測する機会が多々あると思います。一方で10Gbpsや40Gbpsといった昨今の高速ネットワークにおいては、これらの計測結果はアプリケーションの通信API部分の実装、カーネルパラメータまたはコンパイルオプションによって大きく変わってしまうため、正確な計測を行うためにはこれらを正しく設定/理解する必要があります。この記事では、ネットワーク周りのカーネルとアプリケーションの動作の概要と、その中の重要なポイントを理解することを目的にします。 ネットワークプログラミングのおさらい まず最初に、TCPを使う今時のサーバプログラムがどのようにできているか簡単におさらいします
iptablesの課題を解消し、高速で安全な通信を実現するCiliumとはなにか? KubeConでのプレゼンテーションをベースに解説する。 コンテナを用いたクラウドネイティブなシステムに移行しようとすると、従来の仮想マシンベースのシステムよりも粒度の細かいコンテナワークロードをオーケストレーションする必要がある。昨今Kubernetesが注目されているのは、そのためだ。その際にコンテナ間のネットワークをどのように構成するのか? は、インフラストラクチャーエンジニア、ネットワークエンジニア双方にとって頭が痛い問題である。特に多くのコンテナが連携するシステムであれば、コンテナ間のトラフィックを遅延なく通信させることが重要になる。 またIstioのように、サービスメッシュとしてPodの中にProxyをサイドカーモードで構成する場合、コンテナとProxyの間にも通信が発生し、ますますオーバーヘッ
Table of Contents1. 献辞2. はじめに2.1. 免責およびライセンス2.2. 事前に必要な知識2.3. Linux にできること2.4. この文書の管理についてのメモ2.5. 取得、CVS およびアップデートの投稿2.6. メーリングリスト2.7. この文書の構成3. iproute2 入門3.1. なぜ iproute2 なのか?3.2. iproute2 の概略3.3. 事前の必要条件3.4. 現在の設定を調べてみる3.5. ARP4. Rules - ルーティングポリシーデータベース4.1. 簡単なソースポリシールーティング4.2. 複数のアップリンク/プロバイダに対するルーティング5. GRE トンネル、その他のトンネル5.1. トンネルに関する一般的な事柄5.2. IP in IP トンネリング5.3. GRE トンネリング5.4. ユーザランドのトンネル6.
最近 ParallelServer というライブラリを作ったのですが、その最中に奇妙な状態になってる TCP ポートを見つけたので、メモっておきます。 Ruby では TCP サーバーは次のような感じで作ることができます。お手軽ですね。 require 'socket' Socket.tcp_server_loop(12345) do |socket, client_addr| socket.puts "Your IP address: #{client_addr.ip_address}" name = socket.gets socket.puts "Hello, #{name}" socket.close end これは 12345 ポートでクライアントからの接続を待ち、接続されたらクライアントのIPアドレスとクライアントからの入力をクライアントに送信して切断するだけの簡単なプログラム
先日netdev 1.2に参加してみたところ,XDP(eXpress Data Path)の話題で持ち切りといった感じだった. というわけで,XDPについて一通り調べつつ,実際に触ってみた. XDPとは何か? 誤解を恐れずに一言で言うと,「Intel DPDKのような高速パケット処理基盤をLinuxカーネル自身が用意したもの」であると理解している.このスライドでは A programmable, high performance, specialized application, packet processor in the Linux networking data path と言っている. DPDKはユーザランドアプリケーションがNICを直接叩く(=カーネルのネットワークスタックをバイパスする)ことで高速処理を実現している.一方XDPは,カーネル内の最もNICドライバに近い場所でフッ
Als je overweegt om een e-bike kopen, is het essentieel om eerst je rijstijl te begrijpen. Ben je een dagelijkse Read more
Monitoring and Tuning the Linux Networking Stack: Receiving Data TL;DR This blog post explains how computers running the Linux kernel receive packets, as well as how to monitor and tune each component of the networking stack as packets flow from the network toward userland programs. UPDATE We’ve released the counterpart to this post: Monitoring and Tuning the Linux Networking Stack: Sending Data.
本記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を
There's not a lot of documentation about these interfaces. Here are some notes to summarize what I've been able to gather so far. Surely there's more to it (corrections and/or more information welcome). Macvlan interfaces can be seen as subinterfaces of a main ethernet interface. Each macvlan interface has its own MAC address (different from that of the main interface) and can be assigned IP addre
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く