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

Прямой вопрос : Моя материнская плата, классифицированная evga, имеет два порта 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 в 17:43

7 ответов

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

Как только вы это сделаете, вот простое руководство из вики: https://help.ubuntu.com/community/UbuntuBonding

Удачи!

3
ответ дан 27 November 2011 в 17:43

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

http://heroinewarrior.com/firehose.php

1
ответ дан 27 November 2011 в 17:43

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

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

Virtual NIC - > Load Balancing Program -> NIC 1 + 2

Этот ответ имеет то, что вы ищете, я верю: Балансировка нагрузки сети с помощью Network Manager

Я не уверен в деталях, но уверен, что это общая идея.

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

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

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

    3 Установите маршруты вручную так, чтобы *.1 был интерфейсом для доступа к *.3 и *.2 для доступа к *.4.
    . PC1 192.168.0.1 <--> 192.168.0.3 PC2 192.168.0.2 <--> 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
  1. другим вариантом является поиск способа для ssh (или терминального) клиента подключаться через определенные интерфейсы. Я пока не уверен, как это делается для клиентской стороны.

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

2
ответ дан 27 November 2011 в 17:43

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

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

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

1
ответ дан 27 November 2011 в 17:43

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

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

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

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

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

Удачи!

2
ответ дан 27 November 2011 в 17:43

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

Так что если вы скопируете 10Гб файл с одного сервера, то запустите другое копирование 10Гб на этот сервер, предполагая, что у вас также есть сеансовое соединение, то вы увидите, что обе карты максимальны. Но, что очень важно, первая копия будет потреблять только ОДНУ сетевую карту, а не обе.

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

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

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

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

13
ответ дан 27 November 2011 в 17:43

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

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

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

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

1
ответ дан 27 November 2011 в 17:43

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

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