Есть ли способ получить несколько TCP-соединений с одного и того же IP / MAC-адреса для использования всех физических каналов в конфигурации LACP?
Вот моя установка:
Центральный коммутатор (Meraki MS42P) имеет канал 10GbE с одним сервером и канал 10GbE с коммутатором доступа (Cisco 2960-CX) на другой стороне здания. Второй сервер использует 4 x 1GbE в конфигурации LACP на коммутаторе доступа.
Если я открываю по одному соединению для каждого из нескольких клиентов 1GbE в любом месте сети, я могу насыщать агрегированный канал 4 x 1GbE (то есть до 4 клиентов получают полный 1 ГБ одновременно). Однако, если я открываю 4 одновременных TCP-соединения с первого сервера (с одной ссылкой 10GbE на коммутатор) ко второму серверу, они всегда используют одну ссылку 1GbE.
Заменить LACP на режим связывания Roundrobin (mode=0
). Измените режим канала порта Cisco на on
. Прежде всего удалите все интерфейсы из этой группы порт-канал.
Почему я советую использовать RR (круговой алгоритм)? LACP очень часто применяется между коммутаторами, когда расстояние между ними велико или соединения могут быть повреждены. Linux может использовать алгоритм балансировки нагрузки level3 + level4 для LACP, но нет коммутаторов или маршрутизаторов, которые могли бы это сделать. Уровень 4 означает, что исходный и целевой IP-порты будут использоваться для вычисления хэша передачи. Если вы будете использовать LACP между двумя серверами напрямую, вы дадите 1 Гбит / с на одно IP-соединение. С RR вы получите соединение на полной скорости 4 Гбит / с. Но если один из четырех каналов выйдет из строя, вы получите потерю 25℅ пакетов. Как часто бывает, когда сервер и коммутатор находятся в одной комнате? Этого не было в моей 15-летней практике.
Это зависит от алгоритма балансировки нагрузки, который решает, какие соединения всегда должны быть на одном и том же проводе.
Я не знаком с Meraki в этом отношении, но для Cisco по умолчанию будет source-dest-mac
то есть соединения с одного и того же исходного MAC-адреса и MAC-адреса назначения будут проходить по одному и тому же проводу.
Вы бы хотели что-то вроде source-dest-port
где каждое соединение от другого порта или к другому порту будет проходить через другой провод группы LAGG.