Я хочу переключить основной сетевой интерфейс моего компьютера с Ubuntu, я ссылался на это: http://www.cyberciti.biz/faq/linux-setup-default-gateway-with-route-command/.

Вот мои настройки для экспериментов: я использую маршрутизатор для обеспечения соединения как для wlan0, так и для eth0, с разными IP-адресами (192.168.1.115 и 192.168.1.130 соответственно, шлюз 192.168.1.1). Обычно eth0 является значением по умолчанию, поэтому я делаю:

route delete gw 192.168.1.1 eth0
route add gw 192.168.1.1 wlan0

Интересно, что хотя 192.168.1.115 в настоящее время является доминирующим IP-адресом, я вижу входящий трафик, захваченный в eth0 с 192.168.1.115 в качестве IP-адреса назначения, и исходящий пакет в wlan0, как и ожидалось.

Почему это происходит? И как правильно переключать интерфейс?

Благодарю.

1 ответ1

0

По умолчанию Linux использует модель "слабого хоста" в IPv4; то есть он отвечает на запросы ARP для любого адреса, назначенного системе, даже если они пришли через другой интерфейс.

Поэтому, когда маршрутизатор передает запрос ARP для .115 , ваш хост получает его через оба интерфейса, отправляет ответы через оба, и маршрутизатор сначала получает ответ через Ethernet.

Есть две переменные sysctl, чтобы изменить это поведение:

  • net.ipv4.conf.*.arp_filter

    Описано в документации / сети / ip-sysctl.txt:1032.

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

  • net.ipv4.conf.*.arp_ignore

    Описано в документации / сети / ip-sysctl.txt:1082.

    1 - отвечать только в том случае, если целевой IP-адрес является локальным адресом, настроенным на входящем интерфейсе

Например, вы можете установить следующее в sysctl.d:

net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1

(Обратите внимание, что я не совсем уверен, какой параметр подходит в какой ситуации.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .