Linux

Linuxにおける Equal Cost Multipath (ECMP) の設定方法と挙動に関するメモ

Linuxのネットワークスタックでmultipathを使用する場合の設定方法と挙動に関するメモ。 設定方法 設定自体は ip route add コマンドで nexthop を複数指定するだけ。src の指定は必要に応じて。 # ip route add 10.1.1.0/24 src 10.0.0.3 \ nexthop via 192…

Linux VRF with L3 Master Device

Linux kernel 4.4から登場した、L3 Master Device (l3mdev) によるVirtual Routing and Forwading (VRF) を軽く触ってみたメモ。 そもそも何をするためのものなのか Linuxのネットワーク廻りを触っていると、たまに「特定のネットワークインタフェースから入…

Generic XDPを使えばXDP動作環境がお手軽に構築できるようになった

XDP (eXpress Data Path) ネタ。 パフォーマンス上の理由から、XDPのパケット処理はskbが割り当てられる前にNICドライバから直接呼び出させる。そのため、XDPプログラムの動作にはNICドライバ側でのサポートが必要となる。 5月時点での対応ドライバリストは…

Facebookはレイヤ4ロードバランサをIPVS(LVS)からXDPベースのものに乗り換えつつある

4月に開催されたnetdev 2.1で面白いセッションがあったのでメモ。 Facebookが使用しているレイヤ4のロードバランサに関する発表で、従来はIPVS (LVS) を使用していたが、XDPベースで自ら開発したものに移行しつつある、という内容。 XDP Production Usage: D…

eBPF tail call 使い方メモ

eBPFにはtail callと呼ばれるプログラム呼び出し方法が存在する。 これは、ある実行中のBPFプログラムから別のBPFプログラムにジャンプするものである。あくまでジャンプであって、通常の関数呼び出しと違って呼び出し元に処理は戻らない。ユースケースとし…

Virtio-netでXDPを動かすにはqemuのオプション変更が必要

Linuxカーネル4.10からvirtio_netがXDPをサポートするようになった。だが、動作させるには少しオプション変更が必要となる。 Qemuの起動オプションに下記を渡すことでここに記載のあるオフロード機能が無効になり、XDPが動作するようになる: gso=off,guest_t…

Persistent eBPF map object with bcc

Linux kernel 4.4以降には,eBPF map/programを"永続化"する仕組みが実装されている.ここではその概要を説明しつつ,iovisor/bccを使って実際にその動作を確かめてみる. Background: eBPF objectを複数プロセスで共有したい eBPFにmapというデータ構造があ…

Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる

先日netdev 1.2に参加してみたところ,XDP(eXpress Data Path)の話題で持ち切りといった感じだった. というわけで,XDPについて一通り調べつつ,実際に触ってみた. XDPとは何か? 誤解を恐れずに一言で言うと,「Intel DPDKのような高速パケット処理基盤を…

Fedora17 デスクトップ環境構築メモ

すぐ忘れるのでメモ.随時追加. 環境 Fedora 17 x86_64 ThinkPad x200 7454-CTO 4GB * 2 メモリ 250GB SSD (Samsung MZ-7TD250B/IT) /boot : 1GB, ext4 / : 残り全部, ext4 OSインストール直後 MIN_UID / MIN_GIDの変更 Fedora 16から,一般ユーザのUID/GID…

ACアダプタ接続時,画面オフしないようにする (Fedora16+Gnome3)

$ gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 600 # バッテリー駆動時は600sで画面オフ $ gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0 # ACアダプタ接続時は画面オフしない 液晶モニタの…