На підставі попереднього питання, що був рік тому ( мультиплексований Ethernet 1 Гбіт / с? ), Я пішов і налаштував нову стійку з новим провайдером з LACP-посиланнями в усьому місці. Це нам потрібно, тому що у нас є індивідуальні сервери (одна програма, один IP), які обслуговують тисячі клієнтських комп'ютерів по всьому Інтернету із сукупністю 1 Гбіт / с.
Ця ідея LACP повинна дозволяти нам зламати бар'єр 1 Гбіт / с, не витрачаючи багатства на 10GoE комутатори та NIC. На жаль, у мене виникли деякі проблеми щодо розподілу вихідного трафіку. (Це, незважаючи на попередження Кевіна Куфаля у вищезазначеному питанні.)
Маршрутизатор ISP - це якась Cisco. (Я вивів це з MAC-адреси.) Мій перемикач - HP ProCurve 2510G-24. А сервери - це HP DL 380 G5s під керуванням Debian Lenny. Один сервер є гарячим режимом очікування. Наш додаток не може бути кластеризованим. Ось спрощена мережева схема, яка включає всі відповідні мережеві вузли з IP-адресами, MAC та інтерфейсами.
Хоча в ньому є всі деталі, з цим трохи важко працювати та описувати мою проблему. Отже, для простоти, ось мережева схема, зведена до вузлів та фізичних посилань.
Тож я пішов і встановив свій комплект на новій стійці і підключив кабель провайдера від їх маршрутизатора. На обох серверах LACP посилається на мій комутатор, а комутатор має LACP-посилання на маршрутизатор ISP. З самого початку я зрозумів, що моя конфігурація LACP невірна: тестування показало, що весь трафік на та з кожного сервера переходить через одне фізичне посилання GoE виключно між обома серверами-комутаторами та перемикачем на маршрутизатор.
З деякими пошуковими функціями Google і великою кількістю RTMF часу щодо NIC-зв’язку Linux, я виявив, що можу керувати NIC-зв’язкою, модифікуючи /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means to use layer3+4(TCP/IP src/dst) & not default layer2
bonding mode=4 miimon=100 max_bonds=2 xmit_hash_policy=1
loop
Це призвело до того, що трафік залишає мій сервер над обома NIC, як очікувалося. Але трафік рухається від комутатора до маршрутизатора через тільки один фізичний канал, до сих пір .
Нам потрібен той трафік, що перетинає обидва фізичні зв’язки. Прочитавши та перечитавши посібник з управління та налаштування 2510G-24 , я знаходжу:
[LACP використовує] адреси адрес-джерела призначення (SA / DA) для розподілу вихідного трафіку по магістральних посиланнях. SA / DA (адреса джерела / адреса призначення) призводить до того, що комутатор розподіляє вихідний трафік посиланнях в межах групи магістралей на основі пар адрес джерела / місця призначення. Тобто комутатор надсилає трафік з однієї адреси джерела на ту саму адресу призначення через ту саму транскрибовану ланку, а трафік з тієї самої адреси джерела на іншу адресу призначення через іншу посилання, залежно від обертання присвоєння шляху серед посилання в багажнику.
Здається, що зв’язане посилання представляє лише одну MAC-адресу, і тому мій шлях від сервера до маршрутизатора завжди буде проходити через один шлях від перемикача на маршрутизатор, оскільки комутатор бачить лише один MAC (а не два - один з кожен порт) для обох посилань LACP.
Зрозумів. Але це те, що я хочу:
Дорожчий комутатор HP ProCurve - це 2910al, використовуючи джерела та адреси призначення рівня 3 у своєму хеші. У розділі "Розподіл вихідного трафіку по всім посиланням" Посібника з управління та конфігурації ProCurve 2910al :
Фактичний розподіл трафіку через магістраль залежить від обчислення за допомогою бітів з адреси джерела та адреси призначення. Якщо доступна IP-адреса, обчислення включає останні п'ять бітів IP-адреси джерела та IP-адреси призначення, інакше використовуються MAC-адреси.
ГАРАЗД. Отже, щоб це працювало так, як я хочу, адреса призначення є ключовою, оскільки моя адреса джерела виправлена. Це призводить до мого питання:
Як саме та конкретно працює хешування LACP рівня 3?
Мені потрібно знати, яка адреса призначення використовується:
- IP клієнта , кінцеве призначення?
- Або IP маршрутизатора , наступне місце передачі фізичної лінії зв'язку.
Ми ще не вийшли з ладу та купили вимикач для заміни. Будь ласка, допоможіть мені зрозуміти, чи потрібне хешування 3-го місця призначення LACP або не те, що мені потрібно. Придбати інший марний комутатор - це не варіант.