Есть два основных способа сделать то, что вы пытаетесь сделать: маршрутизация и мостовое соединение.
Ни один из них не использует proxy_arp
. proxy_arp
это хак, который вы можете использовать, если некоторые части вашей сети думают, что вы маршрутизируете, а другие - что вы соединяете. Это последнее средство, которое вы должны использовать только тогда, когда вы исключили все другие варианты.
Моя рекомендация заключается в том, что вам необходимо полностью понять решение по маршрутизации и мостовому соединению и понять, почему ни один из них не будет работать для вас, прежде чем вы прибегнете к нему proxy_arp
.
Ваш вариант использования не похож на тот, где это proxy_arp
было бы необходимо.
Решение проблемы с мостовым соединением
WiFi использует MAC-адреса на двух уровнях стека. У вас будет пара MAC-адресов для конечных точек, как в проводном Ethernet. И у вас будет пара MAC-адресов, указывающих конечные точки беспроводного соединения.
К сожалению, исходный стандарт WiFi предполагал, что конкретная пара из этих четырех MAC-адресов всегда будет идентична, и это предположение неверно при соединении. Таким образом, новый стандарт под названием WDS был введен, чтобы исправить это.
Таким образом, для настройки мостового соединения необходимо убедиться, что оборудование на обоих концах вашего Wi-Fi-соединения поддерживает WDS и что оно включено. Затем вам нужно отменить те два sysctl
изменения, которые вы сделали, потому что они не используются для соединения.
Наконец, вам нужно настроить мост на Pi, который объединяет проводной и беспроводной интерфейсы в мост. Если вы хотите, чтобы Pi также говорил по IP, вы настраиваете его на интерфейсе моста, а не на базовых физических интерфейсах.
Это куча вещей для настройки, и существует риск того, что WDS не поддерживается аппаратным обеспечением.
Решение проблемы с маршрутизацией
Если вы хотите выполнить маршрутизацию, вам все равно нужно отменить proxy_arp
настройку. Однако net.ipv4.ip_forward = 1
настройка верна для настройки маршрутизации.
На Пи нужно настроить два сетевых интерфейса с разными префиксами. Беспроводное соединение, которое вы уже настроили 10.0.0.0/24
, вероятно, может остаться без изменений, так как эта часть уже работает.
Однако проводной интерфейс необходимо настроить с другим префиксом. Возможный выбор есть 10.0.1.0/24
. И вы можете назначить 10.0.1.1
на проводной интерфейс на Pi.
Принтер может быть настроен на статический IP-адрес, например, 10.0.1.2
или вы можете настроить его динамически, что потребует установки DHCP-сервера на Pi, который раздает адреса в 10.0.1.1
префиксе.
Наконец, вам нужно сообщить существующему маршрутизатору об этой новой сети, добавив запись в таблицу маршрутизации. В конфигурации на существующем маршрутизаторе добавьте запись таблицы маршрутизации для префикса 10.0.1.0/24
(альтернативно записанного как 10.0.1.0/255.255.255.0
) с адресом шлюза 10.0.0.31
. Вы должны убедиться, что адрес 10.0.0.31
каким-то образом остается неизменным, иначе ваша запись в таблице маршрутизации станет неправильной.