2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmoxで ロードバランサーを構築してみよう①(SDN/L4負荷分散/SNAT)

Posted at

はじめに

Proxmoxでロードバランサーを構築してみようの第1回目です
今回はA10 NetworksのvThunder 30日間無料トライアルライセンスを登録した際に閲覧できる「クイック設定ガイド」を参考に構築していきたいと思います

設計/構成

「クイック設定ガイド」を参考に、Thunder ADCの機能を使ってL4仮想IPアドレス(VIP)を設定し、実サーバへロードバランスできるようにします

また今回はProxmoxのSDN機能を使って、Proxmox内に作成したプライベートLAN内/外からVIPにアクセスできるような構成をしていきたいと思います

物理構成

クライアントPC(192.168.100.160) <==> ルータ <==> Proxmoxサーバ(192.168.100.111)

Proxmox VE バージョン

9.0.10

Proxmox VM構成

VMID NAME IPアドレス デフォルトゲートウェイ 仮想IPアドレス(VIP)
100 A10vThunder 10.0.3.11 10.0.3.1 10.0.3.101
210 WebServer01 10.0.3.12 10.0.3.1
220 WebServer02 10.0.3.13 10.0.3.1
230 WebServer03 10.0.3.15 10.0.3.1
300 Windows11 10.0.3.100 10.0.3.1

Proxmox SDN構成

Simple Zones サブネット:10.0.3.0/24 ゲートウェイ:10.0.3.1 SNAT:[有]

構築/コンフィグ

A10 vThunder Config

!
interface ethernet 1 
  enable 
  ip address 10.0.3.11 255.255.255.0 
!
!
ip route 0.0.0.0 /0 10.0.3.1 
!
slb server RS1 10.0.3.12 
  port 80 tcp 
!
slb server RS2 10.0.3.13 
  port 80 tcp 
!
slb server RS3 10.0.3.15 
  port 80 tcp 
!
slb service-group Service_Group_1 tcp 
  member RS1 80 
  member RS2 80 
  member RS3 80 
!
slb virtual-server VIP-1 10.0.3.101 
  port 80 tcp 
    name TCP_80 
    source-nat auto 
    service-group Service_Group_1 
!

Proxmox SDN 設定値

ゾーン

Simple Zone
ID : ZONE
MTU : auto(デフォルト)
ノード : 全部(デフォルト)
IPAM : pve(デフォルト)

VNets

VNets

名前 : vnets
別名 : vnets
ゾーン : ZONE

サブネット

サブネット : 10.0.3.0/24
ゲートウェイ : 10.0.3.1
SNAT : [チャックあり]
DNSゾーンプレフィックス : 空欄(デフォルト)

Proxmox VM ネットデバイス設定

ブリッジ : vnets

WebServer の設定

軽量かつ簡単に構築したかったため、AlmalinuxのLXCコンテナを作成し、
httpdを入れるだけの手抜きです

dnf install httpd
systemctl enable httpd
systemctl start httpd

SDNのLAN外にあるクライアントPCの設定

ProxmoxのSDN機能には標準でNAT機能がついています
外側からSDN向けにNATするためには、ProxmoxサーバのIPアドレス(Proxmox Web管理GUIのIPアドレス)向けにローティングが必要です
ルータにスタティックルートの設定を入れてもいいですが、今回はPCに直接静的ルートの設定を入れました

筆者環境は、Macbookだったため下記の通り設定を入れました

sudo route add -net 10.0.3.0/24 192.168.100.111

これで下記の通り、NATされて通信できるようになります

クライアントPC(192.168.100.160) <=> ルータ <=> Proxmoxサーバ(192.168.100.111) <=> A10vThunder(10.0.3.101) 

通信の流れ/結果

SDN内のクライアントPCからVIPにアクセスしてみる

  1. クライアントPC(10.0.3.100)からブラウザで http://10.0.3.101:80 にアクセスする
  2. A10vThunderのVIP(10.0.3.101)でリクエストを受け付ける
  3. サービスグループに設定されている実サーバのIPアドレス(10.0.3.12,13,15)に転送する
  4. また転送する際に、送信元IPアドレスをA10vThunderの10.0.3.11に書き換えるSNATをする
送信元アドレス     宛先アドレス     SNATした送信元アドレス   転送先の実サーバアドレス
10.0.3.100  -> 10.0.3.101:80 to     10.0.3.11      ->   10.0.3.13:80

SDN外のクライアントPCからVIPにアクセスしてみる

  1. クライアントPC(192.168.100.160)からブラウザで http://10.0.3.101:80 にアクセスする
  2. PCに静的ルートを設定しているので、Proxmoxサーバ(192.168.100.111)に向かう
  3. ProxmoxサーバにてNAT変換を行われ、SDNのLAN内(10.0.3.0/24)に入る
  4. A10vThunderのVIP(10.0.3.101)でリクエストを受け付ける
  5. サービスグループに設定されている実サーバのIPアドレス(10.0.3.12,13,15)に転送する
  6. また転送する際に、送信元IPアドレスをA10vThunderの10.0.3.11に書き換えるSNATをする
送信元アドレス         宛先アドレス     SNATした送信元アドレス   転送先の実サーバアドレス
192.168.100.160 -> 10.0.3.101:80 to     10.0.3.11      ->   10.0.3.13:80

簡単な構成ではありますが、ちゃんと外側のクライアントPCでもWebアクセスできたので、SDNとの組み合わせ方も良かったのではないでしょうか。

そのうち、ProxmoxのSDN機能をピックアップした記事も書いてみたいなと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?