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
160
自作ロードバランサ開発 / 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
2.9k
Norikraを非リアルタイムなデータ集計に使う試み
yunazuno
1
6.6k
Other Decks in Technology
See All in Technology
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
6.3k
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
100
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
6
770
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
RSNA2024振り返り
nanachi
0
590
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
220
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
3
1.3k
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building an army of robots
kneath
303
45k
The Language of Interfaces
destraynor
156
24k
Typedesign – Prime Four
hannesfritz
40
2.5k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
A designer walks into a library…
pauljervisheath
205
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Rails Girls Zürich Keynote
gr2m
94
13k
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