У меня есть сеть Ethernet с несколькими подключенными сетевыми картами, и я хочу убедиться, что только одна из них передает данные в течение настраиваемого интервала времени (порядка минут). Цель состоит в том, чтобы максимизировать пропускную способность и минимизировать задержку для передающего интерфейса.

Можно ли временно отключить, а затем снова включить передающую сторону ethernet mac (без перезагрузки)? Это нужно делать программно.

0
ctrl-alt-delor 10 Окт 2019 в 22:24
Не могли бы вы добавить информацию о том, что вы пытаетесь сделать/решить?
 – 
Eduardo Trápani
10 Окт 2019 в 21:01
Как вы планируете сообщить сетевому адаптеру о повторном включении? (Это может повлиять на ответ на ваш вопрос)
 – 
ctrl-alt-delor
10 Окт 2019 в 22:25
1
Это похоже на проблему XY. Выполняли ли вы какое-либо тестирование, чтобы определить, существуют ли какие-либо фактические проблемы с задержкой или пропускной способностью, или вы просто думаете, что они могут быть? Если есть проблема, достаточно ли она серьезна, чтобы оправдать многократное отключение и повторное включение одной или обеих сетевых карт? Рассматривали ли вы возможность использования единого связанного интерфейса с несколькими сетевыми картами вместо того, чтобы возиться с их отключением и включением?
 – 
cas
11 Окт 2019 в 09:18

1 ответ

Лучший ответ

Вы можете установить сетевой интерфейс в состояние «вниз», что означает, что он не будет ни передавать, ни получать. Прямая команда это

ip link set eth0 down

(где eth0 — имя вашего интерфейса) и

ip link set eth0 up

Но обычно вы хотите запускать все хуки и инициализации, поэтому вы можете использовать устаревшие команды ifup/ifdown, и я не удивлюсь, если у systemd есть собственный способ сделать это.

0
dirkt 10 Окт 2019 в 21:12
Я хочу держать сторону приема вверх.
 – 
Jim
10 Окт 2019 в 22:17
2
Вы не можете оставить только сторону приема, потому что для фактического получения каких-либо данных вам придется передавать пакеты подтверждения и т. д. Я также рекомендовал бы фактически полностью отключить интерфейс и посмотреть, насколько он «максимализирует пропускную способность и минимизирует задержку». " - вы, вероятно, удивитесь, насколько мала разница между отсутствием соединений и полным отключением интерфейса.
 – 
dirkt
10 Окт 2019 в 22:28
Отключение интерфейса также будет источником условий гонки, когда пакет отправляется, затем интерфейс отключается, поэтому любой пакет ACK от получателя просто отбрасывается, затем, когда хост пытается повторно отправить неподтвержденный пакет, нет ifface, чтобы отправить его. То, что хочет ОП, - действительно плохая идея. По этой и многим другим причинам.
 – 
cas
11 Окт 2019 в 09:22