Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Research Paper Introduction #17 P4DNS in-Network dns

Research Paper Introduction #17 P4DNS in-Network dns

cafenero_777

May 21, 2021
Tweet

More Decks by cafenero_777

Other Decks in Technology

Transcript

  1. Agenda • ର৅࿦จ • ֓ཁͱಡ΋͏ͱͨ͠ཧ༝ 1. INTRODUCTION 2. BACKGROUND 3.

    ARCHITECTURE 4. DATA PLANE 5. CONTROL PLANE 6. EVALUATION 7. DISCUSSION 8. RELATED AND FUTURE Work 9. CONCLUSION
  2. $ 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/
  3. ࠶ܝɿIn-network computing? • Endpointؒͷpath্ʹ͋ΔʢCPUҎ֎ͷʣ༷ʑͳϦιʔε΋computingʹ࢖͓͏ɺσʔλΛத৺ʹߟ͑Α͏ɺͱ͍͏࿩ • GPU (node಺GPUs, 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
  4. 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/։ൃ༰қੑʣΛ
  5. 2. Background • DNSύέοτϑΥʔϚοτ • Request/ResponseͰڞ༻ • υϝΠϯ໊: ࠷େ255ΦΫςοτ •

    ϦΫΤετλΠϓΛࢦఆ • ௥هɾ্ॻ͖ͯ͠ฦ͢ • ࠶ؼత໰͍߹Θͤ • RFC1034, RFC1035
  6. 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
  7. 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 • Ҡ২͸༰қʢΒ͍͠ʣ
  8. 4. Data Plane (1/2) • Parser: • DNSύέοτͷΈDNSϔομΛநग़ • Մม௕ͳύέοτ௕͸P4ίϯύΠϥతʹະαϙʔτ

    • ௕Ίʹ֬อͯ͠zero- fi ll • Main Action • ϔομ͔ΒDNSϨεϙϯε౳͕ඞཁ͔൑அ • Cacheʹ͋Ε͹ϔΞϐϯ • Deparser • ύέοτ࠶ߏஙͯ͠์ग़ C-plane
  9. 4. Data Plane (2/2) • Limitation and Challenge • Parser/Actionͷ؆ུԽɿίϯύΠϧ࣌ؒͱFPGAϦιʔεͱͷτϨʔυΦϑ

    • ϒʔϧϩδοΫʢਅཧ஋දʁʣΛ࢖Θͳ͍ • DNS໊ࣗମ͕FPGAͰѻ͍ʹ͍͘ʢCݴޠͷforͰѻ͍΍͍͢ʣ • Ҡ২ੑΛ٘ਜ਼ʹͯ͠externΛ࢖ͬͨ
  10. 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͕”਌੾ʹ΋”ղౚͯ͘͠Εͨɻղౚ๷ࢭύονΛ౰ͯͨɻ
  11. 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
  12. 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
  13. 7. Discussion • P4 -> NetFPGA3Ͱ͸Մม௕ϑΟʔϧυΛαϙʔτ͍ͯ͠ͳ͍ • ΑΓγϯϓϧͳΒ΋ͬͱෳࡶͳ͜ͱ΋Ͱ͖ͦ͏͕ͩɺɺʁ • CݴޠελΠϧʹґଘ͗͢͠ʂʢnullऴ୺จࣈྻܗࣜͳͲʣ

    • extern (֎෦ϑΝΠϧґଘʹϥΠϒϥϦ)ʹڧ͘ґଘɻP4͚ͩͰ͸ॻ͚ͳ͍ɺɺ • Control plane͸஗͍ • D-planeͰͷγϯϓϧͳϨεϙϯεΛฦ͢͜ͱҎ֎͸஗͍఺ʹ஫ҙ • TCP-based DNS͸αϙʔτͰ͖ͳ͍
  14. 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)ͳͲ͸͏·͘౷߹͍͖͍ͤͯͨ͞
  15. 9. Conclusion • P4DNS • hostͷۙ͘Ͱॲཧɾฦ౴͢Δ͜ͱͰੑೳ (latency, throughput) ͷେ෯վળ •

    = in-network computing! • NSDൺͰ52ഒɺEmuൺͰ10ഒ • εΠον಺ͰNW/caching/Appͷػೳ͕ಈ࡞ͤ͞Δ͜ͱ͕Ͱ͖ͨ • Parser͸ʢlogic areaతͳʣϦιʔεΛ৯͏ͷͰ޻෉͕ඞཁ • state؅ཧ͕HWઃܭΛ੍ݶ͍ͯ͠ΔʢͷͰɺC-planeͱͯ͠֎ʹग़ͨ͠ʣ • ߋʹεέʔϧͤ͞Δʹ͸޻෉͸ඞཁ
  16. EoP