using xeon d 10gbase-t
TRANSCRIPT
Using Xeon D 10GBase-T(or Using ip netns)May 29, 2015Masaru OKI @masaru0714
Xeon D 10GBase MAC
● X540 variant● SUPERMICRO X10SDV-TLN4F: 10GBase-T * 2
○ Ubuntu 15.04 serverでは、認識されなかった○ PCI IDがUbuntuにとって未知と思われる
ドライバを入れればいいじゃなイカ!
IntelがLinuxドライバのソースを配布しているhttps://downloadcenter.intel.com/ja/download/24941
利用条件に同意してダウンロード、展開して
cd src; sudo make installrmmod ixgbe; modprobe ixgbe
見えました(Ubuntu 14.04.2LTSにて)$ ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 1000baseT/Full
10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 10000Mb/s
em0: i350 (GbE)em1: i350 (GbE)eth0: X540 (10GbE)eth1: X540 (10GbE)
動作テストを考える
● スループットがどのくらい出るか確認したい● 対向がいないので2つのポートをつなげてみる● IPアドレスを振ってpingやiperfするのはどうか?
○ 単純設定だとNICを通りません、残念!
eth1
eth0172.21.0.1
172.21.0.2
ホストが2つIPアドレスを持っているため、NICを通さず処理されるiperf結果: 40 Gbits/sec
netnsを使ってみる
● Network Namespace● コンテナでも使われる名前空間の分離● ルーティングテーブルが複数あるイメージ● 2つのnsを用意して、その間で通信させる
netnsの使い方
1. ns作成ip netns add NET0
2. 物理NICの所属をNET0に移すip link set eth0 netns NET0
3. 物理NICにアドレス付与ip netns exec NET0 ip addr add 172.21.0.1/24 dev eth0
4. 同様にして、eth1をNET1に所属させ172.21.0.2/24を付与
ip netns exec NET0 ip linkするとloとeth0しか見えない。
同様にNET1にはloとeth1だけが存在する。
eth0,eth1はns指定をしないip linkでは見えなくなるので注意。
eth1
eth0NET0 172.21.0.1
NET1 172.21.0.2
iperfの結果
1. sudo ip netns exec NET0 iperf -s2. sudo ip netns exec NET1 iperf -c 172.21.0.1------------------------------------------------------------
Client connecting to 172.21.0.1, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 172.21.0.2 port 52119 connected with 172.21.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 10.9 GBytes 9.40 Gbits/sec