OpenVZコンテナーを使用する便利な方法を共有したいと思います。 このオブジェクトは非常に軽く、くしゃみごとにコピーを取得できます。
デフォルトでは、コンテナはvenetネットワークインターフェイスを使用します。 管理者にとっては、コンテナにアドレスを割り当てるだけのように見え、便利です。 ただし、コンテナがネットワークからアクセスできるようにするには、物理サーバー(HN)が接続されているのと同じIPネットワークのアドレスを使用する必要があります。 サーバーは、その上で実行されているコンテナーのリストを認識しており、そのMACアドレスでコンテナーのアドレスを使用してARP要求に応答します。 しかし、あなたは常に仕事の利便性を高めたいと思っています。そして、ダイナミックルーティングがこれに役立ちます。
QuaggaとOSPFを使用した例を正確に見てみましょう。
このスキームが機能するためには、動的ルーティングプロトコル(OSPF)がネットワーク上ですでに実行されている必要があります。 ただし、複数のルーターで接続された多くのネットワークがある場合は、ほとんどの場合、既に動的ルーティングを構成しています。
まず、サーバーにQuaggaをインストールする必要があります。
すべてがシンプルで、Quaggaはほとんどすべてのディストリビューションの標準パッケージに含まれています。
以降、Debianベースのコマンド:
以降、Debianベースのコマンド:
#sudo apt-get install quagga
次に、最小構成を作成して実行します。
/ etc / quagga / daemonsファイルで、行を修正します( 「no」から「yes」まで ):
ファイル/etc/quagga/zebra.confを作成します
ファイル/etc/quagga/ospfd.confを作成します
再起動:
zebra=yes ospfd=yes
ファイル/etc/quagga/zebra.confを作成します
ip forwarding line vty
ファイル/etc/quagga/ospfd.confを作成します
router ospf redistribute kernel network 0.0.0.0/0 area 0.0.0.0 line vty
再起動:
#sudo service quagga restart
これらの設定により、HNはすべてのインターフェイスでルーターを検索し、実行中のすべてのコンテナーについて通知します。
Quaggaがネットワークに接続され、コンテナ情報が配信されていることを確認します。
リストが空でない場合、隣接ルーターが見つかります。
コンテナ情報がクォークされていることを確認します。
一致する必要があるIPアドレスを持つ2つのリストを取得します。
# vtysh -e "show ip ospf nei" Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 198.51.100.11 128 Full/DR 2.548s 192.0.2.25 vmbr0:192.0.2.26 0 0 0 192.0.2.27 1 2-Way/DROther 2.761s 192.0.2.27 vmbr0:192.0.2.26 0 0 0 192.0.2.28 1 Full/Backup 2.761s 192.0.2.28 vmbr0:192.0.2.26 0 0 0
リストが空でない場合、隣接ルーターが見つかります。
コンテナ情報がクォークされていることを確認します。
# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 100 38 running - radius.local 101 26 running 198.51.100.2 dns.local 104 47 running 203.0.113.4 cacti.local 105 56 running 203.0.113.5 host3.local 152 22 running 203.0.113.52 host4.local 249 96 running 203.0.113.149 zabbix.local # vtysh -e "show ip ospf database external self-originate" | fgrep Link\ State\ ID Link State ID: 198.51.100.2 (External Network Number) Link State ID: 192.168.98.4 (External Network Number) Link State ID: 192.168.98.5 (External Network Number) Link State ID: 192.168.98.52 (External Network Number) Link State ID: 192.168.98.149 (External Network Number)
一致する必要があるIPアドレスを持つ2つのリストを取得します。
したがって、任意のアドレスでコンテナを作成でき、どこからでもアクセスできます。
それでは、Quaggaの設定をいくつか追加しましょう。
これらの行のおかげで、情報はより速く更新されますが、ルーターのインターフェイスもそれに応じて構成する必要があります。
ファイル/etc/quagga/ospfd.conf:
サーバーが配置されているネットワークからのアドレスを持つコンテナに関する情報は配布されません。 確かに、誰もがこのネットワークについて知っているので、余分なエントリのあるルーティングテーブルに悩まされるのはなぜですか。
ファイル/etc/quagga/ospfd.conf:
ファイル/etc/quagga/ospfd.conf:
... interface vmbr0 ip ospf hello-interval 1 ip ospf dead-interval 3 ...
サーバーが配置されているネットワークからのアドレスを持つコンテナに関する情報は配布されません。 確かに、誰もがこのネットワークについて知っているので、余分なエントリのあるルーティングテーブルに悩まされるのはなぜですか。
ファイル/etc/quagga/ospfd.conf:
... ip prefix-list ifvmbr0 seq 100 permit 192.0.2.0/24 le 32 router ospf redistribute kernel route-map openvz route-map openvz deny 100 match ip address prefix-list ifvmbr0 route-map openvz permit 200 ...
アドレスを使用するという事実に加えて、そのようなスキームのおかげで他にどのようなボーナスを得ることができますか:
- ライブ移行では、ダウンタイムや切断なしで、異なるネットワーク上のサーバー間および異なるサイトのサーバー間でコンテナーを転送できます。
- 同じアドレスを持つ「スペア」コンテナが別のサーバーにあり、より大きなメトリックでアナウンスされている場合、ホットスペアを実装できます。
- 前の段落と同様のエニーキャスト、さまざまなプレゼンスの異なるサーバー上のコンテナ、メトリックタイプ1でアドバタイズされる同じアドレスがコンテナに含まれます。その後、トラフィックは「最も近い」アドレス(DHCP / RADIUS / IPTV /プロキシなど)に送られます
PS
- Proxmoxでは、トンネル上でクラスターを構築する場合にのみ優れた機能を発揮します。トンネルインターフェイスをOSPFから削除するか、メトリックを上げる必要があります。つまり、ユーザートラフィックがトンネルを通過するリスクがあります。
- ここで何が新しくなったのかという疑問が生じるかもしれませんが、Quaggaは長い間サーバーにインストールされていますが、利点はデーモンを各コンテナー内にインストールする必要がなく、ホストマシンにのみインストールする必要があることです。
- これらの目的でOSPF NSSAエリアを使用することはお勧めしません。そのようなルートに対してqugaがLSA7を生成する方法には微妙な点があるため、ほとんどの場合機能しません。
PPS / updネットワークとサーバーに異なるコマンドが関係している場合、このスキームを使用することは許可されません。 これは、1番目と2番目を処理する管理者にとって、かなり便利な「ハック」です。