Linux上のVRRP

物理的なアクセスの組織の形成の夜明けにある若い開発プロバイダーで。 次のネットワークアーキテクチャが個人に採用されました。

加入者ベースが成長するにつれて、最初の3つのポイントのすべての問題は正常に解決されました。 後者では、小さな問題が予測されました。

テクノロジーがPPPoEまたはPPTP / L2TPである場合、サーバー(PPPoE)を追加し、PPTP / L2TPサーバーのラウンドロビンDNSレコードを設定するだけですべてが解決されます(このトピックでは少し弱いため、混乱している可能性があります)。

アクセステクノロジーでは、VRRPが唯一のオプションでした。
ここで取ることができます 。 インストールについては説明しません。具体的なものはありません。

VRRPについて簡単に説明します。
各サーバーに仮想インターフェースが作成されます。 サーバーの1つがMASTERになり、もう1つがBACKUPになり、すべてのトラフィックがMASTERサーバーを通過します。 MASTERサーバーはarp要求に応答し、BACKUPサーバーはサイレントです。 2つのサーバーは、どちらがMASTERであり、その可用性を決定する特別なパッケージを交換します。そのため、MASTERサーバーが利用できない場合、BACKUPサーバーはMASTER状態に切り替わります。

VRRPページでは、2つの仮想インターフェイスが発生し、DHCPを介して異なるゲートウェイアドレスが指定されると、負荷分散方法が示されます。
別の方法を使用することにしました。 なぜなら これらのサーバーでvlanを終了する必要があります。次に、vlan-sごとに1つのウイルスインターフェイスがあり、奇数個のvlan MASTERのみがサーバー番号1で、サーバー番号2がBACKUPになります。 VLAN番号が偶数の場合、すべてが正反対になります。サーバー1がバックアップになり、2がマスターになります。 なぜなら 多数のインターフェイスがある場合、ルーティングされたトラフィックはほぼ均等に分割されます。

したがって、完成したソリューション:
サーバー#1インターフェース(VLAN番号、インターフェースIPアドレス、VRRPのステータス):
1 10.0.1.2 MASTER
2 10.0.2.2 BACKUP
3 10.0.3.2 MASTER
...
254 10.0.254.2 BACKUP
255 10.0.255.2 MASTER


サーバー#2(VLAN番号、インターフェイスIPアドレス、VRRPのステータス):
1 10.0.1.3 BACKUP
2 10.0.2.3 MASTER
3 10.0.3.3 BACKUP
...
254 10.0.254.3 MASTER
255 10.0.255.3 BACKUP


仮想インターフェイスにはアドレス(VLAN番号、IPアドレス)があります。
1 10.0.1.1
2 10.0.2.1
3 10.0.3.1
...
254 10.0.254.1
255 10.0.255.1


物理インターフェイスの構成方法については説明しません。このトピックには多くの資料があります。
/etc/init.d/でシステムを起動するときにvrrpを自動的にロードするには、起動スクリプトを作成します(独自のテンプレートを作成するか、インターネット上で既製のテンプレートを使用できます。 一番下の行は、インターフェイスごとに1つのプロセスを開始することです。 bashでは、サーバー1に類似したものを生成する簡単なスクリプトが作成されました。
/bin/vrrpd -i eth1.1 -v 1 10.0.1.1 -p 255
/bin/vrrpd -i eth1.2 -v 2 10.0.2.1 -p 100
/bin/vrrpd -i eth1.3 -v 3 10.0.3.1 -p 255
...
/bin/vrrpd -i eth1.254 -v 254 10.0.254.1 -p 100
/bin/vrrpd -i eth1.255 -v 255 10.0.255.1 -p 255


サーバー番号2の場合:
/bin/vrrpd -i eth1.1 -v 1 10.0.1.1 -p 100
/bin/vrrpd -i eth1.2 -v 2 10.0.2.1 -p 255
/bin/vrrpd -i eth1.3 -v 3 10.0.3.1 -p 100
...
/bin/vrrpd -i eth1.254 -v 254 10.0.254.1 -p 255
/bin/vrrpd -i eth1.255 -v 255 10.0.255.1 -p 100


これらの例では:
/ bin / vrrpd-実行可能ファイルのパス
-i eth1.1-仮想マシンが接続されている物理インターフェース
-v 1 -vrrpグループのID(255個を超えるグループは使用できません)
10.0.1.1-仮想インターフェースのIPアドレス
-p 255-サーバーの優先順位、より高い優先順位。 デフォルトでは、マスターであるサーバーの優先順位は255であると想定されています。
vrrpの起動後、仮想インターフェイスのMACアドレスは00:00:5E:00:01:xxになります。ここで、xxはVRRPグループのIDです。 ルーターは、ステータスを宣言するパケットの交換も開始します。 これらのパッケージはマルチキャストです。これらの2つのサーバーが接続されているスイッチで、アドレス224.0.0.18にマルチキャストがフィルターされないようにする必要があります。

そして、サーバー自体が必要なパケットをフィルタリングしないようにiptablesを構成します。 / etc / sysconfig / iptablesファイルに次の行を追加します。
:allow_vrrp - [0:0] # vrrp
-A RH-Firewall-1-INPUT -p 112 -j allow_vrrp # 112 ( vrrp)
-A allow_vrrp -s 10.0.1.0/30 -j ACCEPT #
-A allow_vrrp -s 10.0.2.0/30 -j ACCEPT
-A allow_vrrp -s 10.0.3.0/30 -j ACCEPT
...
-A allow_vrrp -s 10.0.254.0/30 -j ACCEPT
-A allow_vrrp -s 10.0.255.0/30 -j ACCEPT
-A allow_vrrp -j LOG --log-level notice #
-A allow_vrrp -j DROP #


それだけです

結果:
特に細心の注意を払っている加入者は、リモートホストをトレースするときに奇妙さだけに気付きました。 奇妙さは次のようになります。
tracert ya.ru
0 10.0.34.35 # ip
1 10.0.34.3 # ip .3, .1


PS実際に、このサーバーのペアを実稼働環境に導入するとき、以前はビジネスに携わっていなかった他のテクノロジー(LACP、OSPF)も習得しましたが、何よりもVRRPを扱うのは興味深いものでした。

Source: https://habr.com/ru/post/J128770/


All Articles