Network

ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例

最近のNICの中にはTCハードウェアオフロード機能を持っているものがあり、これを使えばNICハードウェア上でパケット転送処理に手を加えられることは以前のエントリで簡単に紹介した。 yunazuno.hatenablog.com 今回はこれを応用し、NICハードウェア上でL3ス…

tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する

Linuxのtcには、指定した条件にマッチしたパケットをドロップしたりヘッダを書き換えたりするためのflowerフィルタが存在する。 tc-flower(8) - Linux manual page 最近のNICの中にはこの処理をハードウェアにオフロードできるものがあり、通常のソフトウェ…

FRRはRFC5549な経路をLinuxカーネルのルーティングテーブルへどうやってインストールするのか

FRRouging (FRR)という、Quaggaからフォークしたルーティングデーモンがある。 github.com FRRはRFC 5549に対応しており、bgpdで受信したIPv6ネクストホップを持つIPv4経路をzebra経由で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のネットワーク廻りを触っていると、たまに「特定のネットワークインタフェースから入…

自宅のルータをAT-AR2050Vに入れ替えた & 回線をv6プラス化した

自宅マンションで光配線方式のフレッツが使えるようになったので、これを機にルータの入れ替えとv6プラス(IPv6 IPoE)化を実施したメモ。 結論から言うと、IPv4 PPPoE時代に発生していた夜間帯の輻輳が解消され、かなり快適になった。 構成変更前の環境 現住…

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

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

Maglev Hashing with Python

今更ながら,GoogleのMaglev論文で提案されているMaglev Hashingを手元で実装してみた. Maglev: A Fast and Reliable Software Network Load Balancer Maglev Hashingとは 所謂Consitent Hashの一種.Maglevロードバランサにおけるリアルサーバ選択に使用さ…

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

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

ロードバランサのアーキテクチャいろいろ

少し前に,Facebookのロードバランサが話題になっていた. blog.stanaka.org このエントリを読んで,各種Webサービス事業者がどういったロードバランスアーキテクチャを採用しているのか気になったので調べてみた. ざっくり検索した限りだと,Microsoft, Cl…

OS X 10.11のDNS64らしき動きをするDNSサーバを作る

OS X 10.11 El Capitanのインターネット共有機能を使うと,IPv6インターネット接続性が無い環境であってもIPv6 only networkを作ることができる,とAppleは言っている.どういう仕組みなのか少し調べてみたところ,AAAA filterに似た仕組みをDNS64に組み込ん…

Norikraでそこそこ手軽にNetFlow解析

去年のJANOGで別の方が発表された内容とダダ被りではあるものの,折角なのでメモ程度に書いておく. 概要 データセンタネットワークやバックボーンネットワークの運用をやっていると,インターネットに出入りするトラフィックの内訳 (どのISP向けのトラフィ…

モダンなcipher suiteに対応していないHTTPSクライアントを搭載したロードバランサが存在する問題について

実は一般的に知られている問題なのかもしれないものの,最近知ったのでメモ. 概要 一部のロードバランサアプライアンスにおいて,搭載されているHTTPSクライアントが所謂"モダンな"暗号スイートに対応していないものが存在する このため,特定条件下におい…

VyOS+fluent-plugin-netflowでNetFlowを取得する

NetFlowまわりの諸々を触りたいとき,VyOSだとハードウェアを別途用意しなくても手軽に色々試せて便利. VyOSの設定 PlixerとManageEngineの記事を見つつ,下の設定さえあればとりあえず動く.Timeout値まわりは環境に合わせて要調整.バージョンはVyOS 1.0.…

Client Subnet in DNS Requests (draft-vandergaast-edns-client-subnet) を読んだ

先日googleとakamaiは仲良し?というエントリを読んだとき,恐らくEDNS Client Subnet Optionだろうとは思った*1ものの,EDNS Client Subnet Optionの動作をきちんと把握してはいなかったので,この機会にdraftを読んでみた. 概要 DNS権威サーバの中には,…

grepcidr: IPアドレスをサブネットで一括grep

あるファイルに含まれるIPアドレスをgrepしたいとき,/32なり/128なりのIPアドレスそのものではなく,サブネットでgrepできると便利な場面が多々ある.それらしき物が無いか探したところ,grepcidrというツールがあったのでメモ. 導入 単純にソースコードを…