Два порти Ethernet на материнській платі. Як я можу отримати подвійну пропускну здатність?


16

Пряме запитання : Моя материнська плата evga має два порти Ethernet. Я хочу використовувати їх одночасно для підвищення швидкості віддаленого з'єднання. (Так, для програмування дистанційно). Як це зробити? В даний час / і т.д. / мережа / інтерфейси:

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) - як я максимізую швидкість передачі даних між комп’ютерами?

Зверніть увагу: мене не цікавить балансування навантаження - виправте мене, якщо я помиляюся, але я хочу зв’язати два канали разом, щоб поле з'явилося так, ніби він має одне з'єднання, яке вдвічі швидше.


2
Я думаю, що перехід через комутатор обмежує будь-яку вигоду, яку ви отримаєте від використання паралельно 2 кабелів Ethernet. Можливо, якщо ви використали два перемикачі, це може якось мати сенс. Я думаю, що єдина можлива вигода, яку ви отримаєте, - це прямий зв’язок.
WalterJ89

1
Зазвичай в домашньому офісному зв’язку вузьким місцем є Інтернет-провайдер, тому агрегація посилань на двох кінцях посилання не значно покращиться.
бітвелдер

Відповіді:


3

Важливо зауважити, що для використання функцій командування NIC перемикач, до якого ви підключені, повинен підтримувати об'єднану команду aka LACP. Ви можете знайти такий перемикач шляхом пошуку на NewEgg.com тощо.

Коли ви переконаєтесь, що ось простий посібник із вікі: https://help.ubuntu.com/community/UbuntuBonding

Удачі!


Так, удачі, адже, хоча це буде працювати, це не призведе до збільшення швидкості.
Scaine

13

Навряд чи зв’язок ваших інтерфейсів призведе до збільшення швидкості. Як правило, навіть якщо ви успішно зв’язуєте інтерфейси І налаштовуєте комутатор для підтримки ефірного каналу), ви все одно виявите, що для кожної пари сеансу TCP / UDP джерела / призначення TCP / UDP використовується лише один інтерфейс.

Отже, якщо ви копіюєте 10Gb-файл з одного сервера, а потім запускаєте іншу копію 10Gb на цей сервер, припускаючи, що у вас також є зв’язок на основі сеансу, ви побачите, що обидві карти викладені в максимум. Але головне, що перша копія споживатиме лише ОДНУ мережеву карту, а не обидві.

Це, безумовно, так з ефірним каналом Cisco. Насправді, ефірний канал Cisco навіть не заснований на сеансі, це заснований на джерелі / призначенні, тому в моєму прикладі вище ви навіть не отримаєте збільшення швидкості - ваша друга копія повинна бути на зовсім іншому сервері, перш ніж ви побачили обидва використовувані картки. Можливо, у вас є кращий перемикач, який дозволяє каналу порту використовувати обидві карти одночасно в одному сеансі TCP / UDP, але це вимагатиме декількох привабливих маніпуляцій з Arp / MAC, і я не маю уявлення, чи підтримує це модуль зв'язку в Linux.

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

Якщо ви вирішили продовжувати це, я знайшов цю п'ятирічну статтю, яка все ще здається актуальною. Крім того, ця трирічна стаття охоплює ту саму основу.

Сподіваюся, це допомагає.


2

Я думаю, що перехід через комутатор обмежує будь-яку вигоду, яку ви отримаєте від використання 2-х кабелів Ethernet паралельно. Якщо перемикач не швидший, ніж у ваших двох NIC, тоді ви можете побачити збільшення швидкості.

Програма Load Balance - це те, що ви шукаєте. Вам не доведеться "завантажувати баланс", якщо ви цього не хочете, але це найпростіший спосіб злити з'єднання, про які я знаю. Ідея не надто складна

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

У цій відповіді є те, що ви шукаєте. Я вважаю: балансування навантаження в мережі з Менеджером мережі

Я не впевнений у специфіці, але впевнений, що це загальна ідея.

Якщо картки NIC істотно менш потужні, ніж ваш маршрутизатор / комутатор, єдина користь, яку ви, мабуть, отримаєте - це пряме з'єднання між двома комп'ютерами, або паралельне з'єднання цілком. Але теорія та практика не завжди спрацьовують.

Єдиний спосіб, який я можу придумати, щоб перевірити, чи NIC є вузьким місцем у вашій системі, - це зробити тест швидкості між кожним комп'ютером, використовуючи всі 4 NIC. Я можу дати вам загальну ідею, як це зробити, але конкретні речі для Ubuntu, які мені знадобляться.

  1. Встановіть для кожного NIC свою власну 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 файли з ПК 1 до обох інтерфейсів на ПК 2, і кожен файл буде проходити іншим маршрутом. Якщо передача з двома з'єднаннями буде швидшою, ніж лише одним .. (сподіваємось вдвічі швидшим), то у вас може бути щось.


2

Я не думаю, що ви сказали, чи використовуєте ви Gigabit NIC чи ні, я здогадуюсь, що ви є, оскільки у вас є 2 NIC, і тому, ймовірно, материнська плата для ігор.

Оскільки це так, якщо ви намагаєтеся отримати базу 2x100, то вам краще придбати дешевий гігабітний комутатор 4-8 порт і підключити його до свого інтернет-роутера. Тоді ви можете підключити всі комп’ютери, на яких працює Ethernet, до цього комутатора та все ще матимуть робочий wifi та Інтернет на всіх своїх комп’ютерах.

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

Єдина проблема полягала в тому, що маршрутизатор мав 100 баз на портах Ethernet. Тож за $ 40 я купив 5-портовий гігабітний комутатор, підключив його до маршрутизатора, а потім підключив усі мої комп’ютери до гігабітного вимикача та підключив свої ігрові консолі до маршрутизатора.

Все чудово працює, і я можу переносити файли між комп’ютерами з блискавичною швидкістю.

Ну удачі!


1

Існує бібліотека під назвою firehose, яка може одночасно переносити дані через декілька мережевих пристроїв. Однак він не дає вам жодного віртуального мережевого пристрою і не підтримує TCP. Він призначений для передачі відео з високою пропускною здатністю для відеоредакторів. Можливо, вам буде цікаво:

http://heroinewarrior.com/firehose.php



1

Використання політики Port Bonding та Round-Robin на обох пристроях, підключених через неконтрольований комутатор, насправді майже подвоїть вашу швидкість передачі. За замовчуванням політика "Round-Robin" за замовчуванням завантажує балансування на декількох пристроях і повертається до однопортового, якщо один пристрій виходить з ладу.

Однак я вважаю, що ваш WRT54GS - це маршрутизатор і тому керований, тому ви не отримаєте повну користь від зв'язку.

Якщо припустити, що ви використовуєте дешевий 8-портовий справжній комутатор, який підтримує політику RR, а потім підключити його до маршрутизатора, ви отримаєте підвищену швидкість передачі між двома пристроями, використовуючи зв'язок через комутатор і нормальну швидкість передачі в Інтернет та іншу частину мережа.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.