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

DNSサーバのスケールアウトと そのためのちょっとした機能追加 for NSD & Unbound

DNSサーバのスケールアウトと そのためのちょっとした機能追加 for NSD & Unbound

Avatar for Daisuke HIGASHI

Daisuke HIGASHI

December 15, 2016
Tweet

Other Decks in Technology

Transcript

  1. &$.1ߏ੒ʹΑΔαʔόෛՙ෼ࢄ ωοτϫʔΫߏ੒ ip route 8.8.8.8/32 192.0.2.1 ip route 8.8.8.8/32 192.0.2.2

    ip route 8.8.8.8/32 192.0.2.3 .1 .2 .3 .254 192.0.2.0/24 lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 eth0 eth0 eth0 ϧʔλͰ͸ɺαʔϏεz7*1z ΁ͷOFYUIPQͱͯ͠ɺෛՙ෼ࢄର ৅αʔόͷ/*$ FUI ͷ֤*1Λઃఆ αʔόͰ͸෺ཧ*' FUI ͷ΄͔ʹɺϧʔ ϓόοΫ*'MPʹαʔϏεz7*1zΞυϨε Λ෇༩ɻ̏୆ͱ΋ಉ͡*1  Λ෇༩ ͢Δ 
  2. &$.1ߏ੒ʹΑΔαʔόෛՙ෼ࢄ %/4αʔόͷઃఆ ip route 8.8.8.8/32 192.0.2.1 ip route 8.8.8.8/32 192.0.2.2

    ip route 8.8.8.8/32 192.0.2.3 .1 .2 .3 .254 192.0.2.0/24 lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 eth0 eth0 eth0 server: interface: 8.8.8.8 outgoing-interface: 192.0.2.2 6OCPVOEͷઃఆྫɻ ɾϢʔβ͔ΒΫΤϦΛड͚෇͚Δ*1͸MPͷઃఆ ɾ6OCPVOE͔ΒଞͷݖҖαʔόʹ໰͍߹ΘͤΔ*1͸֤αʔόͷFUIͷ*1Λઃఆ 
  3. ΫϥΠΞϯτൃͷ Ѽ%/4ΫΤϦ lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 ΫϥΠΞϯτ͔ΒͷѼͷ%/4ΫΤϦ ͸ɺϧʔλ

    -48 ʹΑͬͯɺ֤αʔόʹ෼ ࢄ͞ΕΔ     ip route 8.8.8.8/32 192.0.2.1 ip route 8.8.8.8/32 192.0.2.2 ip route 8.8.8.8/32 192.0.2.3 192.0.2.0/24 .1 .2 .3
  4. &$.1ߏ੒ʹΑΔϩʔυόϥϯγϯά ϧʔςΟϯάϓϩτίϧઃఆ router ospf 1 network 192.0.2.0 0.0.0.255 area 0

    default-information originate maximum-paths 16 .1 .2 .3 .254 192.0.2.0/24 lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 eth0 eth0 eth0 ࣮ࡍͷߏ੒Ͱ͸ɺϧʔλʙαʔόؒ͸ελςΟοΫϧʔςΟϯάͰ͸ͳ͘ɺ 041'΍#(1ͳͲͷϧʔςΟϯάϓϩτίϧΛઃఆ͢Δ͜ͱ͕ଟ͍ αʔόଆ͸RVBHHB΍#*3%౳ͷϧʔςΟϯάϓϩτίϧ࣮૷͕ར༻Մೳ # quaggaઃఆྫ router ospf router-id 192.0.2.3 network 192.0.2.0 0.0.0.255 area 0 network 8.8.8.8 ɹ0.0.0.0 area 0 
  5. ϧʔςΟϯάϓϩτίϧ ߏ੒࣌ͷࣗಈϑΣΠϧΦʔόʔ router ospf .. .1 .2 .3 .254 192.0.2.0/24

    lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 eth0 eth0 eth0 ෛՙ෼ࢄઌͷαʔόނো࣌͸ɺϧʔςΟϯάϓϩτίϧʹΑͬͯࣗಈత ʹ&$.1ϧʔλ͸ނোαʔόʹࣗಈతʹτϥϑΟοΫΛৼΒͳ͘ͳΔ ʢࣗಈϑΣΠϧΦʔόʔʣ # quagga router ospf # quagga router ospf # quagga router ospf 
  6. &$.1ʹΑΔ αʔόෛՙ෼ࢄͷར఺ w ߴίετͳ-#ઐ༻૷ஔΛলུͰ͖Δ w &$.1͸Ұൠతͳ-48ϧʔλͰར༻Մೳ w &$.1͸ɺ΋ͱ΋ͱTSDETUͷؒʹෳ਺ͷ౳͍͠ίετͷύε &RVBM$PTU.VMUJ1BUI ͕ଘࡏͨ࣌͠ʹɺύεؒͰτϥϑΟο

    ΫΛ෼ࢄ͢ΔͨΊͷػߏͰɺϧʔςΟϯάͷੈքͰ͸Ұൠత w ϩʔυόϥϯεػߏࣗମ͕ϘτϧωοΫʹͳΒͳ͍ w ϩʔΤϯυͷ૷ஔΛআ͘ͱɺ௨ৗͷ-48ͳΒɺ΄΅ϫΠϠʔ Ϩʔτͷసૹੑೳ͕ग़Δʢ౰વ&$.1Ͱ΋ʣ 
  7. 1BUI.56%JTDPWFSZͷಈ࡞ ௨ৗͷߏ੒ .56  .56 .56 .56  ᶃαʔό͕όΠτ ௒͑Δύέοτૹ৴

    ᶄ్தͷϧʔλ͕.56όΠτͷ ͕۠ؒ͋Δ͜ͱΛαʔόʹ௨஌ *$.1 1BDLFU5PP#JH ᶅαʔό͸σʔλΛύέοτ όΠτҎԼʹ෼ׂͯ͠ૹ ৴ ࣌ؒ ࣌ؒ  &UIFSOFU &UIFSOFU &UIFSOFU *1PWFS*1 UVOOFM
  8. 1.56% &$.1ͷαʔόෛՙ෼ࢄ࣌ͷ໰୊ .56  .56 .56 .56  ᶃαʔό͕όΠτ௒ͷύέοτΛΫ ϥΠΞϯτ΁ૹ৴

    TSD  %'ͷ৔߹ lo0 8.8.8.8/32 lo0 8.8.8.8/32 lo0 8.8.8.8/32 ᶄϧʔλ͸΁*$.11BDLFU 5PP#JHΛฦૹ͢Δ͕ɺ&$.1-#ͷͨΊ ݩͷαʔόʹಧ͘ͱ͸ݶΒͳ͍ αʔό͸్தܦ࿏ʹ.56͕খ͍͕۠ؒ͋͞Δ͜ͱ͕ೝࣝͰ͖ͣɺେ͖ͳύέοτ Λૹ৴͠ଓ͚Δ͕ɺΫϥΠΞϯτʹ͸ಧ͔ͳ͍ɻ 
  9. %/4ʹ͓͚Δ &$.11.56%໰୊ରࡦ6%1ฤ w 6%1͸ɺૹ৴ύέοτ͕1.56%ͷର৅ʹͳΒͳ͍ાஔΛ ͍ͯ͠Δ%/4࣮૷͕ଟ͍ w *1W6%1ύέοτ͸ɺ%' EPO`UGSBHNFOU Ͱૹ৴ɻখ͍͞.56ͷ۠ ͕ؒ͋Ε͹ܦ࿏్தͷϧʔλͰϑϥάϝϯτԽ͞Εͯసૹ͞ΕΔ

    w *1W6%1ύέοτ͸ɺૹ৴࣌ʹόΠτ *1WϦϯΫͰٛ຿෇͚ΒΕ͍ͯΔ ࠷খͷ.56 ҎԼʹͳΔΑ͏ϑϥάϝϯτԽͯ͠ૹ৴ w ͭ·Γɺ6%1ʹؔͯ͠͸1.56%ରࡦෆཁͳ%/4࣮૷͕ଟ ͍  w #*/% 6OCPVOE /4%Ͱ্هಈ࡞͸֬ೝࡁΈɺ,OPU%/4͸ JTTVFʹύονఏग़ͯ͠આಘத 1.56%ͱ6%1ΞϓϦέʔγϣϯ͸૬ੑ͕ѱ ͍͜ͱ͕஌ΒΕ͍ͯΔͨΊʢ&$.1ؔ܎ͳ͘ʣ
  10. %/4ʹ͓͚Δ &$.11.56%໰୊ରࡦ5$1ฤ w ΄΅͢΂ͯͷϓϥοτϑΥʔϜͰɺ5$1͸1.56%Λߦ͏ͨΊɺ 1.56%ରࡦ͕ඞཁ w 3'$Ͱ͸ɺड৴ͨ͠*$.15PPCJHΛଞͷશϊʔυʹϒϩʔ υΩϟετ͢ΔQSPYZΛಋೖ͢Δɺͱ͍͏ϫʔΫΞϥ΢ϯυ͕ࣔ͞ Ε͍ͯΔ͕ɺ΍΍໘౗ɾɾɾɾ w

    %/4PWFS5$1͸αϙʔτඞਢ͕ͩɺࠓͷͱ͜Ζ࢖༻ස౓͕গͳ͍ ͨΊগʑޮ཰͕ѱͯ͘΋؆୯ͳରࡦ͕๬·͍͠ w 5$1Λ࢖͏ͷ͸6%1Ͱ͸ӡ΂ͳ͍ϝοηʔδαΠζͷͱ͖͚ͩͳͷ Ͱ 
  11. ରࡦɿ1.56%͕ى͜Βͳ͍Α͏ʹ 5$1ύέοταΠζΛ੍ݶ͢Δ .56  .56 .56  lo0 8.8.8.8/32 lo0

    8.8.8.8/32 lo0 8.8.8.8/32 5$1ηάϝϯταΠζ 㱡όΠτ  .56  େ͖ͳύέοτΛૹ৴͢Δ͔Β1.56%͕ى͜Δɻ ͸͡Ί͔Βे෼খ͞ͳύέοτ 5$1ηάϝϯτ αΠζͰ ૹ৴͢Ε͹Α͍ ύέοτ͕খ͍ͨ͞Ίɺޮ཰͸ѱ͘8FCαʔό౳ͷ5$1த৺ͷΞϓϦέʔγϣ ϯͰ͸࢖͍ʹ͍͘ϫʔΫΞϥ΢ϯυ͕ͩɺ%/4͸ࠓͷͱ͜Ζ6%1த৺Ͱ5$1 ͸࢖༻ස౓͕ۃΊͯগͳ͍ͨΊɺଟগͷޮ཰௿Լ͸ڐ༰͞ΕΔ
  12. ૹ৴5$1ηάϝϯταΠζΛ੍ݶ͢ΔΦϓγϣϯ GPS/4%6OCPVOE w ύονॻ͍ͯఏग़ͨ͠ΒຊՈʹऔΓࠐΜͰ͘Ε·ͨ͠ɻ w /4%Ҏ߱ɺ6OCPVOEҎ߱Ͱ࢖༻Մ w 5$1αʔϏεड෇༻ιέοτ UDQ ʹɺ

    TFUTPDLPQU 5$1@."94&( Ͱ࠷େηάϝϯταΠζΛ ઃఆ server: tcp-mss: 1220 ࢖͍ํɿ ৺഑ੑͷํ͸lz ʢཧ༝͸CBDLVQTMJEFT΁ 
  13. ʮͦΕJQUBCMFT΍1'Ͱ Ͱ͖ΔΑʯ w %/4ΫϥΠΞϯτ͔Βड৴ͨ͠UDQѼͯͷ5$14:/ύέοτͷ.44Φϓγϣϯ ͷ஋͕Λ௒͍͑ͯͨ৔߹ɺ%/4αʔόͷೖΓޱͰڧ੍తʹʹॻ͖׵͑Δ ip6tables -A INPUT -p tcp

    --tcp-flags SYN SYN \ --dport 53 -m tcpmss —-mss 1220:65535 —j TCPMSS --set-mss 1220 iptables -A INPUT -p tcp --tcp-flags SYN SYN \ --dport 53 -m tcpmss —-mss 1220:65535 -j TCPMSS —-set-mss 1220  %/4αʔόʹUDQNTTΦϓγϣϯ͕ͳͯ͘΋ɺ JQUBCMFT΍1'Ͱಉ͜͡ͱ͕Ͱ͖Δ scrub in proto tcp from any to any port 53 flags S/S max-mss 1220
  14. ·ͱΊ w &$.1 Λ࢖ͬͨ%/4αʔόͷεέʔϧΞ΢τ ͸͍͍ͧ w 1BUI.56%JTDPWFSZʹ͸ཁ஫ҙʂ w 1.56%GPS6%1 w

    ΄ͱΜͲͷ%/4αʔό࣮૷Ͱ͸ɺ6%1ʹؔͯ͠1.56%͕ى͜Βͳ͍Α͏ͳાஔΛͯ͠ ͍Δ͕ɺͦ͏Ͱͳ͍࣮૷΋͋Δɻ#*/% /4% 6OCPVOE͸0,ɻ w 1.56%GPS5$1 w 6OCPVOE΍/4%Ͱ͸UDQNTT PS Ͱղܾͩʂ w JQUBCMFT΍1'Ͱ΋ɺUDQNTTͱ΄΅ಉ͜͡ͱ͕Ͱ͖Δ w UDQNTTͷ࣮૷΍ɺ6%1Ͱ1.56%͕ى͜Βͳ͍Α͏ʹTPDLFUΦϓγϣϯ Λద੾ʹઃఆ͢ΔΑ͏ɺ%/4αʔόϝʔΧʹཁ๬Λग़ͦ͏ʂɹϝʔΧ͞Μ͸ ࣮૷͍ͯͩ͘͠͞ʢ࠙ئʣ 
  15. ࢀߟจݙ w ."OESFXT l%/4BOE6%1'SBHNFOUBUJPOz ESBGUBOESFXTEOTFYU VEQGSBHNFOUBUJPO w +"CMFZ *4$ l"4PGUXBSF"QQSPBDIUP%JTUSJCVUJOH3FRVFTUTGPS%/4

    4FSWJDFVTJOH(/6;FCSB *4$#*/%BOE'SFF#4%z 64&/*9 w .#ZFSMZFUBM l$MPTF&ODPVOUFSTPGUIF*$.15ZQF,JOE /FBS .JTTFTXJUI*$.1W1BDLFU5PP#JH 15# z 3'$ w $JTDP4ZTUFNT l)PX%PFT-PBE#BMBODJOH8PSL z IUUQ XXXDJTDPDPNDFOVTTVQQPSUEPDTJQCPSEFSHBUFXBZQSPUPDPM CHQIUNM
  16. &/%

  17. ωοτϫʔΫʹ͓͚Δ &$.1ʹ͍ͭͯ ΫϥΠΞϯτ αʔό ֤ΫϥΠΞϯτ͔Βαʔό·Ͱͷؒʹ౳ίετͷෳ਺ύε &RVBM$PTU .VMUJ1BUI ͕ଘࡏ͢Δ৔߹ɺτϥϑΟοΫ͸ύεؒͰ෼ࢄ͞ΕΔɻʮ౳ί ετʯͱ͸ɺྫ͑͹041'ͳΒʮѼઌ·Ͱͷ࠷୹ܦ࿏ͷ߹ܭίετ͕ಉ ͡ʯͱ͍͏ҙຯɻ

    ͜ͷϧʔλ͔ΒݟΔͱɺαʔό·Ͱͷ౳ίετܦ࿏͸̏ͭଘࡏ͢Δɻ΄ͱΜ Ͳͷϧʔλ͸αʔόѼͷύέοτ͸͜ͷ̏ͭͷํ࿏ʹ෼ࢄͯ͠సૹ͢Δɻ DPTU DPTU DPTU DPTU DPTU DPTU 8.8.8.8 DPTU
  18. &$.1Λར༻ͨ͠αʔόѼτ ϥϑΟοΫͷ෼ࢄ ΫϥΠΞϯτ 8.8.8.8 8.8.8.8 8.8.8.8 DPTU DPTU DPTU DPTU

    DPTU DPTU ಉ͡*1ΞυϨεΛ࣋ͭෳ਺ͷϊʔυʢαʔόʣΛΫϥΠΞϯτ͔Βݟͯ౳ί ετʹ഑ஔ͢ΔͱɺϊʔυѼͷτϥϑΟοΫ͸෼ࢄ͞ΕΔ
  19. &$.1Ͱ5$1΋ഁ୼ͳ͘ෛՙ෼ࢄ͞ΕΔཧ༝ &$.1ύεબ୒ΞϧΰϦζϜͷྫ w ΄΅શͯͷϧʔλ͸ɺ&$.1͕ଘࡏ͢Δ৔߹ύέοτͷ <TSD*1 ETU*1 TSD1PSU ETU1PSU>͔Βܭࢉͨ͠஋Ͱɺ OFYUIPQ ग़ྗϙʔτ

    Λબ୒͢Δ w OFYUIPQબ୒ํ๏ͷྫ w OFYUIPQ൪߸ TSD*1 ETU*1 TSD1PSU ETU1PSU  OFYUIPQ਺ w TSD1PSU ETU1PSUΛܭࢉͷର৅ʹೖΕͳ͍ઃఆ΋Մೳͳϧʔλ΋͋ Δɻ
  20. &$.1ʹΑΔෛՙ෼ࢄର৅ αʔόͷબ୒ྫ lo0 8.8.8.8:53 lo0 8.8.8.8:53 lo0 8.8.8.8:53  

           ൪໨ͷOFYUIPQΛબ୒      ൪໨ͷOFYUIPQ      ൪໨ͷOFYUIPQ w ୯Ұͷ5$1ίωΫγϣϯ಺Ͱ͸ɺ։࢝ύέοτ͔Βऴྃύέοτ·Ͱ<TSD*1 ETU*1  TSD1PSU ETU1PSU>͸ݻఆ͞ΕΔͨΊɺৗʹಉ͡OFYUIPQ αʔό ʹૹ৴͞ΕΔɻͭ ·Γ5$1௨৴΋໰୊ͳ͘੒ཱ͢Δɻ
  21. ن্֨ͷ࠷খͷ.56Λݩʹ ߟ͑Δͱ w *1WͰ͸ɺ࠷খͷ.56͸όΠτɻͭ·Γ࠷খͷ5$1.44 ͸  *1Wϔομ  5$1ϔομ όΠτɻ

    w τϥϑΟοΫ͕*1WͷΈͷ৔߹͸ɺ͜ͷ஋Λઃఆ͢Ε͹Α͍ ͜ͱʹͳΔ w *1WͰ͸ɺ࠷খͷ.56͸όΠτɻͭ·Γ࠷খͷ5$1 .44͸   *1Wϔομ  5$1ϔομ όΠτ w *1WͷΈɺ·ͨ͸*1W*1WσϡΞϧελοΫͷ৔߹ɺWͱW ͷ.44ͷ͏ͪখ͍͞΄͏ɺͭ·ΓΛ࠾༻͢Δ͜ͱʹͳΔ ͕ɺ͜Ε͸খ͗ͯ͢͞ޮ཰͕ѱ͗͢Δ
  22. ݱ࣮ʹ͸ w όΠτͱ͍͏ۃ୺ʹখ͞ͳ.56ͷϦϯΫ͸ʢҙਤతʹ࡞Β ͳ͍ݶΓ͸ʣݱ࣮ͷΠϯλʔωοτ্ʹ͸ଘࡏ͠ͳ͍ͱࢥΘΕ Δɻ w ΄ͱΜͲͷ৔߹ɺ*1Wͷ࠷খ.56  ͕*1Wͷ࠷খ.56 ͱҰக͢ΔͱΈͳͯ͠ྑ͍ͱߟ͑ΒΕΔɻ͜ͷ৔߹

    w *1W5$1.44  *1Wϔομ  5$1ϔομ  w *1W5$1.44  *1Wϔομ  5$1ϔομ  w ˠখ͍͞ํΛ࠾༻͠UDQNTTͱͳΔɻ
  23. UDQNTTઃఆ஋ͷ݁࿦ w ΄ͱΜͲͷ৔߹ɺUDQNTT  ·ͰҾ͖Լ͛Ε͹ े෼ͱߟ͑ΒΕΔ w ৺഑ੑͷਓ͸ɺUDQNTT  Λઃఆ͢Δͷ͕ྑ͍ͱ

    ߟ͑ΒΕΔ w গͳ͘ͱ΋ɺ&$.1ߏ੒ʹΑΔαʔόෛՙ෼ࢄΛߦ͍ͬͯͳ͍ঢ়گͷ σϑΥϧτઃఆͷ-JOVYαʔόͱ݁Ռ͸ಉ͡ͱͳΔ w ʹൺ΂ͯΘ͔ͣʹ஗Ԇ͕૿͑ΔՄೳੑ͸͋Δ͕ɺͦ΋ͦ΋%/4 PWFS5$1ࣗମͷස౓͕খ͍͞ͷͰ໰୊ʹͳΔ͜ͱ͸ͳ͍ɺ͸ͣ w ͳ͓αʔόʙΫϥΠΞϯτؒͷ1.56͕૝ఆͰ͖Δ؀ڥͳΒ͹ɺͦͷ஋ ·ͰҾ্͖͛Δ͜ͱ΋Մೳ