Slide 1

Slide 1 text

۝भେֶɾϖύϘݚڀॴڞಉݚڀɿϝʔϧج൫ͷ҆ఆੑ޲্ͱϦιʔε؅ཧͷ࠶ઃܭ দຊ ྄հ*, খా ஌ԝ*, ּݪ ٛߊ**, ౢ٢ ོ෉**, Ԭଜ ߞೋ** *Pepabo R&D Institute, GMO Pepabo, Inc. / **۝भେֶ ৘ใج൫ݚڀ։ൃηϯλʔ 2017.12.7 CKP-QGPOPݚڀձ ਫ਼៛ʹղੳՄೳͳ ߃ৗੑͷ͋Δϝʔϧج൫ͷઃܭ

Slide 2

Slide 2 text

1. എܠͱ໨త 2. ؔ࿈ݚڀ: FastContainer 3. TCPίϯςφ΁ͷԠ༻ͱϝʔϧج൫ 4. ·ͱΊ 2 ໨࣍

Slide 3

Slide 3 text

1. എܠͱ໨త

Slide 4

Slide 4 text

• ࠓ΋ͳ͓ݱ໾ͷϝʔϧૹड৴γεςϜ • ୯Ұͷαʔόʹෳ਺ͷΞΧ΢ϯτΛಉډͤ͞Δ͜ͱγεςϜ͕ଟ͍ • ΞΧ΢ϯτ৐ͬऔΓ΍େྔૹ৴ɺSPAMϝʔϧɺϝʔϧ஗ԆͳͲ͕՝୊ • ಛఆͷΞΧ΢ϯτͷϦιʔε઎༗͕ଞͷΞΧ΢ϯτʹӨڹΛ༩͑Δ • ͦΕΒͷ՝୊ʹ൐͏ӡ༻ɾαϙʔτίετͷ૿େ 4 എܠ

Slide 5

Slide 5 text

• ߴूੵϚϧνΞΧ΢ϯτܕͷϝʔϧૹड৴γεςϜͷ҆ఆԽ • ςφϯτؒͷϦιʔεڝ߹Λগͳ҆͘͠ఆͨ͠ϝʔϧγεςϜΛ࣮ݱ • ੩తͳྲྀྔ੍ݶͰ͸ͳ͘దԠతͳྲྀྔɾϦιʔε੍ݶʹΑΓշదͳ؀ڥΛ࣮ݱ • େྔૹ৴࣌͸ݕ஌ͱͱ΋ʹΦʔτεέʔϦϯάʹΑΔϦιʔε૿ڧ • ֤ίϯϙʔωϯτͰηογϣϯσʔλΛอଘ͠ղੳʹ׆༻ • ྲྀྔ੍ݶɺҟৗݕ஌ɺෆਖ਼ݕ஌ɺΦʔτεέʔϦϯάɺػցֶशͳͲʹ׆༻ 5 ໨త

Slide 6

Slide 6 text

• ߃ৗੑͷ͋Δਫ਼៛ʹղੳՄೳͳϝʔϧج൫ʹؔ͢Δݚڀ։ൃ • NIIΫϥ΢υ࣮ূ࣮ݧʹ͓͚Δ৽͍͠ίϯςφج൫ͷల։ͱݕূ • Ԡ༻ͱͯ͠৽͍͠ϝʔϧج൫ͷઃܭ ← ࠓ೔ͷൃද • ৽͍͠ίϯςφج൫ = FastContainerΞʔΩςΫνϟʹج࣮ͮ͘૷ 6 ۝भେֶ ৘ใج൫ݚڀ։ൃηϯλʔͱڞಉݚڀ

Slide 7

Slide 7 text

2. ؔ࿈ݚڀ: FastContainer

Slide 8

Slide 8 text

FastContainer※1 ʹ͍ͭͯ ※1. দຊ྄հ, ۙ౻ Ӊஐ࿕, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, FastContainer: WebΞϓϦέʔγϣϯίϯςφͷىಈΛϦΞΫςΟϒʹܾఆ͢Δίϯςφ؅ཧΞʔ ΩςΫνϟ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, Vol.14, pp.1-8, 2017೥6݄.

Slide 9

Slide 9 text

• ಥൃతͳΞΫηε͚࣌ͩεέʔϧ͢Δͷ͸ͳͥ೉͍͠ͷ͔ʁ • γεςϜ͕ෆมੑΛ࣋ͭͱมԽ΁͸େ͖ͳίετ͕൐͏ • γεςϜͷߏ੒ཁૉ΋ෆมੑΛ࣋ͪঢ়ଶมԽͷίετ͕ߴ͍ • ෆมੑΛҡ࣋͢Δ͜ͱ͕γεςϜ؅ཧͷ໨తͰ͋Δ • ૝ఆͷൣғ಺Ͱ඼࣭Λ࠷େԽ͢Δ͜ͱΛ໨తͱ͍ͯ͠Δ • ૝ఆͰ͖ͳ͍ΞΫηεूத΍໰୊͕ଟൃ͢Δ࣌୅ʹ͸ෆ޲͖ 9 ෆมੑΛ൐͏γεςϜͷ՝୊

Slide 10

Slide 10 text

1. Πϯελϯε௥Ճॲཧ͕௿଎Ͱ͋Δ͜ͱ 2. ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰ͷ௿͞ 3. εέʔϦϯά͢΂͖ঢ়گݕ஌ͷϦΞϧλΠϜੑͷ௿͞ 4. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάॲཧͷ஗Ԇ 10 ҰൠతͳԾ૝Խج൫ͷΦʔτεέʔϧͷ՝୊

Slide 11

Slide 11 text

1. Πϯελϯε௥Ճॲཧ͕௿଎Ͱ͋Δ͜ͱ 2. ϋʔυ΢ΣΞϦιʔεͷར༻ޮ཰ͷ௿͞ 3. εέʔϦϯά͢΂͖ঢ়گݕ஌ͷϦΞϧλΠϜੑͷ௿͞ 4. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάॲཧͷ஗Ԇ 11 ҰൠతͳԾ૝Խج൫ͷΦʔτεέʔϧͷ՝୊ 1.ͱ2.ͷ՝୊ΛղܾͰ͖ΔΞʔΩςΫνϟͷఏҊ

Slide 12

Slide 12 text

• ঢ়ଶͷมԽΛߴ଎ʹߦ͑ͯ൓Ԡతʹಈ࡞Ͱ͖Δ͜ͱΛॏࢹ • γεςϜͷཁૉͷఀࢭ͔Βىಈॲཧͷޮ཰Խʹண໨ • γεςϜͷཁૉͷఀࢭঢ়ଶΛڐ༰͢ΔγεςϜ • ৗʹఀࢭͱىಈ͕॥؀Մೳͳ߃ৗੑΛ࣋ͭγεςϜΛ໨ࢦ͢ • ॥؀Մೳ = Մ༻ੑ͕ߴ͘ৗʹมԽՄೳͳج൫Λ࣮ݱͰ͖Δ 12 Մ༻ੑߴ͘มԽʹڧ͍ج൫Λઃܭ͢Δʹ͸ʁ

Slide 13

Slide 13 text

มԽ͠ଓ͚Δ͜ͱ͔ΒಘΒΕΔ҆ఆੑ 13 ϗετ" ϗετ" ϗετ" ϗετ" ϗετ" Πϯλʔωοτ ϗετ" ϗετ" ϗετ" ΍͕ͯఀࢭ ൓Ԡతʹىಈ ൓Ԡతʹ εέʔϧΞοϓ ऩ༰αʔόA ऩ༰αʔόB HTTPϦΫΤετ ൓Ԡతʹ εέʔϧΞ΢τ • ϗετͷىಈͱఀࢭΛ॥؀ • ৗʹ॥؀͠ଓ͚ΔΞʔΩςΫνϟ • มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑ • ॥؀ͷ଎౓վળΛ௥ٻ ৗʹมԽՄೳͰ͋ΔͨΊಥൃతͳΞ ΫηεूதͷΑ͏ͳมԽʹ΋଱ੑͷ ͋ΔΞʔΩςΫνϟΛ࣮ݱՄೳ

Slide 14

Slide 14 text

• ϗετͷىಈɾෳ੡ɾఀࢭɾ૿ڧॲཧͷޮ཰ԽΛॏࢹ • ֤छॲཧΛHTTPϦΫΤετ࣌ʹϦΞΫςΟϒʹ࣮ࢪ • ϗετʹ͸ίϯςφܕԾ૝ԽΛ࠾༻ͯ͠ىಈΛߴ଎ʹ࣮ݱ • ϦΫΤετʹج͍ͯϦΞΫςΟϒʹίϯςφͷঢ়ଶΛܾఆ 14 FastContainerΞʔΩςΫνϟͱ໋໊

Slide 15

Slide 15 text

HTTP FastContainerͷϑϩʔ 15 8FC1SPYZ ʢOHY@NSVCZ $.%# ʴ "1* -PDBM8FC1SPYZ OHY@NSVCZ $MJFOU ίϯςφ ίϯςφ ίϯςφ w )551ϦΫΤετͷ)PTUOBNF ΛΩʔʹɺ$.%# ߏ੒؅ཧ%# ͔Βίϯςφͷ৘ใΛऔಘ )551 4 ϦΫΤετ w ίϯςφͷ*1ͱϙʔτʹج͍ ͯίϯςφʹϓϩΩγ w ίϯςφ͕-JTUFO͍ͯ͠ͳ͍ ৔߹͸$.%#͔Βίϯςφ ৘ใΛಘͯىಈ $POUBJOFS&OHJOF IBDPOJXB

Slide 16

Slide 16 text

16 335ඵ࣌఺ͰεέʔϧΞ΢τΛ࣮ࢪ͠ɺ 340ඵ࣌఺Ͱෛՙ෼ࢄ͕։࢝͞Ε͍ͯΔɻ 5ສϦΫΤετҎ߱͸2ίϯ ςφʹεέʔϧΞ΢τ͞Εͨ ͨΊɺϨεϙϯελΠϜ͕൒ ෼ҎԼͱͳͬͯ࢒Γͷ5ສϦ ΫΤετ୹࣌ؒͰॲཧ͍ͯ͠ Δ͜ͱ͕෼͔Δɻ

Slide 17

Slide 17 text

3. TCP-FastContainer΁ͷԠ༻ͱϝʔϧج൫

Slide 18

Slide 18 text

• HTTPϕʔε͚ͩͰͳ͘TCP/UDPϕʔεͷFastContainerΛ࣮ݱͤ͞Δ • HTTPϕʔεͩͱdomainΛΩʔʹৼΓ෼͚͕Մೳ • TCP/UDPϕʔεͩͱϙʔτͱIPΞυϨεϕʔεͷৼΓ෼͚͕ඞཁ • ϓϩτίϧͷத਎ΛݟͣʹΑΓ൚༻Խͤ͞Δ 18 HTTPϕʔεͷFastContainerͷԠ༻ ※1. দຊ྄հ, ۙ౻ Ӊஐ࿕, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, FastContainer: WebΞϓϦέʔγϣϯίϯςφͷىಈΛϦΞΫςΟϒʹܾఆ͢Δίϯςφ؅ཧΞʔ ΩςΫνϟ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, Vol.14, pp.1-8, 2017೥6݄.

Slide 19

Slide 19 text

͜Ε·ͰͷHTTP-FastContainer 19 8FC1SPYZ ʢOHY@NSVCZ $.%# -PDBM8FC1SPYZ OHY@NSVCZ -74 $MJFOU ίϯςφ ίϯςφ ίϯςφ PSϙʔτΛ 8FC1SPYZ΁ྲྀ͢ )551ϦΫΤετ ͔Β)PTUOBNF ΛΩʔʹɺ$.%# ͔Βϗετ04ͷ*1 ͱίϯςφͷ*1ͱ ϙʔτΛऔಘ )551 4 ϦΫΤετ ίϯςφͷ*1ͱϙʔτʹج ͍ͯίϯςφʹϓϩΩγɻ ίϯςφͷ*1ϙʔτ͸ɺ 8FC1SPYZ͔Βϔομͱ ͯ͠෇༩͞Εͯ͘Δɻ ίϯςφ͕-JTUFO͍ͯ͠ͳ ͍৔߹͸$.%#͔Βίϯς φ৘ใΛಘͯىಈͤ͞Δɻ $POUBJOFS&OHJOF IBDPOJXB Πϯλʔωοτ ϓϥΠϕʔτ ωοτϫʔΫ

Slide 20

Slide 20 text

TCP/UDP-FastContainer 20 $.%# -PDBM5$16%11SPYZ OHY@NSVCZ -74 $MJFOU ίϯςφ ίϯςφ ίϯςφ άϩʔόϧ *1ΞυϨεϙʔτʹରԠ ͢Δ5$16%1ϓϩΩγ ͷ*1ΞυϨεϙʔτʹ 'PSXBSE άϩʔόϧ *1ΞυϨεϙʔτ ΁ϦΫΤετ 'PSXBSE͞Ε͖ͯͨύέοτΛड ৴ͨ͠αʔό*1ΞυϨεϙʔτʹ ඥͮ͘ίϯςφ৘ใΛ$.%#͔Β ಘͯɺίϯςφ͕ىಈ͍ͯͨ͠Β QSPYZɺىಈ͍ͯ͠ͳ͚Ε͹ίϯ ςφىಈ͔ͯ͠ΒQSPYZ $POUBJOFS&OHJOF IBDPOJXB Πϯλʔωοτ ϓϥΠϕʔτ ωοτϫʔΫ ϗετ04 ϙʔτϓʔϧ άϩʔόϧ*1ΞυϨ εɿϙʔτϓʔϧ

Slide 21

Slide 21 text

• Ϣʔβઐ༻ͷSMTPͱIMAP͸TCPϕʔεͷFastContainerʹΑΓىಈ • ֤ίϯϙʔωϯτ͸ΦʔτεέʔϧΞοϓ/Ξ΢τΛߦ͏ • SMTPͱIMAPͷηογϣϯ৘ใΛऩू͠ਫ਼៛ͳղੳͱ੍ޚΛ࣮ࢪ • ऩूσʔλʹج͍ͯ౷ܭతख๏΍ػցֶशʹΑΓղੳ • େྔͷϢʔβઐ༻ίϯςφ΁ͷৼΓ෼͚ͷεέʔϥϏϦςΟΛ֬อ 21 ఏҊख๏: ਫ਼៛ʹղੳՄೳͳ߃ৗੑͷ͋Δϝʔϧج൫

Slide 22

Slide 22 text

• ϝʔϧgatewayΫϥεͷίϯςφ͸ResidentContainer • εέʔϧ࣌͸ॳظίϯςφ਺͸࠷௿ҡ࣋͠ͳ͕ΒεέʔϧΞοϓorΞ΢τ • Ϣʔβͷϝʔϧૹड৴Ϋϥεͷίϯςφ͸FastContainer ※1 • શ͘ίϯςφ͕ىಈ͍ͯ͠ͳ͍ঢ়ଶ͕͋Γ͏Δํࣜ 22 FastContainerͱResidentContainer ※1. দຊ྄հ, ۙ౻ Ӊஐ࿕, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, FastContainer: WebΞϓϦέʔγϣϯίϯςφͷىಈΛϦΞΫςΟϒʹܾఆ͢Δίϯςφ؅ཧΞʔ ΩςΫνϟ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, Vol.14, pp.1-8, 2017೥6݄.

Slide 23

Slide 23 text

%PWFDPU "VTFS 1PTUpY 1NJMUFS "VTFS 1PTUpY 1NJMUFS */ 1PTUpY 1NJMUFS 065 )PNFPTUBUJD"*&.BJM4ZTUFN'MPX ֎෦.6" ֎෦.5" .BJM#PY )PNFPTUBUJD"*&.BJM4ZTUFN %PWFDPU
 -.51
 "VTFS WJSVTHX WJSVTHX 'BTU$POUBJOFS 3FTJEFOU$POUBJOFS 1PTUpY NSVCZ %PWFDPU "VTFS .BJM#PY %PWFDPU
 -.51
 "VTFS %PWFDPU "VTFS .BJM#PY %PWFDPU
 -.51
 "VTFS %PWFDPU "VTFS .BJM#PY %PWFDPU
 -.51
 "VTFS %PWFDPU NSVCZ "VTFS .BJM#PY %PWFDPU
 -.51
 "VTFS ਺ສίϯςφͷεέʔϥϏϦςΟ $.%# "1* 1PTUpY 1NJMUFS "VTFS 1PTUpY 1NJMUFS "VTFS 1PTUpY 1NJMUFS "VTFS -#

Slide 24

Slide 24 text

• Ϣʔβͱ͸1ͭͷίϯςφʹඥͮ͘ܖ໿Ϣʔβ • Ϣʔβ୯ҐͰͷྲྀྔ੍ݶͱTCPίϯςφʹΑΔΦʔτεέʔϦϯά • ૹ৴࣌ʹ੍ݶΛ௒͍͑ͯͨΒυϝΠϯ୯ҐͰΤϥʔΛฦͤΔΑ͏ʹ • Postfixࣗମͷ੍ݶͱίϯςφͷϦιʔε੍ݶΛܖ໿Ϣʔβ୯ҐͰ࣮ݱ • ϢʔβΛ·ͱΊͯGatewayͰεέʔϦϯά͢ΔΑΓཻ౓Λࡉ੍͔͘ޚͰ͖Δ 24 Ϣʔβ༻ͷSMTPίϯςφΛ࣋ͭཧ༝

Slide 25

Slide 25 text

• ηΩϡϦςΟͱͯ͠ͷ໾ׂ • ΢Οϧεήʔτ΢ΣΠΛू໿ͯ͠௨ա͢ΔΑ͏ʹ • ղੳσʔλʹج͍ͮͯήʔτ΢ΣΠͰΩϡʔΛऔΓࠐ·ͣʹ͖ͪΜͱ஄͘ 25 Postfix In/Outͷ໾ׂ

Slide 26

Slide 26 text

*."1 "VTFS *."1 "VTFS %BUB /'4 *."1 "VTFS 0@&9$-CBTFEMPDLXJUIPVUNNBQ "VUP4DBMF6Q "VUP4DBMF0VU 4.51 "VTFS 4.51 */ 4.51 */ 4.51 */ .BJMEJSJOEFYDBDIJOH 'BTU$POUBJOFS 3FTJEFOU$POUBJOFS 4.51 065 4.51 065 4.51 065 .JMUFS $.%# 
 "1* *."1 1MVHJO .JMUFS 0@&9$-CBTFEMPDLXJUIPVUNNBQ .BJMRVFVFT 0@&9$-CBTFEMPDLXJUIPVUNNBQ .BJMRVFVFT "* .BJMEJS DPOOFDUJPO ·IPSJ4ZUFN )PNFPTUBUJD"*&.BJM4ZTUFN-BZFS &.BJMCFIBWJPS*' .JMUFS

Slide 27

Slide 27 text

%PWFDPU "VTFS %PWFDPU "VTFS %BUB /'4 %PWFDPU "VTFS EPUMPDL "VUP4DBMF6Q "VUP4DBMF0VU 1PTUpY "VTFS 1PTUpY */ 1PTUpY */ 1PTUpY */ .BJMEJSJOEFYDBDIJOH 'BTU$POUBJOFS 3FTJEFOU$POUBJOFS 1PTUpY 065 1PTUpY 065 1PTUpY 065 1NJMUFS $.%#
 
 "1* %PWFDPU NSVCZ QMVHJO 1NJMUFS EPUMPDL .BJMRVFVFT EPUMPDL .BJMRVFVFT "* .BJMEJS DPOOFDUJPO ·IPSJ4ZUFN )PNFPTUBUJD"*&.BJM4ZTUFN-BZFS &.BJMCFIBWJPS*' 1NJMUFS

Slide 28

Slide 28 text

• SMTP͸Pmilterʢmilterαʔόʣ※1 • SMTPαʔόϓϩηεͱ͸ಠཱͯ͠ಈ࡞ʢෳ਺ಈ࡞΋Մೳʣ • IMAP͸dovecot-mruby-pluginʢIMAP֦ுϓϥάΠϯʣ※2 • IMAPαʔόϓϩηε୯ҐͰಈ࡞ 28 ૹड৴ηογϣϯσʔλͷճऩ ˞IUUQTHJUIVCDPNNBUTVNPUPSZQNJMUFS ˞IUUQTHJUIVCDPNNBUTVNPUPSZEPWFDPUNSVCZQMVHJO

Slide 29

Slide 29 text

• େྔʢ਺ສͷن໛ʣͷυϝΠϯʹඥͮ͘relayઌίϯςφΛಈతʹܾఆ͍ͨ͠ • key͔ΒͷvalueऔಘॲཧΛΫϥΠΞϯτɾαʔό྆ํ޲͔Βఆ͍ٛͨ͠ • postfix-mrubyͷ׆༻ ※1 • relayઌ୳ࡧ࣌ͷkey͔Βͷlookup tableॲཧΛmrubyͰ৽ͨʹఆٛՄೳ • HTTPΫϥΠΞϯτͱAPIؒͷ௨৴σʔλɾϑΥʔϚοτ΋ࣗ෼ୡͰ࣮૷Մೳ 29 େྔͷLMTPίϯςφʹର͢ΔrelayͷৼΓ෼͚ ˞IUUQTHJUIVCDPNUNUNQPTUpYNSVCZ

Slide 30

Slide 30 text

• ·ͣ͸ϧʔϧϕʔεͰඞཁͰ͋Ε͹ػցֶश΍౷ܭख๏ʹΑΔ෼ੳ • ϝʔϧͷηογϣϯ਺΍τϥϑΟοΫʹ߹ΘͤͯεέʔϦϯά • ෆਖ਼ͳτϥϑΟοΫύλʔϯΛݕ஌ͨ͠ΒߜΔͳͲ • SMTPͷ౿Έ୆΍ΞΧ΢ϯτ৐ͬऔΓͷݕग़Λ࣍ͷݚڀͱͯ͠૝ఆ • ղੳ݁Ռ͔ΒηογϣϯΛڋ൱ͨ͠Γ੍ޚ͢Δॲཧ͸pmilterͱdovecot- mruby-pluginͰϓϩάϥϚϒϧʹఆٛՄೳ 30 ηογϣϯσʔλͷղੳ

Slide 31

Slide 31 text

• TCP-FastContainerʹରԠͤ͞Δͱϙʔτ͕৭ʑʹͳΔ • ϝʔϧͰ΋5225ΛIMAPʹ࢖͏ύλʔϯͳͲ • DNSͷtxtϨίʔυͰࣗಈMUAઃఆΛ͢Δͷ͕͋Δ • RFC6186 Use of SRV Records for Locating Email Submission/Access Services • SRVϨίʔυʹϙʔτͷઃఆͳͲΛॻ͍ͯMUA͕ͦΕΛݟͯ͘ΕΔ 31 ϝʔϧΫϥΠΞϯτઃఆͷࣗಈԽ

Slide 32

Slide 32 text

4. ·ͱΊ

Slide 33

Slide 33 text

• ۝भେֶ৘ใج൫ݚڀ։ൃηϯλʔͱڞಉݚڀ • ϝʔϧͷྲྀྔ੍ޚΛࡉ͔͘ߦ͑ΔΑ͏ͳج൫ͷઃܭ • ϝʔϧΠϯελϯε͕ΦʔτεέʔϦϯά • ηογϣϯ୯ҐͰىಈ͠ɺҰఆظؒىಈޙɺఀࢭ͢Δ॥؀Λ܁Γฦ͢ • ηογϣϯσʔλΛਫ਼៛ʹऩू͠ඇಉظͰղੳՄೳͳج൫ • NIIΫϥ΢υ࣮ূ࣮ݧ؀ڥʹίϯςφج൫Λల։͠ςετ༧ఆ 33 ߃ৗੑͷ͋Δਫ਼៛ʹղੳՄೳͳϝʔϧج൫