Тестирование 10G Ethernet с двумя сетевыми картами?

902
Arash

Я хотел бы протестировать последовательный интерфейс 10Gig Ethernet, установив две сетевые карты (NIC) на компьютер и выполнив команду ping. У меня есть следующие вопросы:

1- Могут ли две отдельные сетевые карты быть установлены на одном ПК и иметь разные IP-адреса (для проверки связи)?

2- Похоже ли это на разумный подход к генерации / проверке данных, передаваемых через этот интерфейс?

[NIC card[1]

3
Да. ... Может быть? Зависит от того, что вы тестируете. Ignacio Vazquez-Abrams 8 лет назад 0
Пока я только хочу увидеть результаты теста. Конечная цель состоит в том, чтобы в конечном итоге заменить одну из сетевых карт на разработанную нами плату и посмотреть, получим ли мы такие же результаты. По сути, я хочу протестировать тестовую среду на этом этапе, если это имеет смысл. редактировать: например, я бы хотел, чтобы тест выполнялся в одночасье и сравнивал передаваемые биты с полученными, чтобы найти частоту ошибок по битам или аналогичные показатели. 8 лет назад 0
Две платы в одном компьютере принесут с собой отдельные Mac и IP-стеки. Физ на чипе выведет ссылку 10g, если это возможно. Это не означает, что вы можете отправлять и получать 10-гигабитный поток, так как у вас есть ограничения пропускной способности шины и процессора, но вы можете запросить у MAC тип и статус ссылки для подтверждения 10-битной ссылки crasic 8 лет назад 0
@crasic, если вы не сделаете все возможное, чтобы все было иначе, все nics на одном компьютере будут работать с одним и тем же стеком IP. plugwash 8 лет назад 0
При установке плат убедитесь, что вы используете слоты, которые подключены к ЦП напрямую (не к южному мосту), и убедитесь, что все опции разгрузки включены. billc.cn 8 лет назад 0

3 ответа на вопрос

5
alex.forencich
  1. да

  2. Может быть. Зависит от того, перехитрил ли ты ОС. У меня были проблемы в прошлом, когда я пытался протестировать проекты FPGA, которые подключены через 10G Ethernet к нескольким сетевым адаптерам на одном компьютере, и когда все мои тестовые пакеты маршрутизируются операционной системой, а не выходят в сеть (почему Netperf работает на 40G на 10G NIC?!?).

Конечно, стандартная команда `ping` не будет привязана к конкретному интерфейсу, и даже если вы создадите такой интерфейс, это не обязательно означает, что ОС будет заботиться. Ignacio Vazquez-Abrams 8 лет назад 0
Команду Linux ping можно связать, но, похоже, она не помогает. И если вы связываете передачу, ответ может быть направлен локально. alex.forencich 8 лет назад 0
Ненавижу это говорить, потому что действительно должен быть способ заставить это работать, но использование двух компьютеров гарантированно сработает. alex.forencich 8 лет назад 1
Вы можете указать интерфейс с помощью `-I`, но это только изменяет содержимое пакета, чтобы оно выглядело так, как будто оно пришло оттуда, а не связывает его. Ignacio Vazquez-Abrams 8 лет назад 0
Хотя это похоже на удаление таблиц маршрутизации и добавление `-r` может работать ... Ignacio Vazquez-Abrams 8 лет назад 0
4
Hennes

1- Могут ли два отдельных сетевых адаптера быть установлены на одном ПК и иметь разные IP-адреса

Да. В нескольких системах нет ничего особенного. Я подозреваю, что это даже стандартно для почти всех серверов, и на обоих настольных компьютерах, расположенных рядом со мной, также есть две сетевые карты (и вскоре третья, была заказана пара сетевых адаптеров по 10 Гбит).

Термин для компьютера с несколькими сетевыми картами / IP-адресами - «Multihomed»

2- Похоже ли это на разумный подход к генерации / проверке данных, передаваемых через этот интерфейс?

Нет, по нескольким причинам.

  1. Эхо-запрос ICMP (он же ping) не является хорошим тестом. Попробуйте использовать что-то вроде iperf.
  2. Маршрутизация может стать сложной. Как можно использовать процессор. Лучше всего разделить это на две системы.
  3. И, как уже говорил Алекс. Иногда ОС старается быть очень умной. Это проще и надежнее для тестирования на двух разных компьютерах.
1
plugwash

Проблема в том, что IP-стеки в операционных системах не предназначены для этого.

Они предназначены для поддержки нескольких адаптеров, чтобы позволить им прокладывать маршрут между сетями и / или иметь присутствие в нескольких сетях. Связывание происходит с адресами, а НЕ с адаптерами. Если вы привязываетесь к одному локальному IP и пытаетесь пропинговать другой, то пакеты никогда не будут выходить в сеть.

Может быть возможно обойти это с виртуальными машинами или сетевыми пространствами имен или чем-то еще, но я ожидаю, что будет гораздо проще просто использовать две отдельные машины.

Айя. Две виртуальные машины в PCI-e должны работать. Но две системы действительно намного проще. Hennes 8 лет назад 0

Похожие вопросы