Назад | Перейти на главную страницу

Пинг одного интерфейса от другого

У меня есть компьютер (под управлением Linux) с 2 интерфейсами eth0 и eth1.
eth0 с адресом 10.0.0.100/24
eth1 с адресом 192.168.1.100/24
Они подключены к 2 разным сетям (10.0.0.0/24 и 192.168.1.0/24), эти сети связаны с маршрутизатором. Другие компьютеры на 10.0.0.0 могут пинговать компьютер на 192.168.1.0.

Но если я на этом компьютере попробую

ping -I eth0 192.168.1.100

Я не получаю ответа. Если я слушаю на eth1, я получаю запрос icmp от 10.0.0.100, но он не отправляет никакого ответа.

Я пытался установить несколько статических маршрутов, но ничего не изменилось. Я также прочитал о ядре rp_filter и изменил его на 2 (и 0, и 1), но тоже не имел никакого значения.

Кто-нибудь знает, почему и как это решить?

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

Самое простое решение - отключить фильтрацию обратного пути. По умолчанию linux отфильтровывает пакеты, поступающие через интерфейс, который, по его мнению, должен был поступать через другой интерфейс (поскольку пакет соответствует подсети другого интерфейса).

Сделать это

echo 'net.ipv4.conf.eth0.rp_filter = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.eth1.rp_filter = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.lo.rp_filter = 0' >> /etc/sysctl.conf
sysctl -p

Это добавляет параметр в файл конфигурации sysctl, а затем перезагружает конфигурацию. Вы также можете временно отключить настройку, выполнив echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter.

Ответ Патрика

Сделать это

echo 'net.ipv4.conf.eth0.rp_filter = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.eth1.rp_filter = 0' >> /etc/sysctl.conf
echo 'net.ipv4.conf.lo.rp_filter = 0' >> /etc/sysctl.conf
sysctl -p

у меня не работал на Ubuntu 16.04.

Это сработало:

sysctl -w net.ipv4.conf.all.rp_filter=0

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