SlideShare a Scribd company logo
1 of 12
エクストリームな
ネットワーク機器テスト環境の実現

Yohei Kuga @sora_workwork
Trema Day #5 LT
今日の話

•
•

ネットワークテスタHWが持つ高精度な試験機能をネッ
トワークSWツールに適応したい
実装はNIC(FPGA+PCIe) + Linux device driver

Ixia Chassis
http://www.ixiacom.jp/products/chassis/ixia-chassis-family-quick-reference-sheet
アプローチ 1: Userspace Dataplane
Control plane
Control plane

Data plane

software

Data plane

Device

hardware

Device

Existing hardware
tester

Our approach
アプローチ 2: Timing API

•
•
•

パケット送受信タイミング管理をNICにOffload
Userspaceからパケットごとに送信タイミングを指定
精度は8ns, 相対時間と絶対時間をサポート
Scheduled TX using
timestamp
RX w/ timestamp
on the hardware

traffic

Userspace
read(2)

NIC

write(2)
2つの時間の指定方法
NIC内にPHYと同じClock sourceを用いた48 bit counterを用意

各パケットのRX timestamp && TX Timing 制御に利用

•
•

Global mode (絶対時刻を指定)

o App: forwarding, dummynet
Local mode (相対時刻を指定)
o 最初の送信パケットからの相対的な遅延を指定
o App: Network testing
アプローチ 3: Programmable Interface

•

Ethernet Character device [HotSDN13]

•

Fileでパケットシナリオを保存 -> `cat`でreplay
アプローチ 3: Programmable Interface
Packet sending

$ echo “0000000000000000 FFFFFFFFFFFF 0022CF63967B 8899 23 …“
>/dev/ethpipe/0
Port mirroring

$ cat /dev/ethpipe/0 | tee /dev/ethpipe/0 > /dev/ethpipe/1
MAC address filtering
$ grep ‘FFFFFFFFFFFF’ /dev/ethpipe/0 > /dev/ethpipe/1
VLAN untagging
$ sed -e 's/8100 00 01 //' < /dev/ethpipe/0 > /dev/ethpipe/1
サンプルシナリオ
PC1
Userspace

nsping.sh

NIC
(FPGA)

PC2
NIC
(FPGA)

Userspace

10ms.sh
1 #!/bin/bash

$ ./10ms.sh < /dev/ethpipe/0

2
3 delay=$(( 10000000 / 8 ));

# 10ms

4 while true; do
5

read pkt;

6

if [[ $pkt =~ ^[0-9A-F]{16} ]]; then

7

recv_ts=${pkt:0:16};

8

frame=${pkt:16};

9
10

printf "%016X$framen" 

11
12

$(( 16#$recv_ts + 10#$delay )) > /dev/ethpipe/1;
fi

13 done
...
PING_REQ=“9000000000000000 ${ETH_HDR} ${IP_HDR} ${ICMP_HDR} ${PING_ID} …”
while true; do
PING_NO=$(( ${PING_NO} + 1 ))
PING_NO_TMP=`printf "%04dn" ${PING_NO}`
echo $PING_REQ >/dev/ethpipe/0
# Sending
while true; do
read pkt
if [[ $pkt =~ "${PING_ID} ${PING_NO_TMP:0:2} ${PING_NO_TMP:2:4}" ]]; then
TX_TIME=`cat /sys/kernel/ethpipe/local_time1`
RX_TIME=${pkt:0:16}
printf "RTT: %d nsn" $(( (0x${RX_TIME} - 0x${TX_TIME}) * 8 ))
break
fi
done
sleep 1
done
$ ./nsping.sh < /dev/ethpipe/0
アプリケーション
送受信タイミングを制御できると色々遊べる

•

•
•

Middlebox
o latency emulation
“Extreme” network testing
o RFC2544, Cable checker, Infer the underlay topology, E2E
bandwidth estimation
Generic purpose network IO
o Order of packet receiving, Jitter and congestion control, packet
pacing
おしまい

More Related Content

What's hot

04 後期勉強会一年の部【小野寺】
04 後期勉強会一年の部【小野寺】04 後期勉強会一年の部【小野寺】
04 後期勉強会一年の部【小野寺】
yu-Linux
 

What's hot (20)

OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
 
04 後期勉強会一年の部【小野寺】
04 後期勉強会一年の部【小野寺】04 後期勉強会一年の部【小野寺】
04 後期勉強会一年の部【小野寺】
 
nftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
 
DPDK QoS
DPDK QoSDPDK QoS
DPDK QoS
 
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
IIJlab seminar - Linux Kernel Library: Reusable monolithic kernel (in Japanese)
 
クラウドネットワークの仮想化そしてVxLAN Offloadによる高速化
クラウドネットワークの仮想化そしてVxLAN Offloadによる高速化クラウドネットワークの仮想化そしてVxLAN Offloadによる高速化
クラウドネットワークの仮想化そしてVxLAN Offloadによる高速化
 
Open contrail days 2014 fall
Open contrail days 2014 fallOpen contrail days 2014 fall
Open contrail days 2014 fall
 
Lagos running on small factor machine
Lagos running on small factor machineLagos running on small factor machine
Lagos running on small factor machine
 
Open contrailday 20150926
Open contrailday 20150926Open contrailday 20150926
Open contrailday 20150926
 
Contrail deploy by Juju/MAAS
Contrail deploy by Juju/MAASContrail deploy by Juju/MAAS
Contrail deploy by Juju/MAAS
 
Azure Batch Renderingではじめるクラウドレンダリング
Azure Batch RenderingではじめるクラウドレンダリングAzure Batch Renderingではじめるクラウドレンダリング
Azure Batch Renderingではじめるクラウドレンダリング
 
20171122 altair converge2017publish
20171122 altair converge2017publish20171122 altair converge2017publish
20171122 altair converge2017publish
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
OpenStack Neutronの機能概要 - OpenStack最新情報セミナー 2014年12月
 
ShowNet2021 L2/L3_parapara
ShowNet2021 L2/L3_paraparaShowNet2021 L2/L3_parapara
ShowNet2021 L2/L3_parapara
 
Contiv on vagrant_20160224
Contiv on vagrant_20160224Contiv on vagrant_20160224
Contiv on vagrant_20160224
 
Open contrailのご紹介
Open contrailのご紹介Open contrailのご紹介
Open contrailのご紹介
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 
Open stackdaystokyo2016
Open stackdaystokyo2016Open stackdaystokyo2016
Open stackdaystokyo2016
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 

Similar to Tremaday5lt

Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
Masakazu Asama
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Etsuji Nakai
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
Etsuji Nakai
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in Japanese
Mikio Hirabayashi
 

Similar to Tremaday5lt (20)

BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
 
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROSROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
 
Cmc cmd slim
Cmc cmd slimCmc cmd slim
Cmc cmd slim
 
Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介Webアプリケーションによる電源管理システムのご紹介
Webアプリケーションによる電源管理システムのご紹介
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
Linux packet-forwarding
Linux packet-forwardingLinux packet-forwarding
Linux packet-forwarding
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent MemoryASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
 
Wireshark, measure the net
Wireshark, measure the netWireshark, measure the net
Wireshark, measure the net
 
Linux on Power と x86 Linux との技術的な相違点
Linux on Power と x86 Linux との技術的な相違点Linux on Power と x86 Linux との技術的な相違点
Linux on Power と x86 Linux との技術的な相違点
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
 
Klab expert camp 成果発表
Klab expert camp 成果発表Klab expert camp 成果発表
Klab expert camp 成果発表
 
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
Kyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in JapaneseKyoto Tycoon Guide in Japanese
Kyoto Tycoon Guide in Japanese
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
 
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソースストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
ストリーミング視聴解析の基本とその応用 IPv4・IPv6デュアルソース
 

Recently uploaded

Recently uploaded (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Tremaday5lt