Посмотрим статус Proxy ARP (1 — включен, 0 — отключен):
cat /proc/sys/net/ipv4/conf/all/proxy_arp
Можно посмотреть на конкретном сетевом интерфейсе (где eth0 — имя сетевого интерфейса):
cat /proc/sys/net/ipv4/conf/eth0/proxy_arp
Включить Proxy ARP можно так:
sudo -i
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
Или так:
sudo sysctl net.ipv4.conf.all.proxy_arp=1
sudo sysctl net.ipv4.conf.eth0.proxy_arp=1
sudo sysctl -p
Для выключения Proxy ARP команды аналогичны, нужно лишь указать 0 вместо 1.
Сделанные выше изменения сбросятся после перезапуска системы, чтобы этого не произошло, откроем файл /etc/sysctl.conf в любом текстовом редакторе:
sudo nano /etc/sysctl.conf
И укажем:
net.ipv4.conf.all.proxy_arp=1
net.ipv4.conf.eth0.proxy_arp=1
При необходимости можно посмотреть приходящие ARP пакеты через tcpdump:
sudo tcpdump -n -i eth0 -e arp
Также есть другие параметры настройки arp, приведу пример их просмотра:
sysctl -a | grep net.ipv4.conf.*.arp
Если на коммутаторах настроена изоляция портов и вам необходимо чтобы клиенты в одном VLAN видели друг друга (в этом случае весь трафик будет ходить через сервер), то необходимо включить proxy_arp_pvlan, по умолчанию это отключено, то есть равно 0. Замечу, что на сервере с accel-ppp с включенным proxy-arp например, не нужно включать proxy_arp и proxy_arp_pvlan, так как accel-ppp сам это делает.
net.ipv4.conf.all.proxy_arp_pvlan = 0
net.ipv4.conf.default.proxy_arp_pvlan = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0
net.ipv4.conf.eth0.proxy_arp_pvlan = 0
Смотрите также мою статью:
Настройка сети в Linux