Saya sedang dalam proses menyusun beberapa server virtualisasi baru, dan bagian dari itu adalah untuk mendapatkan beberapa pipa bandwidth tinggi ke dalamnya. Tujuan utamanya adalah untuk mengikat 4 port GigE ke dalam trunk tunggal yang membawa 802.1q traffic yang ditandai. Saya bisa sejauh itu, namun saya mengalami masalah aneh. Tapi pertama-tama, sebuah diagram.
---------- ---------- 1GbE trunks
| | 10GbE | | ------------- --------
| SW1 |-------| SW2 | ------------- | VM1 |
| | | | ------------- --------
---------- ----------
| | 1GbE -----------
| 1GbE |--------| client2 |
| -----------
----------
| | 1GbE -----------
| SW3 |------| client1 |
| | -----------
----------
Semua sakelar adalah sakelar HP ProCurve 2910al dan tidak ditumpuk. Client2 dalam diagram di atas adalah dalam VLAN yang sama dengan VM1. Client1 berada dalam VLAN yang berbeda. Untuk mesin VM (CentOS 6) baik iptables dan SELinux telah dinonaktifkan.
Masalah saya adalah bahwa ketika trunking terlibat, lalu lintas jaringan dua arah tidak mungkin ketika berbicara dengan salah satu mesin Klien. TCPDUMP menunjukkan bahwa ping diterima oleh mereka dan paket ECHO REPLY dikirim, tetapi host VM tidak pernah melihatnya. Pada saat yang sama, jika saya mencoba melakukan ping VM dari mesin klien, itu juga tidak berfungsi. Faktanya saya tidak bisa melakukan ping client2, yang berada di subnet yang sama, menunjukkan ada sesuatu yang edan di lapisan jaringan di suatu tempat.
Anehnya, dari host VM saya bisa ping IP gateway pada salah satu switch. Jika saya menggunakan antarmuka tunggal semuanya bekerja dengan baik dengan dan tanpa penandaan VLAN. Jika saya hanya mengikat satu antarmuka dan mengaktifkan penandaan VLAN pada antarmuka itu, saya bisa pergi ke mana saja. Bangun trunk, dan saya terbatas pada switch-fabric.
Jenis bagasi sepertinya tidak masalah. Saat ini mereka dikonfigurasikan dengan mode 0 trunks (balance-rr), meskipun menggunakan LACP / 802.1qa berperilaku dengan cara yang sama.
vlan 70
name "Virtualization Subnet"
untagged 35,36,38,40
tagged Trk1-Trk2,Trk5,Trk8
no ip address
jumbo
exit
Itu konfigurasi VLAN pada SW2 di sana. Definisi VLAN 70 SW1 memiliki "alamat IP" yang ditentukan di atasnya. Cuplikan di atas berada dalam mode sepenuhnya tidak terbongkar. Ketika saya belalai:
trunk 35-36,38,40 Trk16 trunk
vlan 70
name "Virtualization Subnet"
tagged Trk1-Trk2,Trk5,Trk8,Trk16
no ip address
jumbo
exit
Versi 802.1qa / LACP memperdagangkan definisi trunk untuk trunk 35-36,38,40 Trk16 lacp
tetapi seperti yang saya katakan, tidak mengubah presentasi masalah.
Client2 sebenarnya terhubung ke SW1, tetapi meletakkannya di sana di bagan akan membuat format lebih sulit. Bagaimanapun, satu-satunya hal dalam bait Antarmuka adalah name
arahan; terdaftar sebagai untagged
port di stanza vlan 70 untuk SW1.
Apa yang saya lewatkan?
sumber
Jawaban:
Setelah perdebatan panjang dalam obrolan yang melibatkan MikeyB , Pauska , dan ChrisS , masalah akhirnya menjadi dua kali lipat:
bonding
modul sebagai bagian dariservice network restart
, jadi itu tidak melacak perubahan saya antara mode LACP (4) dan roundrobin (0).Setelah saya memaksa antarmuka terikat ke mode LACP / 802.1qa melalui perintah ini:
Baik server dan saklar sedang berbicara. Pada saat itu, dimulai dengan hanya satu antarmuka yang diaktifkan pada sakelar, lalu lintas mulai bekerja secara normal. Mengaktifkan yang kedua, ketiga, dan akhirnya, keempat antarmuka semua membuat lalu lintas tetap berfungsi.
Pada akhirnya, mode LACP-lah yang membuat semuanya bekerja. Petunjuknya adalah bahwa mode round-robin bekerja ketika hanya ada satu switch-port yang diaktifkan di Trunk. Server selamat dari reboot dan muncul dalam mode yang benar. Namun, a
service network restart
tidak menyebabkanMODE="4"
bagian dariifcfg-bond0
file masuk/etc/sysconfig/network-scripts/
berlaku. Jika mode itu berubah, itu akan tetap seperti apa yang ditetapkan saat boot (atau lebih mungkin, waktu memuatbonding
modul dari modul).sumber
Anda memiliki konfigurasi Anda:
Bukankah itu seharusnya:
sumber
untagged 35-36,38,40
dantagged 35-36,38,40...
keduanya berfungsi selama saya tidak mencoba untuk menjumlahkan antarmuka pada server Linux.untagged Trk16
dantagged Trk16...
keduanya tidak bekerja.