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

XDP as a Building Block of the Advanced L4 Load Balancers

XDP as a Building Block of the Advanced L4 Load Balancers

2019/11/27に開催されたInternet Week 2019での登壇資料です

LINE Developers
PRO

November 27, 2019
Tweet

More Decks by LINE Developers

Other Decks in Technology

Transcript

  1. 9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE
    --PBE#BMBODFST
    :VUBSP )BZBLBXB
    -*/&$PSQPSBUJPO
    ZVUBSPIBZBLBXB BUMJOFDPSQDPN
    *OUFSOFU8FFL4PGUXBSF3PVUFSBOE4XJUDI#P'


    View Slide

  2. :VUBSP )BZBLBXB
    • 5XJUUFS!:VUBSP)BZBLBXB
    • +PJOFEUPUIF-*/&BTBOFXHSBEVBUFJOUIJTZFBS
    • "TB-*/&EFWFMPQFS
    • /FUXPSLEFWFMPQNFOUUFBN
    • %FWFMPQFS0QFSBUPSPGUIFJOUFSOBM-#BB4
    • "TBOJOEJWJEVBMEFWFMPQFS
    • F#1' FOUIVTJBTU -PWF-JOVYLFSOFMOFUXPSLJOH
    • 1PSUUIFF#1' UPUIF'SFF#4%LFSOFM (4P$

    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  3. "HFOEB
    • 9%1-PBE#BMBODFS
    • 0WFSWJFXPG9%1BOE-*/&MPBECBMBODFS
    • 3FDFOUVQEBUFTGPS-*/&MPBECBMBODFS
    • /FXHFOFSBUJPOMPBECBMBODFSTBOE9%1
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  4. 9%1JO-*/&
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB
    - -
    - -
    - -
    - ./
    - ./
    - -
    - -
    - -
    - -
    .7B 7B
    .7B 7B
    .7B 7B
    .7B 7B
    .7B 7B
    .7B 7B
    0 1 : 73 7B67 7267 63 8 3B7
    7 9 77B 9 :3 B 7 B 9 3 433
    0 1 : 67 :3B7 7 7 B
    !

    View Slide

  5. 9%1 F9QSFTT %BUB1BUI


    - D /D
    C AAC
    -






    DD :

    -
    - -
    int xdp_program(struct xdp_md *ctx) {
    uint8_t *head = (uint8_t *)(long)(ctx->data);
    uint8_t *tail = (uint8_t *)(long)(ctx->data_end);
    struct eth *eth = (struct eth *)head;
    if (eth->type != htons(ETH_P_IP)) {
    return XDP_DROP;
    }
    return XDP_PASS;
    }
    A D - D 4 6 C D 6 D
    , DA D D CD D: A D
    A
    - CC D D: A D CD
    / 6 4 D D: CC 6
    . 6 D D D: C CA
    C
    -: C
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  6. .BQT)FMQFSGVODUJPOT
    • .BQ,74UIBUDBOCFTIBSFECFUXFFOVTFS
    F#1' PSF#1'F#1'
    • "SSBZ.BQ )BTI.BQ 5SJF .BQ FUD
    • 6TFSTEPO`UIBWFUPDBSFBCPVUUIFMPDL
    • 7FSZMPXPWFSIFBE XIFOUIFZBSFVTFEGSPNF#1'

    • )FMQFSGVODUJPOT,FSOFMGVODUJPOTXIJDIDBOCF
    DBMMFEGSPNF#1' QSPHSBN
    • .BOJQVMBUFUIFNBQ
    • (FUUJNFTUBNQ
    • FUD FUD FUD
    )
    ( ( )2
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  7. 0VS--#%BUB1MBOF
    )
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB
    .AI E: " EA . " 1 L I E A : I M E M B : E
    4.2 6P 4ND IA D E 2 M B 4NI DI IA E E D D E A E 24 P ) )
    0(0,
    4 L
    4 L
    4 L
    3
    , B E
    , B E ,
    , B E
    2 , B E 6
    3 3
    3
    3
    ) (

    View Slide

  8. View Slide

  9. 4UBUFMFTTJT/PU(SBDFGVM

    • $BOOPUEPHSBDFGVMTIVUEPXO
    • %JGGJDVMUUPGBJMPWFS
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  10. 4FTTJPO$BDIJOH 4UBUFGVMBQQSPBDI

    1 3
    1 3
    1 3
    1 3
    1 3
    (
    (
    )
    ) ) )
    20 34 1 3
    20 34 1 3
    20 34 1 3
    20 34 1 3
    20 34 1 3
    (
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  11. 5IF1SPCMFNPG4FTTJPO$BDIJOH
    • &BTZUP%%P4 5$14:/'MPPEJOH

    • %JGGJDVMUUPEFUFSNJOFUIFUJNJOHUP
    EFMFUFUIFTFTTJPOJOGPSNBUJPO
    • &TQFDJBMMZGPS%43
    0
    1 1
    0
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  12. 0VS4PMVUJPO
    • )FBWJMZJOTQJSFECZ,BUSBO >
    • 5$14:/'MPPEJOHNJUJHBUJPO
    • .FBTVSFUIFSBUFPGUIF4:/QBDLFUT
    • 3BUFSFBDIFTUPUIFUISFTIPMEGBMMCBDL
    UPUIFTUBUFMFTTIBTIJOH
    • 4FTTJPODBDIFHBSCBHFDPSSFDUJPOXJUI
    -36)BTI.BQ
    ! / /
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB
    4 1/ 11. 1 .

    View Slide

  13. F#1' -36.BQ

    • .BQTXJUIBVUPNBUJD($CZ-36
    -FBTU3FDFOUMZ6TFE
    BMHPSJUINT
    • "VUPNBUJDBMMZEFMFUFUIFNBQFOUSZ
    XIFOUIFNFNPSZFYIBVTUFE
    • 6TFSTEPO`UIBWFUPDBSFBCPVU
    NFNPSZVTBHF
    ( ) ( ) (
    )
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  14. -36.BQJT1BJOGVMʜ

    • 5IFCFIBWJPSPGUIF($JTDPNQMJDBUFE
    • 'VMMBMHPSJUINEFTDSJQUJPO
    • IUUQTHJUIVCDPNUPSWBMETMJOVYDPNNJUBDGEB
    EEFEGFGCEJGG
    FFFBGCGGBF
    • ($NBZSVOPOQBDLFUQSPDFTTJOHQBUI
    • -BSHFQFSGPSNBODFQFOBMUZ
    • $BOOPUEPEZOBNJDUSBDJOH
    • -PPLVQGSPNVTFSTQBDFNBZBGGFDUUPUIF($CFIBWJPS
    • %FQFOETPOUIFLFSOFMWFSTJPO'JYFEJO

    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  15. View Slide

  16. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4 4
    1 1
    1 1
    1 1
    1 1
    235 3 1 0
    4
    1 4
    4
    4 4
    4
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  17. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    0 2 0 2
    0 2 0 2
    0 2 0 2
    0 2 0 2
    34 4 2 1 0 2
    06
    4
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  18. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4 4
    0 2 0 2
    0 2 0 2
    0 2 0 2
    0 2 0 2
    347 4 2 1
    4
    0 2
    4
    0
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  19. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4
    0 2 0 2
    0 2 0 2
    0 2 0 2
    0 2 0 2
    34 4 2 1
    4 4
    0 2
    4 4
    !
    !
    0
    4 4
    4
    4
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  20. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4 4
    0 2 0 2
    0 2 0 2
    0 2 0 2
    0 2 0 2
    34 4 2 1
    4
    0 2
    4
    0
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  21. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4
    1 1
    1 1
    1 1
    1 1
    23 3 1 0 1 4
    4 ! 4
    4 ! 4
    4
    4
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  22. :FU"OPUIFS"QQSPBDIGPS'BJMPWFS
    4
    1 1
    1 1
    1 1
    1 1
    23 3 1 0 1 4
    4 4
    4 4
    4
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  23. 'BJME 'BTUMZ

    • 6TFDPNNPEJUZ-TXJUDIXJUI&$.1
    • &ODPEFUIFIBTIIJTUPSZPO."$
    BEESFTT
    • $POUSPMMFSPOUIFSPVUFSNBOJQVMBUFTUIF
    "31UBCMF
    • 0OMZXPSLTPOTJOHMFTFHNFOU-
    OFUXPSL
    2 8 1 / . 1
    -1 2
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  24. (-#%JSFDUPS (JUIVC

    • %1%,CBTFEEBUBQMBOF (-#%JSFDUPS

    • &ODPEFUIFIBTIIJTUPSZPOTQFDJBM
    IFBEFSPWFS(6& (FOFSJD6%1
    &ODBQTVMBUJPO
    4QFDJBMIFBEFS
    • JQUBCMFTCBTFEIPTUBHFOU (-#3FEJSFDU

    • $BOCFVTFEXJUINVMUJQMFOFUXPSL
    TFHNFOUT
    . 2 - 2 / -/
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  25. 3FDFOU&GGPSUUP.BLF(-#MJLF)PTU4JEF.PEVMFCZ9%1PS5$

    [email protected]@[email protected]$1TPDLFUT
    [email protected]@[email protected](FOFSBUFTZODPPLJF
    [email protected]@[email protected]$IFDLTZODPPLJF WBMJEJUZ
    • $BOCFVTFEGSPN9%1PS5$DMBTTJGJFS
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide

  26. 4VNNBSZ

    • 9%1JTBHSFBUGSBNFXPSLUPNBLFBMPBECBMBODFSEBUBQMBOFT
    • -PBECBMBODFSTXJUIBOBEWBODFEGBJMPWFSGFBUVSFT
    MJLF(-#PS'BJME BSFDPNJOH
    • 3FDFOU-JOVYDPNNVOJUZJTXPSLJOHGPSNBLJOH9%15$BTBQBSUPG
    TVDI-#T
    9%1BTB#VJMEJOH#MPDLPGUIF"EWBODFE--PBE#BMBODFSTc:VUBSP )BZBLBXB

    View Slide