Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Research Paper Introduction #17 P4DNS in-Networ...
Search
cafenero_777
May 21, 2021
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Research Paper Introduction #17 P4DNS in-Network dns
https://eng.ox.ac.uk/computing/blogs/p4dns-wins-xilinx-open-hardware-2020-competition/
cafenero_777
May 21, 2021
More Decks by cafenero_777
See All by cafenero_777
#51 “Empowering Azure Storage with RDMA”
cafenero_777
3
580
#49 “Gray Failure: The Achilles’ Heel of Cloud-Scale Systems”
cafenero_777
2
160
#50 “Scalable Hierarchical Aggregation Protocol (SHArP): A Hardware Architecture for Efficient Data Reduction”
cafenero_777
0
170
#33 “Destroying networks for fun (and profit)”
cafenero_777
0
130
#34 “MTPSA: Multi-Tenant Programmable Switches”
cafenero_777
0
100
#37 “Bluebird: High-performance SDN for Bare-metal Cloud Services”
cafenero_777
1
180
#39 “Profiling a warehouse-scale computer”
cafenero_777
0
79
#23 “VFP: A Virtual Switch Platform for Host SDN in the Public Cloud”
cafenero_777
0
300
#24 “Ananta: Cloud Scale Load Balancing”
cafenero_777
0
360
Other Decks in Technology
See All in Technology
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
5
490
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
140
「休む」重要さ
smt7174
6
1.7k
システム監視入門
grimoh
2
540
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
4
410
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
190
kaonavi Tech Night#1
kaonavi
0
170
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
2
870
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1.1k
書籍セキュアAPIについて
riiimparm
0
330
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
VPCセキュリティ対応の最新事情
nagisa53
1
320
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.1k
Mind Mapping
helmedeiros
PRO
1
290
Six Lessons from altMBA
skipperchong
29
4.3k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
350
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
AI: The stuff that nobody shows you
jnunemaker
PRO
9
840
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
230
Typedesign – Prime Four
hannesfritz
42
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Transcript
Research Paper Introduction #17 “P4DNS: In-Network DNS” ௨ࢉ#61 @cafenero_777 2020/12/10
Agenda • ରจ • ֓ཁͱಡ͏ͱͨ͠ཧ༝ 1. INTRODUCTION 2. BACKGROUND 3.
ARCHITECTURE 4. DATA PLANE 5. CONTROL PLANE 6. EVALUATION 7. DISCUSSION 8. RELATED AND FUTURE Work 9. CONCLUSION
$ which • P4DNS: In-Network DNS • Jackson Woodru ff
, Murali Ramanujam, Noa Zilberman • University of Cambridge • ANCS ’19 • EuroP4_2019 • https://p4.org/assets/EuroP4_2019/EuroP4-2019-slides-02.pdf • ຊମ • https://github.com/cucl-srg/P4DNS • OxfordͰͷIn-network computingݚڀϦετʢʁʣ • https://eng.ox.ac.uk/computing/projects/in-network-computing/
࠶ܝɿIn-network computing? • Endpointؒͷpath্ʹ͋ΔʢCPUҎ֎ͷʣ༷ʑͳϦιʔεcomputingʹ͓͏ɺσʔλΛத৺ʹߟ͑Α͏ɺͱ͍͏ • GPU (nodeGPUs, nodeؒGPUs) • NW
endpoint (NIC, SW) • HW acceleration (NW, RDMA, P4, SmartNIC) • ༻్ɿετϦʔϜॲཧɺKVS, ετϨʔδసૹΦϑϩʔυɺNWΦϑϩʔυɺଳҬʢover 100Gbpsʣ& ిྗޮԽ http://nowlab.cse.ohio-state.edu/static/media/workshops/presentations/exacomm17/exacomm17-invited-talk-gilad-shainer.pdf
֓ཁͱಡ͏ͱͨ͠ཧ༝ • ֓ཁ • In-network computingΛ͏ڥͱͯ͠ͷεέʔϥϒϧDNS • P4/NetFPGAΛͬͯDNSαʔόΛ࣮ɺSoftwareͱൺͯ52ഒੑೳ্ • C/D-planeͷτϨʔυΦϑΛٞ
• ಡ͏ͱͨ͠ཧ༝ • P4ͷར༻ࣄྫΛΓ͔ͨͬͨ • IN-Network ArchitectureͱͷؔੑʢͷҰྫʁʣ
1. Introduction • NWधཁͷ૿Ճ -> programable NWͰscalability֬อ -> HW o
ffl oad • NW͚ͩͰͳ͘ΞϓϦέʔγϣϯo ffl oad͍ͨ͠ • ΠϯϑϥΞϓϦέʔγϣϯ (in-network application)ͱͯ͠DNSΦϑϩʔυΛࢼ͍ͨ͠ • P4-NetFPGAΛ͍ɺσόΠεͰαʔϏε݁ͤ͞Δ • https://github.com/cucl-srg/P4DNS • ΞʔΩςΫνϟɾD-plane࣮ɾC-planeઃܭ • P4ͱͷɺC-planeͱͷ࿈ܞ • ͦΕͰಋೖΛ᪳ • C/D-planeʹ͍ͭͯͷ՝Λਫ਼ࠪ • ຆͲͷC/Dʢisolation/manageability/։ൃ༰қੑʣΛ
2. Background • DNSύέοτϑΥʔϚοτ • Request/ResponseͰڞ༻ • υϝΠϯ໊: ࠷େ255ΦΫςοτ •
ϦΫΤετλΠϓΛࢦఆ • هɾ্ॻ͖ͯ͠ฦ͢ • ࠶ؼత͍߹Θͤ • RFC1034, RFC1035
3. Architecture (1/2) • P4DNSͷσβΠϯ • ϨϕϧʢػೳͳʣωʔϜαʔόΛࢦ͢ • Snoopͯ͠ϨεϙϯεΛฦ͢ʢܦ࿏্ʹಁաతʹೖΕࠐΉɻϢʔβʹؾ͔ͮΕͳ͍ʣ •
Ωϟογϡ͞Εͯͳ͚Ε࠶ؼతղܾɺͦ͏Ͱͳ͚Ε௨ৗͷSWతʹసૹ • ੑೳ֓ཁ • εϧʔϓοτ52ഒ (NSDൺ), 10ഒ (Emuൺ)ɺதԝͱTail-latencyͷࠩ30ns • D/C-plane౷߹͔ͨ͠Βੑೳྑ͍ʁ • ಛ • DNS௨৴Ҏ֎ී௨ʹSwitching/Forwarding͢Δ • AϨίʔυΫΤϦՄมʹରԠ • DNS cacheߋ৽ͱTTLཧ • ࠶ؼ߹ͤϚϧνεϨουͰɻ • Match-action pipelineʹ߹Θͳ͍ͷC-planeͰॲཧͯ͠ϘτϧωοΫճආ https://p4.org/assets/EuroP4_2019/EuroP4-2019-slides-02.pdf
3. Architecture (2/2) • MACͷֶश • ࠶ؼ߹ͤɺΩϟογϡϛεεϨουੜͯ͠C-plane • C-plane֤DͷTTL/CacheཧɺΤϯτϦཧ •
P4ར༻͚ͩͰෆՄೳ • D-planeύϑΥʔϚϯεϝΠϯɺparser/match-action pipeline w/ exact match table • NetFPGA SUME্ʹP4DNSΛ࣮ɻP4 -> NetFPGA on Switch • Ҡ২༰қʢΒ͍͠ʣ
4. Data Plane (1/2) • Parser: • DNSύέοτͷΈDNSϔομΛநग़ • ՄมͳύέοτP4ίϯύΠϥతʹະαϙʔτ
• Ίʹ֬อͯ͠zero- fi ll • Main Action • ϔομ͔ΒDNSϨεϙϯε͕ඞཁ͔அ • Cacheʹ͋ΕϔΞϐϯ • Deparser • ύέοτ࠶ߏஙͯ͠์ग़ C-plane
4. Data Plane (2/2) • Limitation and Challenge • Parser/Actionͷ؆ུԽɿίϯύΠϧ࣌ؒͱFPGAϦιʔεͱͷτϨʔυΦϑ
• ϒʔϧϩδοΫʢਅཧදʁʣΛΘͳ͍ • DNS໊ࣗମ͕FPGAͰѻ͍ʹ͍͘ʢCݴޠͷforͰѻ͍͍͢ʣ • Ҡ২ੑΛ٘ਜ਼ʹͯ͠externΛͬͨ
5. Control Plane • DMA͔Βड৴ͨ͠ύέοτΛॲཧ͢ΔεϨου(pythonͰͷฒྻॲཧ) //ӈਤͷ௨Γ • Ωϟογϡߋ৽͕ओͳత • DNS
response͕௨աͨ࣌͠ • ࠶ؼΫΤϦԠड৴࣌ • TTLߋ৽࣌ (SW/HW྆ํʹอ࣋) • ઃܭ্ͷ՝ • ฒߦॲཧ (concurrent)Ͱڞ༗HWϦιʔεڝ߹ͰϘτϧωοΫ • P4 -> NetFPGA͕ΞτϛοΫͰͳ͍ɺεϨουηʔϑͰͳ͍ʢʂʣ • ϩοΫͰճආɺσουϩοΫා͍ • ྫɿTTL=0సૹ͢Δલʹআ͍ͨ͠ɺ͕ɺͦͷ࣌ʹΫϥογϡ͢ΔͱҰ؏ੑΛࣦ͏ • SDNet API: HW tableॻ͖ࠐΈ࣌ʹsilent fail • ScapyͰύέοτॲཧɻύέοτ͕࣮ࡍͷwire্ͱҟͳΔṖόΫ • ݪҼDNSѹॖʢϝοηʔδѹॖʣɺScapy͕”ʹ”ղౚͯ͘͠ΕͨɻղౚࢭύονΛͯͨɻ
6. Evaluation (1/2) • ΩϟογϡԠʹ͍ͭͯɺP4DNSͱNSD/Emuͱൺֱ • Setup • ޫλοϓͰϛϥʔϦϯάɺΩϟϓνϟΧʔυͰ࣌ؒଌఆ •
RequestͱResponseͷ͕ࠩΫϥΠΞϯτͷͪ࣌ؒ • OSNT: OSS tester, DNSύέοτੜ༻ • NSD: Intel Xeon E5-2637 v4 3.50GHz, 64GB RAM, Solar fl are SFC9220 10G NIC Server Client TX RX Capture
6. Evaluation (2/2) • Throughput • OSNTͰ1000ສ݅ͷ64B DNSΫΤϦੜ • ॲཧ͔࣌ؒΒThroughputΛܭࢉ
• NSDͷ52ഒɺEmuͷ10ഒྑ͍ • Latency • 1000ύέοτૹ৴࣌ͷlatency • 1.6usఔɻͱͯ͘ɺύέοταΠζͰͷӨڹۃখ • match-actionͷεςʔδΛ૿͢ͱlatency૿ • SDNetʢίϯύΠϥʣͷόʔδϣϯΛ্͛Δͱվળ͞ΕΔ༧ఆ • ௨ৗͷDCͷଟஈεΠονߏʹֻ͔ΔlatencyίετΛഉআ • NSD/Emuൺֱ • P4DNS”ͬͱར༻͞ΕΔػೳ”ͷݶఆ࣮ɻޮॏࢹɻͦͷͨΊNSDͱػೳڝ߹͠ͳ͍ɻ • Emuݶఆ࣮Λ൚༻Խͨͨ͠ΊػೳʢखಈͰͷυϝΠϯ໊બʣ͔ͭඇύΠϓϥΠϯɻ 10G wire-rate 1.6us
7. Discussion • P4 -> NetFPGA3ͰՄมϑΟʔϧυΛαϙʔτ͍ͯ͠ͳ͍ • ΑΓγϯϓϧͳΒͬͱෳࡶͳ͜ͱͰ͖ͦ͏͕ͩɺɺʁ • CݴޠελΠϧʹґଘ͗͢͠ʂʢnullऴจࣈྻܗࣜͳͲʣ
• extern (֎෦ϑΝΠϧґଘʹϥΠϒϥϦ)ʹڧ͘ґଘɻP4͚ͩͰॻ͚ͳ͍ɺɺ • Control plane͍ • D-planeͰͷγϯϓϧͳϨεϙϯεΛฦ͢͜ͱҎ֎͍ʹҙ • TCP-based DNSαϙʔτͰ͖ͳ͍
8 Related and future work • In-network computingͰϗετෛՙݮ • cachingɾࢄγεςϜػೳɾstreamॲཧ
• P4DNS • programable switchʹҠ২Ͱ͖Δ • طଘͷϓϩτίϧʢDNSʣΛͦͷ··ॲཧͰ͖Δ • ػೳੑEmuΑΓྑ͍ɺੑೳNSDΑΓྑ͍ • future work • ΑΓେ͖ͳcacheͷαϙʔτ • ϦμΠϨΫτΛ͏NSԠʢϥϕϧ୯ҐͷυϝΠϯϚονϯά ʣͷαϙʔτ • DNSSEC, DoH (DNS over HTTPS)ͳͲ͏·͘౷߹͍͖͍ͤͯͨ͞
9. Conclusion • P4DNS • hostͷۙ͘Ͱॲཧɾฦ͢Δ͜ͱͰੑೳ (latency, throughput) ͷେ෯վળ •
= in-network computing! • NSDൺͰ52ഒɺEmuൺͰ10ഒ • εΠονͰNW/caching/Appͷػೳ͕ಈ࡞ͤ͞Δ͜ͱ͕Ͱ͖ͨ • Parserʢlogic areaతͳʣϦιʔεΛ৯͏ͷͰ͕ඞཁ • stateཧ͕HWઃܭΛ੍ݶ͍ͯ͠ΔʢͷͰɺC-planeͱͯ͠֎ʹग़ͨ͠ʣ • ߋʹεέʔϧͤ͞Δʹඞཁ
EoP