Как Linux определяет, какой сетевой интерфейс использовать, когда оба подключены к одной сети?
Обратите внимание, что это не вопрос маршрутизации. Я знаком с тем, как это работает. Это, если, скажем, мой ноутбук подключен к моему беспроводному маршрутизатору через мою Ethernet-карту и мою беспроводную карту, или если у меня есть две Ethernet-карты, подключенные к одному маршрутизатору.
По опыту могу сказать, что в моем случае мой ноутбук предпочитает Ethernet-карту (eth0) по беспроводной (eth1 - я знаю, что это не типичное название для беспроводного интерфейса, но это то, что у меня есть), но я был интересно, как это решает это? Если он просто выбирает интерфейс с наименьшим номером, что если два варианта, скажем, eth0 и wlan0?
Редактировать: @Nils указал, что это все еще вопрос маршрутизации, и таблица маршрутизации предоставляет ответ (см. Его ответ). Это все еще оставляет мой первоначальный вопрос, но в другой форме. От чего зависит порядок записей в таблице маршрутизации в Linux? Например, вот моя таблица маршрутизации при подключении к обоим интерфейсам:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Понятно, что eth0 имеет более высокий приоритет в таблице, чем eth1 для мест назначения в локальной сети, но решено ли это в Linux по задержке канала, пропускной способности канала, даже имени интерфейса или как? (Тот же вопрос может возникнуть, почему eth0 является интерфейсом для маршрута по умолчанию.)
источник
Не обидеть вас, но если вы знакомы с частью маршрутизации вашего стека связи TCP / IP на любом компьютере с Linux, вы также должны знать, что результаты подключения двух сетевых интерфейсов к одной и той же сети в лучшем случае непредсказуемы. На вашем месте я бы отключил беспроводную связь на своем ноутбуке или выполнил
ifconfig eth0 down
команду (при условии, что eth0 - это ваше проводное Ethernet-соединение), чтобы отключить его. Linux может обладать некоторым интеллектом, чтобы делать одинаковый выбор для каждого пакета, но в случае сбоя сети в какой-то момент может привести к неожиданным результатам. Мои 2 цента.источник