Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自作ロードバランサ開発 / JANOG40 SP6LB
Search
yunazuno
July 28, 2017
Technology
0
170
自作ロードバランサ開発 / JANOG40 SP6LB
JANOG40 ショートプログラム 「自作ロードバランサ開発」
https://www.janog.gr.jp/meeting/janog40/program/sp6lb
yunazuno
July 28, 2017
Tweet
Share
More Decks by yunazuno
See All by yunazuno
eXpress Data Path (XDP) の概要とLINEにおける利活用 / Brief summary of XDP and use-case at LINE
yunazuno
10
3.1k
Norikraを非リアルタイムなデータ集計に使う試み
yunazuno
1
6.7k
Other Decks in Technology
See All in Technology
モノレポにおけるエラー管理 ~Runbook自動生成とチームメンションの最適化
biwashi
0
360
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
6
320
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
3
1.3k
僕たちが「開発しやすさ」を求め 模索し続けたアーキテクチャ #アーキテクチャ勉強会_findy
bengo4com
0
2.6k
MySQL HeatWave:サービス概要のご紹介
oracle4engineer
PRO
3
1.6k
あとはAIに任せて人間は自由に生きる
kentaro
2
180
UDDのススメ - 拡張版 -
maguroalternative
1
620
React Server ComponentsでAPI不要の開発体験
polidog
PRO
0
340
工業高校で学習したとあるエンジニアのキャリアの話
shirayanagiryuji
0
120
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.6k
テストを実行してSorbetのsigを書こう!
sansantech
PRO
1
130
AIエージェントを現場で使う / 2025.08.07 著者陣に聞く!現場で活用するためのAIエージェント実践入門(Findyランチセッション)
smiyawaki0820
7
1.3k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Visualization
eitanlees
146
16k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
How STYLIGHT went responsive
nonsquared
100
5.7k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
The Cult of Friendly URLs
andyhume
79
6.5k
Bash Introduction
62gerente
614
210k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
ࣗ࡞ϩʔυόϥϯα։ൃ :PIFJ ,BOFNBSV -*/&$PSQPSBUJPO ZPIFJLBOFNBSV BUMJOFDPSQDPN !ZVOB[VOP
͜ΜͳιϑτΣΞ-#Λ։ൃ͍ͯ͠·͢ • -*/&ͷαʔϏεʹඞཁͳػೳΛඋ͍͑ͯΔ • ී௨ͷY-JOVYαʔό্Ͱಈ࡞͢Δ • ߴ͍εέʔϥϏϦςΟ͕͋Δ 2017-07-28 JANOG 40
Meeting 2 ৄ͍͠എܠ +"/0(ൃදࢿྉ ొஃϨϙʔτʹͯ [1] LINE (JANOG39 ) https://www.janog.gr.jp/meeting/janog39/program/line.html [2] JANOG39 LINE https://engineering.linecorp.com/ja/blog/detail/135
ϩʔυόϥϯαͷΞʔΩςΫνϟ͍Ζ͍Ζ $FOUSBMJ[FE-PBE#BMBODFST .JDSPTPGU"OBOUB 'BDFCPPLTIJW (PPHMF.BHMFW %FDFOUSBMJ[FE-PBE#BMBODFST ($1*OUFSOBM-#
$MPVEGMBSF 1P1T 2017-07-28 JANOG 40 Meeting Ωʔϫʔυ/ .VMUJ5JFS MS Ananta FB shiv Google Maglev [1] Microsoft Ananta https://doi.org/10.1145/2534169.2486026 [2] Facebook Shiv: https://www.usenix.org/conference/srecon15/program/presentation/shuff [3] Google Maglev https://research.google.com/pubs/pub44824.html 3
ߏ͔Β / .VMUJUJFSߏ 2017-07-28 JANOG 40 Meeting
4 / .VMUJUJFS Client L4 LB APP : In service : Not in service L4 LB APP L7 LB L3 Switch Client L3DSR TCP/HTTP(S) termination L3DSR ECMP ࠓճ͝հ͢Δͷ ͜ͷ෦
ஈ #(1 &$.1 1FSGMPX&$.1ʹΑΓɺ--#͓͓ΑͦۉʹτϥϑΟοΫΛࢄ 2017-07-28 JANOG 40 Meeting 5
Equal Cost Multi Path (ECMP) VIP: 192.0.2.1/32 L4LB-1 Hash(5-tuple) -> L4LB-[1-3] L3 Switch VIP: 192.0.2.1/32 L4LB-2 VIP: 192.0.2.1/32 L4LB-3 eBGP peer Flow X Flow Y
ஈ 4UBUFMFTT --# $POTJTUFOU)BTIͰࢄઌ--#Λܾఆ͠ɺ-%43Ͱύέοτసૹ 2017-07-28 JANOG 40 Meeting 6
L3 Switch L4LB-1 L7LB-1 L7LB-2 L4LB-2 L7LB-3 L7LB-4 ConsistentHash(Hash(5-tuple)) -> L7LB-[1-4] Flow X Flow Y
--# F9QSFTT %BUB 1BUI 9%1 Λ׆༻ -JOVYLFSOFMͰಈ࡞͢ΔɺF#1'Λ༻͍ͨߴύέοτॲཧج൫ 2017-07-28 JANOG
40 Meeting eBPF Map VIP-Backend table Statistics table C eBPF C code (Data Plane) Clang/LLVM eBPF Bytecode Python Management Plane eBPF JIT eBPF VM API VIP->Backend lookup Statistics Kernel User eBPF Verifier 7 BGP daemon XDP Program From L3 Switch To L7LB Kernel NIC Advertise VIP Compiler -PPLVQ7*1 )BTI UVQMF .PEJGZ*1IFBEFS Maintain map
--# ϊʔυ୯ମύϑΥʔϚϯε 2017-07-28 JANOG 40 Meeting 8 )BSEXBSFY*OUFM9FPO&W DPSFT
(%%3.FMMBOPY$POOFDU9-Y&/(C& 4PGUXBSF-JOVY,FSOFMSD EDCG #1'+*5FOBCMFE &OWJSPONFOU 19.1 15.0 10.8 5.8 2.9 2.0 0% 20% 40% 60% 80% 100% 0 4 8 12 16 20 64 128 256 512 1024 1518 Link Utilization [%] Throughput [Mpps] Frame size [byte] Throughput [Mpps] Link Utilization (/25GbE) [%] 25GbE wire-rate
࣮ࡍͷͱ͜ΖͲΜͳঢ়گ ॳͷૂ͍͓͓ΉͶୡͰ͖ͦ͏ खݩͷίʔυͱಉҰͷͷ͕࣮ωοτϫʔΫͰͦͷ··ಈ࡞͢Δ ςετ͕͍͢͠ɾಈ࡞͕ݟ͍͑͢ / ߏ͕ʹͳΔέʔε͋Δ .VMUJQBUI5$1 *1'SBHNFOU Ұ෦ͷಛघҊ݅
2017-07-28 JANOG 40 Meeting 9
ࠓޙͷల ຊ֨తʹϓϩμΫγϣϯڥͷೖΛ։࢝ ػೳՃߏͷΞοϓσʔτ %P4 %%P4ޚ εςʔτϑϧηογϣϯΩϟογϡ -36DBDIF ͷซ༻ #(1VOOVNCFSFE 3'$
%$OFUXPSLͷ-Խ ϋʔυΣΞدΓͷΞϓϩʔνΛௐࠪɾݕ౼ 9%1 F#1' IBSEXBSFPGGMPBE 1SPHSBNNBCMF"4*$ 1 2017-07-28 JANOG 40 Meeting 10