Layer 4Load BalancerNAT, IPトンネリグ, DR2014 / 10 15 内田公太
Outline• プロトコルスタックの基礎知識 • 3つのロードバランス手法
プロトコルスタックの基礎知識 TCP + IP Ethernet における送受信データの構造
TCP + IP + Ethernet スタック 
HTTP 
Request 
TCP 
Header 
IP 
Header 
HTTP 
Request 
Ethernet 
Header 
HTTP 
Request 
TCP 
Header 
HTTP 
Request 
TCP 
Header 
IP 
Header 
FCS 
HTTP 
Request 
TCP 
Header 
IP 
Header 
HTTP 
Request 
Ethernet 
Header 
HTTP 
Request 
TCP 
Header 
HTTP 
Request 
TCP 
Header 
IP 
Header 
FCS 
IP 
Header 
Ethernet 
Header 
HTTP 
Request 
TCP 
Header 
FCS 
Pre-amble 
IP 
Header 
Ethernet 
Header 
HTTP 
Request 
TCP 
Header 
FCS 
Pre-amble 
LANケーブルで伝送 
第4層 
第5-7層 
第3層 
第2層 
第1層
HTTP 
Request 
TCP 
Header 
IP 
Header 
HTTP 
Request 
802.11 
Header 
HTTP 
Request 
TCP 
Header 
HTTP 
Request 
TCP 
Header 
IP 
Header 
FCS 
HTTP 
Request 
TCP 
Header 
IP 
Header 
HTTP 
Request 
802.11 
Header 
HTTP 
Request 
TCP 
Header 
HTTP 
Request 
TCP 
Header 
IP 
Header 
FCS 
TCP + IP + WLAN スタック 
IP 
Header 
802.11 
Header 
HTTP 
Request 
TCP 
Header 
FCS 
IP 
Header 
802.11 
Header 
HTTP 
Request 
TCP 
Header 
FCS 
PCLP 
Preamble 
電波で伝送 
PCLP 
Preamble 
第4層 
第5-7層 
第3層 
第2層 
第1層
プロトコルスタック • 各層が独立 • 例えばIPデータグラムはEthernetでもWLANでも伝送されうる。 • どちらの場合も、IP層の処理は同じ。 • 各層を独立させコスト削減。 • L4LB• OSI参照モデル第4層(トランスポー。TCP/UDPなど) までの情報を使って負荷分散する装置。 • 要するに、IPアドレスとポート番号で振り分けるもの。
3つのロードバランス手法 NAT, IPトンネリグ, DR
NAT 
Network Address Translation 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
Ethernet 
Dest 12:00:34:00:00:01 
Src 06:00:50:00:28:c0 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
L4LB 
IP 
Dest 192.168.1.10 
Src 192.168.1.1 
Ethernet 
Dest 12:00:34:00:00:02 
Src 12:00:34:00:00:01 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
12:00:34:00:00:01 
192.168.1.1 
IP 
Dest 192.168.1.10 
Src 192.168.1.1 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
書き換え 
あたかもL4LBから 
HTTPリクエストが 
来たように見える 
12:00:34:00:00:02 
192.168.1.10
NAT• ○ 設定が分かりやすい • ワーカはごく普通のWebサーバでよい • × L4LBに負荷が集中 • L4LBが IN/OUT 双方のデータを扱うため
IPトンネリング 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
Ethernet 
Dest 12:00:34:00:00:01 
Src 06:00:50:00:28:c0 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
L4LB 
IP 
Dest 192.168.2.10 
Src 192.168.1.1 
Ethernet 
Dest 12:00:34:00:00:03 
Src 12:00:34:00:00:01 
12:00:34:00:00:01 
192.168.1.1 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
IPヘッダで 
包み込む 
ネットワークを超えられる 
元のパケットがそのまま届く 
IP 
IP 
Dest 192.168.2.10 
Src 192.168.1.1 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
TCP 
HTTP 
IP 
TCP 
HTTP 
Ethernet 
Dest 12:00:34:00:00:04 
Src 12:00:34:00:00:03
IPトンネリグ • ○ ネットワークを超えられる • ○ L4LBの負荷がかなり低い • OUT方向のデータがL4LB を通らないため (ワーカは送信元IPを知っており、直接返答できる) • × 設定が複雑
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
Ethernet 
Dest 12:00:34:00:00:01 
Src 06:00:50:00:28:c0 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
L4LB 
Ethernet 
Dest 12:00:34:00:00:02 
Src 12:00:34:00:00:01 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
12:00:34:00:00:01 
192.168.1.1 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
無加工で 
送る 
元のパケットがそのまま届く 
DR 
Direct Routing 
12:00:34:00:00:02 
192.168.1.1
DR• ○ L4LBの負荷が非常に低い • OUT方向のデータがL4LB を通らないため (ワーカは送信元IPを知っており、直接返答できる) • × 設定が複雑
ちょっとまて! L4LBとワーカに同じIPを 設定しても大丈夫なの?
大丈夫 ループバックアドレスとして IPアドレスを設定しておけば、 ARPを無視するから衝突しないんだ
L4LB ワーカ1 ワーカ2 
DRを使うときの 
ネットワーク構成 
ユーザ 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
12:00:34:00:00:03 
lo0 192.168.1.1
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ192.168.1.1 に対応する 
MACアドレスを教えて! 
ARPリクエスト 
ブロードキャスト
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ 
12:00:34:00:00:01 
です 
… 
… 
ARPレスポンス
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ 
了解。では 
12:00:34:00:00:01 
に送ります 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ 
ワーカ2君 
処理してね 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
了解
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ 
IP 
Dest 192.168.1.1 
Src 1.2.3.4 
TCP 
Dest 80 
Src 38000 
HTTP 
Foobar 
1.2.3.4 に 
応答を返せば 
いいんだな
L4LB 
12:00:34:00:00:01 
eth0 192.168.1.1 
12:00:34:00:00:02 
lo0 192.168.1.1 
ワーカ1 
12:00:34:00:00:03 
lo0 192.168.1.1 
ワーカ2 
ユーザ 
IP 
Dest 1.2.3.4 
Src 192.168.1.1 
TCP 
Dest 38000 
Src 80 
HTTP 
Foobar 
Foobar
まとめ • プロトコルスタックでヘダがいくつも付加される • 第4層までの情報データを振り分ける装置がL4LB• L4LB の3つの実装NAT, IPトンネリグ, DR を紹介 • DR が最もL4LB の負荷が小さくなる

More Related Content

PDF
ASAMAP Update
KEY
MAP 実装してみた
PPTX
FD.io VPP事始め
KEY
ASAMAP 開発秘話
PDF
#pakeana 14
PDF
Hydrogen → Helium での Linux kernel の違い
PDF
DNS64 (El capitan and unbound-1.5.1)
PDF
I pv6 research_basical
ASAMAP Update
MAP 実装してみた
FD.io VPP事始め
ASAMAP 開発秘話
#pakeana 14
Hydrogen → Helium での Linux kernel の違い
DNS64 (El capitan and unbound-1.5.1)
I pv6 research_basical

What's hot (19)

PDF
I pv6 のはなし
PDF
Technical report for IPv6 Routing w/ bgp4+ (part2)
PDF
Technical report for IPv6 Routing w/ bgp4+
PDF
ネットワーク講習
PDF
Lorawan for agriculture, haccp hazard analysis and critical control point
PDF
IPv4 address
PDF
第7回勉強会 ネットワークの基礎
PPTX
nftables: the Next Generation Firewall in Linux
PDF
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
PDF
SF-TAP: L7レベルネットワークトラフィック解析器
PDF
ShowNet2021 L2/L3_srv6_gu_parapara
PDF
TLS 1.3 と 0-RTT のこわ〜い話
PDF
BGP Unnumbered で遊んでみた
PDF
raspi + soracom #pakeana33
PDF
マルチコアとネットワークスタックの高速化技法
PPTX
TLS & LURK @ IETF 95
PDF
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
PDF
Trema day 1
I pv6 のはなし
Technical report for IPv6 Routing w/ bgp4+ (part2)
Technical report for IPv6 Routing w/ bgp4+
ネットワーク講習
Lorawan for agriculture, haccp hazard analysis and critical control point
IPv4 address
第7回勉強会 ネットワークの基礎
nftables: the Next Generation Firewall in Linux
SF-TAP: 柔軟で規模追従可能なトラフィック解析基盤の設計
SF-TAP: L7レベルネットワークトラフィック解析器
ShowNet2021 L2/L3_srv6_gu_parapara
TLS 1.3 と 0-RTT のこわ〜い話
BGP Unnumbered で遊んでみた
raspi + soracom #pakeana33
マルチコアとネットワークスタックの高速化技法
TLS & LURK @ IETF 95
Lagopusで試すL3ルーティング + α (Lagopusの設定方法いろいろ)
Trema day 1
Ad

Viewers also liked (16)

PPTX
冗長構成で定価100万以下バラクーダ ロードバランサー
PDF
2016 0210 iotlt勉強会資料
PPTX
LANケーブル工作実習
PPTX
セキュリティ部、始動!
PDF
私はこの本でネットワークを学んだ
PDF
国際会議 IEEE Computational Intelligence for Financial Engineering & Economics (C...
PDF
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
PPTX
IEEE Conference - Industrial Ethernet
PDF
[Tokyo NodeFest 2015] Hardware Hacking for Javascript Developers
PDF
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介
PDF
EthernetやCPUなどの話
PDF
ロードバランスへの長い道
PDF
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
PPTX
インターネッツの繋がるしくみ(物理層編) #sa_study
PDF
【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)
PDF
Ethernetの受信処理
冗長構成で定価100万以下バラクーダ ロードバランサー
2016 0210 iotlt勉強会資料
LANケーブル工作実習
セキュリティ部、始動!
私はこの本でネットワークを学んだ
国際会議 IEEE Computational Intelligence for Financial Engineering & Economics (C...
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
IEEE Conference - Industrial Ethernet
[Tokyo NodeFest 2015] Hardware Hacking for Javascript Developers
【Interop Tokyo 2015】 IoT 01: 産業用イーサネット スイッチ Cisco IE 4000 シリーズのご紹介
EthernetやCPUなどの話
ロードバランスへの長い道
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
インターネッツの繋がるしくみ(物理層編) #sa_study
【Interop Tokyo 2016】 Cisco IoT (展示内容紹介)
Ethernetの受信処理
Ad

Similar to Layer 4 Load Balancer (NAT, IP Tunnelling, DR) (17)

PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
PPT
20060520.tcp
PPT
Tremaで構築!中小企業の社内LAN #Tremaday 120419
PDF
Janogia20120921 yoshinotakeshi
PDF
20120525 mt websocket
PPTX
ゲームの通信をつくる仕事はどうなるのだろう?
PDF
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
PDF
YAPC::Asia2014 - O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門
PDF
WebRTCの技術解説 第二版 公開版 本編
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第10回授業-Web公開用
PDF
10分で作るクラスライブラリ
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
PDF
Wakame-vdc 開発苦労談
PDF
Webサーバのかくれんぼ
PPTX
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
PDF
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
PDF
ストリーミングCDN2002
法政大学情報科学部 2012年度コンピュータネットワーク-第8回授業-Web公開用
20060520.tcp
Tremaで構築!中小企業の社内LAN #Tremaday 120419
Janogia20120921 yoshinotakeshi
20120525 mt websocket
ゲームの通信をつくる仕事はどうなるのだろう?
ネットワークの負荷分散を手軽に - OSC2015 Hokkaido
YAPC::Asia2014 - O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門
WebRTCの技術解説 第二版 公開版 本編
法政大学情報科学部 2012年度コンピュータネットワーク-第10回授業-Web公開用
10分で作るクラスライブラリ
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
Wakame-vdc 開発苦労談
Webサーバのかくれんぼ
iPhone 5 の Wi-Fi ちゃんと動いてましたか? #yidev
法政大学情報科学部 2012年度コンピュータネットワーク-第12回授業-Web公開用
ストリーミングCDN2002

Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

  • 1. Layer 4Load BalancerNAT, IPトンネリグ, DR2014 / 10 15 内田公太
  • 3. プロトコルスタックの基礎知識 TCP + IP Ethernet における送受信データの構造
  • 4. TCP + IP + Ethernet スタック HTTP Request TCP Header IP Header HTTP Request Ethernet Header HTTP Request TCP Header HTTP Request TCP Header IP Header FCS HTTP Request TCP Header IP Header HTTP Request Ethernet Header HTTP Request TCP Header HTTP Request TCP Header IP Header FCS IP Header Ethernet Header HTTP Request TCP Header FCS Pre-amble IP Header Ethernet Header HTTP Request TCP Header FCS Pre-amble LANケーブルで伝送 第4層 第5-7層 第3層 第2層 第1層
  • 5. HTTP Request TCP Header IP Header HTTP Request 802.11 Header HTTP Request TCP Header HTTP Request TCP Header IP Header FCS HTTP Request TCP Header IP Header HTTP Request 802.11 Header HTTP Request TCP Header HTTP Request TCP Header IP Header FCS TCP + IP + WLAN スタック IP Header 802.11 Header HTTP Request TCP Header FCS IP Header 802.11 Header HTTP Request TCP Header FCS PCLP Preamble 電波で伝送 PCLP Preamble 第4層 第5-7層 第3層 第2層 第1層
  • 6. プロトコルスタック • 各層が独立 • 例えばIPデータグラムはEthernetでもWLANでも伝送されうる。 • どちらの場合も、IP層の処理は同じ。 • 各層を独立させコスト削減。 • L4LB• OSI参照モデル第4層(トランスポー。TCP/UDPなど) までの情報を使って負荷分散する装置。 • 要するに、IPアドレスとポート番号で振り分けるもの。
  • 8. NAT Network Address Translation IP Dest 192.168.1.1 Src 1.2.3.4 Ethernet Dest 12:00:34:00:00:01 Src 06:00:50:00:28:c0 TCP Dest 80 Src 38000 HTTP Foobar L4LB IP Dest 192.168.1.10 Src 192.168.1.1 Ethernet Dest 12:00:34:00:00:02 Src 12:00:34:00:00:01 TCP Dest 80 Src 38000 HTTP Foobar 12:00:34:00:00:01 192.168.1.1 IP Dest 192.168.1.10 Src 192.168.1.1 IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar TCP Dest 80 Src 38000 HTTP Foobar 書き換え あたかもL4LBから HTTPリクエストが 来たように見える 12:00:34:00:00:02 192.168.1.10
  • 9. NAT• ○ 設定が分かりやすい • ワーカはごく普通のWebサーバでよい • × L4LBに負荷が集中 • L4LBが IN/OUT 双方のデータを扱うため
  • 10. IPトンネリング IP Dest 192.168.1.1 Src 1.2.3.4 Ethernet Dest 12:00:34:00:00:01 Src 06:00:50:00:28:c0 TCP Dest 80 Src 38000 HTTP Foobar L4LB IP Dest 192.168.2.10 Src 192.168.1.1 Ethernet Dest 12:00:34:00:00:03 Src 12:00:34:00:00:01 12:00:34:00:00:01 192.168.1.1 IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar IPヘッダで 包み込む ネットワークを超えられる 元のパケットがそのまま届く IP IP Dest 192.168.2.10 Src 192.168.1.1 IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar TCP HTTP IP TCP HTTP Ethernet Dest 12:00:34:00:00:04 Src 12:00:34:00:00:03
  • 11. IPトンネリグ • ○ ネットワークを超えられる • ○ L4LBの負荷がかなり低い • OUT方向のデータがL4LB を通らないため (ワーカは送信元IPを知っており、直接返答できる) • × 設定が複雑
  • 12. IP Dest 192.168.1.1 Src 1.2.3.4 Ethernet Dest 12:00:34:00:00:01 Src 06:00:50:00:28:c0 TCP Dest 80 Src 38000 HTTP Foobar L4LB Ethernet Dest 12:00:34:00:00:02 Src 12:00:34:00:00:01 TCP Dest 80 Src 38000 HTTP Foobar 12:00:34:00:00:01 192.168.1.1 IP Dest 192.168.1.1 Src 1.2.3.4 IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar 無加工で 送る 元のパケットがそのまま届く DR Direct Routing 12:00:34:00:00:02 192.168.1.1
  • 13. DR• ○ L4LBの負荷が非常に低い • OUT方向のデータがL4LB を通らないため (ワーカは送信元IPを知っており、直接返答できる) • × 設定が複雑
  • 16. L4LB ワーカ1 ワーカ2 DRを使うときの ネットワーク構成 ユーザ 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 12:00:34:00:00:03 lo0 192.168.1.1
  • 17. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ192.168.1.1 に対応する MACアドレスを教えて! ARPリクエスト ブロードキャスト
  • 18. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ 12:00:34:00:00:01 です … … ARPレスポンス
  • 19. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ 了解。では 12:00:34:00:00:01 に送ります IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar
  • 20. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ ワーカ2君 処理してね IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar 了解
  • 21. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ IP Dest 192.168.1.1 Src 1.2.3.4 TCP Dest 80 Src 38000 HTTP Foobar 1.2.3.4 に 応答を返せば いいんだな
  • 22. L4LB 12:00:34:00:00:01 eth0 192.168.1.1 12:00:34:00:00:02 lo0 192.168.1.1 ワーカ1 12:00:34:00:00:03 lo0 192.168.1.1 ワーカ2 ユーザ IP Dest 1.2.3.4 Src 192.168.1.1 TCP Dest 38000 Src 80 HTTP Foobar Foobar
  • 23. まとめ • プロトコルスタックでヘダがいくつも付加される • 第4層までの情報データを振り分ける装置がL4LB• L4LB の3つの実装NAT, IPトンネリグ, DR を紹介 • DR が最もL4LB の負荷が小さくなる