送信元または送信者アドレスでのLinux集約インターフェース(ボンド)でのパケットバランシング

小規模な通信事業者では、Cisco SCE 2020を使用してインターネットアクセスを制御します。これは、Cisco 6500とNAT機能を実行するdebianサーバーの間にインストールされます。 集約された2Gbitリンクは、サーバーとスイッチの間に構成されます。 オペレーターが成長するにつれて、チャネルの負荷は1.8 Gbpsに近づき始めました。これは、トラフィック処理ポリシーを適切に適用できるSCE 2020の帯域幅制限です。 この点で、2番目のSCEをインストールして、リンクを4Gbpsに拡張することが決定されました。



シスコのドキュメントによると、複数のSCE 2020を有効にする標準的なスキームは次のようになります(1)。

画像

しかし、通常どおり、6500にはポートがないため、サーバーとカタリストの間にSCEを含めることが決定されました。



DPI機能が正しく機能するには(プロトコル定義、httpリダイレクション)、SCEを通る対称トラフィックフローを確保する必要があります。つまり、特定のユーザーのパケットは常に同じポートを通過し、したがって同じSCEを通過する必要があります。 Cisco 6500側からは、「port-channel load-balance src-ip」(2)コマンドによって問題が解決されます。その後、同じソースからのパケットは常に同じポートに送られます。



したがって、サーバー側では、受信者のIPアドレスによるトラフィックバランシングを有効にする必要がありました。 このような単純なタイプのバランシングは、Linuxカーネルの結合モジュールに実装する必要があるように見えますが、ドキュメントを調べた結果、そうではないことがわかりました。 その結果、カーネル2.6.32(3)への小さなパッチが誕生し、ソースまたは宛先アドレスにバランスモードが追加されました。



パッチの適用後、これらのタイプのバランシングを使用するには、パラメータbond_mode = 2(動作モード:balance-xor)でボンディングを有効にし、xmit_hash_policyパラメーターで必要なバランシングタイプを選択する必要があります:3受信者のIPアドレスによるバランシングまたは4送信者。



1)「10ギガビットおよびマルチギガビットソリューション」 www.cisco.com/en/US/prod/collat​​eral/ps7045/ps6129/ps6133/ps6151/product_data_sheet0900aecd801d8574.html

2)EtherChannelロードバランシングの設定www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/channel.html#wp1020804

3)カーネル2.6.32 pastebin.com/5YPNZBiyのパッチ



All Articles