Slide 1

Slide 1 text

ϩʔυόϥϯαʔͷ छྨʹԠͨ͡࢖͍෼͚ 2020/09/30 Tech Talk ͖ͨ͏Β

Slide 2

Slide 2 text

ΞδΣϯμ 2 1.ෛՙ෼ࢄͱ͸ 2.ෛՙ෼ࢄͷछྨ 3.L4ͱL7 4.ෛՙ෼ࢄํࣜͦΕͧΕͷϝϦοτσϝϦοτ 5.·ͱΊ

Slide 3

Slide 3 text

ෛՙ෼ࢄͱ͸ 3 ҰݴͰ͍͏ͳΒ͹ Մ༻ੑΛߴΊΔͨΊͷख๏

Slide 4

Slide 4 text

͜ͷੈʹෛՙ෼ࢄ͕ଘࡏ͠ͳ͔ͬͨΒ 4 - 1୆ͷαʔόʔͰؤுΒͳ͍ͱ͍͚ͳ͍ - ෳ਺୆ͷαʔόʔΛ༻ҙͨ͠ͱͯ͠΋ϦΫΤετͷ੾Γ ସ͑Ͳ͏͢Δ - ෳ਺୆ͷ͏ͪɺ1୆͕ࢮΜͩΒͦͷαʔόʔʹ͸ϦΫΤ ετΛૹΓͨ͘ͳ͍ - ෳ਺୆ͷαʔόʔΛ༻ҙͨ͠ͱͯ͠΋ɺϦΫΤετΛۉ ౳ʹࡹ͚ͳ͍ͱ̍୆͋ͨΓͷཁٻεϖοΫ͕ߴ͘ͳΔ

Slide 5

Slide 5 text

5 ݺΜͩʁ

Slide 6

Slide 6 text

ෛՙ෼ࢄํࣜͷछྨ 6 https://www.infraexpert.com/study/loadbalancer4.html

Slide 7

Slide 7 text

ෛՙ෼ࢄͷछྨ 7 - DNSϥ΢ϯυϩϏϯ - L4ϩʔυόϥϯγϯά - L7ϩʔυόϥϯγϯά

Slide 8

Slide 8 text

8 L4? L7? ʢWireSharkσϞʣ

Slide 9

Slide 9 text

9 ͰɺͲΕΛ࢖͑͹͍͍ͷʁ

Slide 10

Slide 10 text

DNSϥ΢ϯυϩϏϯ 10 υϝΠϯͷࡧҾ࣌ʹIPΞυϨεΛ ަޓʹฦ͢ͱ͍͏ํ๏ ϝϦοτɿDNSͷઃఆม͑Δ͚ͩͳͷͰ͓खܰ σϝϦοτɿ୯ମͰ͸ࢮ׆؂ࢹ͕Ͱ͖ͳ͍ɻ ɹɹɹɹɹɹηογϣϯ؅ཧͰ͖ͳ͍ɻ

Slide 11

Slide 11 text

L4ϩʔυόϥϯγϯά 11 L4ͷػೳΛ࢖ͬͨෛՙ෼ࢄΛߦ͏ɻ TCPηογϣϯ͕LBͰऴ୺͠ͳ͍ͷͰ SourceIPͱPort͕λʔήοτ·Ͱอ࣋͞ΕΔɻ DestinationIPΛॻ͖׵͑͢ΔํࣜͷNATϩʔυόϥϯαͱ L2ػೳΛ࢖ͬͨDSRํࣜͷϩʔυόϥϯα͕ଘࡏ͢Δɻ AWSͷNLB͸NATํࣜͰHyperplaneͱݺ͹ΕΔಛघͳAWSಠࣗ ͷෛՙ෼ࢄٕज़͕࠾༻͞ΕͯΔɻ

Slide 12

Slide 12 text

L4ϩʔυόϥϯγϯά 12 ϝϦοτɿLBࣗମͷIPΛݻఆͰ͖Δɻ ɹɹɹɹɹߴՄ༻ੑɺߴεϧʔϓοτɺ௿ϨΠςϯγ ɹɹɹɹɹSource IPͱPort·Ͱอ࣋͞ΕΔɻ ɹɹɹɹ ʢX-Forwarded-For͕ෆཁʣ σϝϦοτɿL7ϩʔυόϥϯαͷΑ͏ʹ ث༻ͳϧʔςΟϯά͕ઃܭͰ͖ͳ͍ɻ

Slide 13

Slide 13 text

L7ϩʔυόϥϯγϯά 13 L7ʢHTTP/HTTPSʣͷػೳΛ࢖ͬͨෛՙ෼ࢄΛߦ͏ɻ ͳΜͱ͍ͬͯ΋ߴ౓ͳϦΫΤετϧʔςΟϯά͕Ͱ͖Δɻ

Slide 14

Slide 14 text

L7ϩʔυόϥϯγϯά 14 ɾύεϕʔεϧʔςΟϯά -> example.com/game example.com/lobby ɾϗετϕʔεϧʔςΟϯά -> game.example.com lobby.example.com ɾHTTPϔομʔϕʔεϧʔςΟϯά -> UserAgent͕Safari͔Chrome͔ ɾΫΤϦจࣈྻϕʔεϧʔςΟϯά -> example.com?version=v1 example.com?version=v2 ɾϧʔςΟϯάͷॲཧʹIFจ͕ॻ͚Δ

Slide 15

Slide 15 text

L7ϩʔυόϥϯγϯά 15 ϝϦοτɿ঺հͨ͠௨Γ͍ΖΜͳϧʔςΟϯά͕Ͱ͖Δɻ σϝϦοτɿNLBͷϝϦοτͷཪฦ͠

Slide 16

Slide 16 text

16 ·ͱΊ

Slide 17

Slide 17 text

17 - ωοτϫʔΫͷཁ͕݅ߴ͍৔߹͸L4ϩʔυόϥϯαʔ΋બ୒ ࢶʹೖΔ͔΋͠Εͳ͍ɻ - ීஈ࢖͍͸΍͸ΓॊೈͳϧʔςΟϯάϙϦγʔΛѻ͑ΔL7 ϩʔυόϥϯαʔ͕࢖͍΍͍͢ɻ - ࠷৽ͷk8sߏ੒ͳͲͰ͸αʔϏεσΟεΧόϦ΍DNSϥ΢ϯυ ϩϏϯͱLBͷෳ߹ٕͰ͔͍͍ͬ͜ײ͡ʹͳ͍ͬͯΔΒ͍͠

Slide 18

Slide 18 text

18 ͝੩ௌ͋Γ͕ͱ͏ޚ࠲͍·ͨ͠