ネットワークトラフィックがトランクを離れていないように見える


8

私はいくつかの新しい仮想化サーバーをステージングしている最中ですが、その一部は、より高い帯域幅のパイプをサーバーに取り込むことです。最終的な目標は、4つのGigEポートを、802.1qタグ付きトラフィックを運ぶ単一のトランクにバインドすることです。私はそれまでのところ得ることができますが、私は奇妙な問題に遭遇しました。しかし、最初に、図。

----------       ----------  1GbE trunks 
|        | 10GbE |        | ------------- --------
|  SW1   |-------|   SW2  | ------------- | VM1  |
|        |       |        | ------------- --------
----------       ----------
     |                |  1GbE  -----------
     | 1GbE           |--------| client2 |
     |                         -----------
----------
|        | 1GbE -----------
|  SW3   |------| client1 |
|        |      -----------
----------

すべてのスイッチはHP ProCurve 2910alスイッチであり、スタックされていません。上の図のClient2は、VM1と同じVLANにあります。Client1は別のVLANにあります。VMマシン(CentOS 6)では、iptablesとSELinuxの両方が無効になっています。

私の問題は、トランキングが含まれている場合、いずれかのクライアントマシンと通信するときに双方向ネットワークトラフィックが不可能になることです。TCPDUMPは、pingが受信され、ECHO REPLYパケットが送信されたことを示しますが、VMホストはそれらを認識しません。同時に、クライアントマシンからVMにpingを実行しようとしても、機能しません。同じサブネット上にあるclient2にpingできないという事実は、どこかでネットワーク層に何かがおかしいことを示唆しています。

不思議なことに、VMホストから任意のスイッチのゲートウェイIPにpingを実行できます。単一のインターフェイスを使用する場合、VLANタグ付けの有無にかかわらず、すべてが正常に動作します。単一のインターフェースをバインドして、そのインターフェースでVLANタギングをオンにすれば、どこにでも移動できます。トランクを構築すると、スイッチファブリックに限定されます。

トランクの種類は重要ではないようです。現在、LACP / 802.1qaを使用しても同じように動作しますが、モード0トランク(balance-rr)で構成されています。

vlan 70 
   name "Virtualization Subnet" 
   untagged 35,36,38,40 
   tagged Trk1-Trk2,Trk5,Trk8 
   no ip address 
   jumbo 
   exit 

これがSW2のVLAN設定です。SW1のVLAN 70定義には、「IPアドレス」が定義されています。上記のスニペットは完全にunrunkedモードです。私がトランクされているとき:

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

802.1qa / LACPバージョンは、トランクの定義に取って代わるものですtrunk 35-36,38,40 Trk16 lacpが、私が言ったように、問題の表現は変わりません。

Client2は実際にはSW1に接続されていますが、それをチャートに配置すると、フォーマットが複雑になります。いずれにせよ、Interfaceスタンザの唯一のものはnameディレクティブです。untaggedSW1のvlan 70スタンザにポートとしてリストされています。

何が欠けていますか?


ProcurveスイッチのVLANスタンザを投稿できますか?また、ハイパーバイザー(別名VM)1、クライアント1および2が使用しているポートは何ですか。
jftuga

@jftugaスタンザが入力されました。
sysadmin1138

スイッチsw1、2、3の場合、(他のスイッチへの)アップリンクトランクのすべてのポートがVLAN 70でタグ付けされていますか?また、tracertは何を示していますか?
jftuga

@jftugaはい、すべてのスイッチ間リンクはトランキングされ、タグ付けされています。SW3にはVLAN 70がありません。Tracerouteはほとんど関心を示していません。トレースは、VMホストに到達するときにホップで停止します。また、スイッチ自体からは、トランキングされているときにVMホストのIPアドレスにpingできません。そのトランクポートのセットをスニッフィングするために適切なものを入手できるかどうかを確認します。
sysadmin1138

仮想マシンのように、これはVMであると言いますか?ESX(i)で実行していますか?
pauska

回答:


7

MikeyBPauska、およびChrisSを含むチャットで長い議論の末、問題は2つになりました。

  1. CentOS 6のバグの可能性bondingservice network restart、の一部としてモジュールのモジュールオプションを変更していなかったため、LACPモード(4)とラウンドロビン(0)の間の私の変更を追跡していませんでした。
  2. ラウンドロビンモードは、ProCurveスイッチとの連携を好みません。

次のコマンドを使用して、ボンディングされたインターフェイスを強制的にLACP / 802.1qaモードにします。

ifconfig bond0 down
echo "4" > /sys/class/net/bond0/bonding/mode
ifconfig bond0 up

サーバーとスイッチの両方が話していました。その時点で、スイッチで1つのインターフェイスのみを有効にして開始すると、トラフィックは正常に機能し始めました。2番目、3番目、最後に4番目のインターフェースを有効にすると、すべてトラフィックが機能し続けました。

結局のところ、LACPモードは物事を機能させるものです。手がかりは、トランクに有効なスイッチポートが1つしかないときにラウンドロビンモードが機能することでした。サーバーは再起動後も存続し、正しいモードで起動します。ただし、aを指定service network restartしてもMODE="4"ifcfg-bond0ファイルの一部が/etc/sysconfig/network-scripts/有効になるわけではありません。そのモードが変更された場合、ブート時に設定されたもの(または、モジュールのモジュールロード時間bonding)がそのまま残ります。


:)
MikeyB

これが修正されたことをうれしく思います。
jftuga

非常に専門的な質問と回答。誰かを助けるためにバインドされています。
artifex

0

あなたの設定にあります:

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

それはすべきではありません:

   untagged Trk16
   tagged Trk1-Trk2,Trk5,Trk8

まあ、元の投稿にはエラーがありますが、あなたが提案しているものではありません。untrunked configの下のVLAN 70の「タグなしTrk16」がなければならない
pauska

私はその亜種も試しました。どちらのバリアントも同じように動作し、機能しません。使用するuntagged 35-36,38,40tagged 35-36,38,40...私はLinuxサーバ上の集約インターフェイスに限り、両方の作業をしようとしないからです。untagged Trk16そして、tagged Trk16...の両方が動作しません。
sysadmin1138

Xenを実行していますか?Centos 6はまだインターフェースの定義にこだわっていますか?vlanインターフェースが誤ったインターフェース(ブリッジの代わりにphyまたはその逆)から作成され、奇妙なことが起こったという問題を思い出しました。
MikeyB 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.