layer 4 load balancer (nat, ip tunnelling, dr)

23
Layer 4 Load Balancer NAT, IPトンネリング, DR 2014 / 10 / 15 内田公太

Upload: kota-uchida

Post on 02-Jul-2015

284 views

Category:

Technology


7 download

DESCRIPTION

負荷分散や冗長化に用いるL4LBの3つのやり方、NAT、IPトンネリング、DRについて説明する。 DRについて、MACアドレスの解決の仕方を含めて少し詳しく説明する。

TRANSCRIPT

Page 1: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

Layer 4Load Balancer

NAT, IPトンネリング, DR

2014 / 10 / 15内田公太

Page 2: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

Outline

• プロトコルスタックの基礎知識• 3つのロードバランス手法

Page 3: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

プロトコルスタックの基礎知識

TCP + IP + Ethernet における送受信データの構造

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

TCP + IP + Ethernet スタック

HTTPRequest

TCPHeader

IPHeader

HTTPRequest

EthernetHeader

HTTPRequest

TCPHeader

HTTPRequest

TCPHeader

IPHeader

FCS

HTTPRequest

TCPHeader

IPHeader

HTTPRequest

EthernetHeader

HTTPRequest

TCPHeader

HTTPRequest

TCPHeader

IPHeader

FCS

IPHeader

EthernetHeader

HTTPRequest

TCPHeader

FCSPre-

ambleIP

HeaderEthernetHeader

HTTPRequest

TCPHeader

FCSPre-

amble

LANケーブルで伝送

第4層

第5-7層

第3層

第2層

第1層

Page 5: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

HTTPRequest

TCPHeader

IPHeader

HTTPRequest

802.11Header

HTTPRequest

TCPHeader

HTTPRequest

TCPHeader

IPHeader

FCS

HTTPRequest

TCPHeader

IPHeader

HTTPRequest

802.11Header

HTTPRequest

TCPHeader

HTTPRequest

TCPHeader

IPHeader

FCS

TCP + IP + WLAN スタック

IPHeader

802.11Header

HTTPRequest

TCPHeader

FCSIP

Header802.11Header

HTTPRequest

TCPHeader

FCSPCLP

Preamble

電波で伝送

PCLP

Preamble

802.11Header

802.11Header

FCS

802.11Header

802.11Header

FCS

第4層

第5-7層

第3層

第2層

第1層

Page 6: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

プロトコルスタック

• 各層が独立• 例えばIPデータグラムはEthernetでもWLANでも伝送されうる。

• どちらの場合も、IP層の処理は同じ。

• 各層を独立させコスト削減。

• L4LB

• OSI参照モデル第4層(トランスポート層。TCP/UDPなど)までの情報を使って負荷分散する装置。

• 要するに、IPアドレスとポート番号で振り分けるもの。

Page 7: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

3つのロードバランス手法

NAT, IPトンネリング, DR

Page 8: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

NATNetwork Address Translation

IPDest 192.168.1.1

Src 1.2.3.4

EthernetDest 12:00:34:00:00:01Src 06:00:50:00:28:c0

TCPDest 80

Src 38000

HTTPFoobar

L4LB

IPDest 192.168.1.10

Src 192.168.1.1

EthernetDest 12:00:34:00:00:02Src 12:00:34:00:00:01

TCPDest 80

Src 38000

HTTPFoobar

12:00:34:00:00:01

192.168.1.1IP

Dest 192.168.1.10Src 192.168.1.1

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

TCPDest 80

Src 38000

HTTPFoobar

書き換え

あたかもL4LBからHTTPリクエストが来たように見える

12:00:34:00:00:02

192.168.1.10

Page 9: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

NAT

• ○設定が分かりやすい• ワーカはごく普通のWebサーバでよい

• × L4LBに負荷が集中

• L4LBが IN/OUT 双方のデータを扱うため

Page 10: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

IPトンネリング

IPDest 192.168.1.1

Src 1.2.3.4

EthernetDest 12:00:34:00:00:01Src 06:00:50:00:28:c0

TCPDest 80

Src 38000

HTTPFoobar

L4LB

IPDest 192.168.2.10

Src 192.168.1.1

EthernetDest 12:00:34:00:00:03Src 12:00:34:00:00:01

12:00:34:00:00:01

192.168.1.1

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

IPヘッダで包み込む

ネットワークを超えられる元のパケットがそのまま届く

IP

IPDest 192.168.2.10

Src 192.168.1.1

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

TCP

HTTP

IP

TCP

HTTP

EthernetDest 12:00:34:00:00:04Src 12:00:34:00:00:03

Page 11: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

IPトンネリング

• ○ネットワークを超えられる• ○ L4LBの負荷がかなり低い

• OUT方向のデータがL4LB を通らないため(ワーカは送信元IPを知っており、直接返答できる)

• ×設定が複雑

Page 12: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

IPDest 192.168.1.1

Src 1.2.3.4

EthernetDest 12:00:34:00:00:01Src 06:00:50:00:28:c0

TCPDest 80

Src 38000

HTTPFoobar

L4LB

EthernetDest 12:00:34:00:00:02Src 12:00:34:00:00:01

TCPDest 80

Src 38000

HTTPFoobar

12:00:34:00:00:01

192.168.1.1IP

Dest 192.168.1.1Src 1.2.3.4

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

無加工で送る

元のパケットがそのまま届く

DRDirect Routing

12:00:34:00:00:02

192.168.1.1

Page 13: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

DR

• ○ L4LBの負荷が非常に低い

• OUT方向のデータがL4LB を通らないため(ワーカは送信元IPを知っており、直接返答できる)

• ×設定が複雑

Page 14: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

ちょっとまって!

L4LBとワーカに同じIPを設定しても大丈夫なの?

Page 15: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

大丈夫

ループバックアドレスとしてIPアドレスを設定しておけば、

ARPを無視するから衝突しないんだ

Page 16: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB ワーカ1 ワーカ2

DRを使うときのネットワーク構成

ユーザ

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

12:00:34:00:00:03lo0 192.168.1.1

Page 17: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ 192.168.1.1 に対応するMACアドレスを教えて!

ARPリクエストブロードキャスト

Page 18: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ

12:00:34:00:00:01です

…ARPレスポンス

Page 19: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ了解。では

12:00:34:00:00:01に送ります

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

Page 20: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ

ワーカ2君処理してね

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

了解

Page 21: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ

IPDest 192.168.1.1

Src 1.2.3.4

TCPDest 80

Src 38000

HTTPFoobar

1.2.3.4 に応答を返せばいいんだな

Page 22: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

L4LB

12:00:34:00:00:01eth0 192.168.1.1

12:00:34:00:00:02lo0 192.168.1.1

ワーカ112:00:34:00:00:03lo0 192.168.1.1

ワーカ2

ユーザ

IPDest 1.2.3.4

Src 192.168.1.1

TCPDest 38000

Src 80

HTTPFoobar

Foobar

Page 23: Layer 4 Load Balancer (NAT, IP Tunnelling, DR)

まとめ

• プロトコルスタックでヘッダがいくつも付加される• 第4層までの情報でデータを振り分ける装置がL4LB

• L4LB の3つの実装NAT, IPトンネリング, DR を紹介

• DR が最もL4LB の負荷が小さくなる