Два порта Ethernet на материнской плате. Как можно удвоить пропускную способность?

Прямой вопрос: у моей классифицированной по eogle материнской плате есть два Ethernet-порта. Я хочу использовать их одновременно для повышения скорости удаленного подключения. (Yay для программирования удаленно). Как мне это сделать? В настоящее время / etc / network / interfaces:

auto lo eth0 eth1

iface lo inet loopback

iface eth0 inet static
address 192.168.1.202
netmask 255.255.255.0
gateway 192.168.1.2

ifrace eth1 inet static
address 192.168.1.201
netmask 255.255.255.0

Что я должен изменить? Есть ли пакет, который мне нужно установить для соединения двух каналов.

Фон: я делаю много удаленных вычислений как от дома к офису, так и от офиса к дому. Но (чтобы вывести моего провайдера из уравнения), давайте рассмотрим вопрос так, как будто меня просто интересует максимизация скорости передачи файлов между двумя компьютерами в одной и той же (локальной) сети. Оба блока имеют две платы ethernet. Используя простой Linksys WRT54GS в качестве 5-портового коммутатора (игнорируйте беспроводной и ISP) - как мне увеличить скорость передачи данных между компьютерами?

Обратите внимание: меня не интересует балансировка нагрузки - правильно если я ошибаюсь, но я хочу связать два канала вместе, чтобы поле появилось , как будто оно имеет одно соединение, которое в два раза быстрее.

16
задан 27 November 2011 в 19:43

7 ответов

Важно отметить, что для того, чтобы использовать функциональные возможности NIC, коммутатор, с которым вы подключены, должен поддерживать совместную работу с LACP. Вы можете найти такой переключатель, используя поиск по NewEgg.com и т. Д.

Как только у вас есть это простое руководство от wiki: https://help.ubuntu.com/community/UbuntuBonding [ ! d1]

Удачи!

3
ответ дан 25 May 2018 в 22:23
  • 1
    Да, удачи, потому что пока это будет работать, это не приведет к увеличению скорости. – Scaine 26 August 2012 в 12:37

Очень маловероятно, что соединение ваших интерфейсов приведет к увеличению скорости. Как правило, даже если вы успешно связываете интерфейсы и настраиваете коммутатор для поддержки etherchannel), вы все равно обнаружите, что для каждой пары исходных / целевых сеансов TCP / UDP используется только один интерфейс в связи.

Итак, если вы скопируете файл 10Gb с одного сервера, затем отпустите еще одну копию 10Gb на этот сервер, предположив, что у вас также есть сеансовое соединение, вы увидите, что обе карты превышены. Но, самое главное, первая копия будет потреблять только одну сетевую карту, а не обе.

Это, безусловно, относится к каналу Cisco etherchannel. Фактически, etherchannel Cisco даже не основан на сеансе, он основан на источнике / цели, поэтому в моем примере выше вы даже не получите увеличение скорости - ваша вторая копия должна быть на совершенно другом сервере, прежде чем вы увидите как используемых карт. Возможно, у вас есть лучший коммутатор, который позволяет каналу порта использовать обе карты одновременно в одном сеансе TCP / UDP, но для этого потребуются довольно забавные манипуляции arp / MAC, и я понятия не имею, поддерживает ли модуль связи в Linux.

Что касается вас, вы используете домашний домашний маршрутизатор, поэтому поддержка на стороне коммутатора здесь не может быть и речи, что означает, что ваши параметры еще более ограничены (см. первую статью, выровненную ниже, где вы обратите внимание, что теперь вы не можете использовать лучший режим для агрегации ссылок, режим 4).

Если вы решите продолжить это, я нашел эту пятилетнюю статью, которая по-прежнему кажется актуальной. Кроме того, эта трехлетняя статья охватывает ту же землю.

Надеюсь, что это поможет.

12
ответ дан 25 May 2018 в 22:23

Я бы подумал, что переход через коммутатор ограничит любую выгоду, которую вы получите от использования двух кабелей Ethernet параллельно. Если коммутатор быстрее, чем два ваших сетевых адаптера, в этом случае вы можете увидеть увеличение скорости.

Программа балансировки нагрузки - это то, что вы ищете. Вам не нужно «балансировать нагрузку», если вы этого не хотите, но это самый простой способ объединить соединения, о которых я знаю. Идея не слишком сложна

Виртуальная сетевая карта -> Программа балансировки нагрузки -> NIC 1 + 2

В этом ответе есть то, что вы ищете Я верю: сетевая балансировка нагрузки с помощью сети Менеджер

Я не уверен в специфике, но я уверен, что это общая идея.

Если карты NIC существенно менее мощны, чем ваш маршрутизатор / коммутатор, единственное преимущество вы, вероятно, получите прямое соединение между двумя компьютерами, или параллельное соединение в целом. Но теория и практика не всегда срабатывают.

Единственный способ, с помощью которого я могу проверить, является ли NIC узким местом в вашей системе, - это провести тест скорости между каждым компьютером, используя все 4 сетевых адаптера. Я могу дать вам общую идею о том, как это сделать, но конкретный материал Ubuntu мне понадобится.

Установите для каждой сетевой платы свой собственный IP-адрес, например 192.168.0.1 + 192.168.0.2, для компьютер 1 и * .3 + * .4 для компьютера 2 Единственный тест скорости для локальных сетей, которые я видел, - это просто время передачи в битном файле. Я не уверен, есть ли лучший метод, я его никогда не видел. 3 Настройте маршруты вручную, так что * .1 - это интерфейс, чтобы добраться до * .3 и * .2 до * .4. PC1 192.168.0.1 & lt; -> 192.168.0.3 PC2 192.168.0.2 & lt; -> 192.168.0.4

Я никогда не использовал таблицы ip, поэтому вот что я нашел в качестве примера.

[root]# ip route add xx.xxx.239.120 via xx.xxx.239.120 dev eth0 table 4
[root]# ip route add table 4 default via xx.xxx.239.120 
[root]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -s xx.xxx.239.120 -j MARK --set-mark 4 
[root]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source xx.xxx.239.120 [root]# ip rule add fwmark 4 table 4
Установите для каждого сетевого адаптера собственный IP-адрес, например 192.168.0.1 + 192.168.0.2, для компьютера 1 и * .3 + * .4 для компьютера 2

Если таблицы IP настроены правильно, вы должны иметь возможность отправлять 2 файла с ПК 1 на оба интерфейса на ПК 2, и каждый файл будет проходить по другому маршруту. Если передача с двумя соединениями выполняется быстрее, чем одна ... (надеюсь, в два раза быстрее), то у вас может быть что-то.

2
ответ дан 25 May 2018 в 22:23

Я не думаю, что вы сказали, используете ли вы гигабитный сетевой адаптер, я предполагаю, что с тех пор у вас есть 2 сетевых адаптера и, следовательно, вероятно, это игровая материнская плата.

Так как это так, если вы пытаетесь получить базу 2x100, вам лучше купить дешевый 4-8-портовый гигабитный коммутатор и подключить его к вашему интернет-маршрутизатору. Затем вы можете подключить все компьютеры, которые запускают Ethernet, в этот коммутатор, и у вас все еще есть Wi-Fi и Интернет на всех ваших компьютерах.

Я делаю это сейчас, потому что я купил Netgear WNDR3400 и поместил на него DD-WRT, чтобы у меня было несколько приятных опций, включая очень современный сервер NAS.

[d3 ] Единственная проблема заключалась в том, что маршрутизатор был 100 базовым для портов Ethernet. Так что за 40 долларов я купил 5-портовый Gigabit коммутатор, подключенный к маршрутизатору, затем подключил все компьютеры к коммутатору Gigabit и подключил игровые консоли к маршрутизатору.

Все работает отлично, и я могу передавать файлы между компьютерами с молниеносной скоростью.

Хорошо, удачи!

2
ответ дан 25 May 2018 в 22:23

Существует библиотека под названием firehose, которая может передавать данные по нескольким сетевым устройствам одновременно. Однако он не дает вам ни одного виртуального сетевого устройства, и он не поддерживает TCP. Он предназначен для потоковой передачи видео высокого разрешения для видеоредакторов. Может быть интересно вам:

http://heroinewarrior.com/firehose.php

1
ответ дан 25 May 2018 в 22:23

Я столкнулся с подобной ситуацией и нашел это:

http://ubuntulinuxhelp.com/how-to-use-the-second-network-port-on-your-computer/ [!d1 ]

Но его несколько старый, надеюсь, это помогает.

1
ответ дан 25 May 2018 в 22:23

Использование политики «Связывание портов» и «Круг-Робин» на обоих устройствах, подключенных через неконтролируемый коммутатор, фактически почти удвоит вашу скорость передачи. Политика Round-Robin по умолчанию позволяет балансировать нагрузку на несколько устройств и возвращается к одному порту, если одно устройство не работает.

Однако, я считаю, что ваш WRT54GS является маршрутизатором и поэтому управляется, поэтому вы не получите полный выгоду от склеивания.

Предполагая, что вы должны использовать дешевый 8-портовый true-переключатель, поддерживающий политику RR, а затем подключите его к маршрутизатору, вы получите увеличенную скорость передачи данных между двумя устройствами, используя соединение через коммутатор и обычные скорости передачи в Интернете и в остальной части сети.

Вы также должны увеличить свои буферы чтения / записи, txqeueuelen и вашу сеть netcore и tcp.

1
ответ дан 25 May 2018 в 22:23

Другие вопросы по тегам:

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