Как включить или отключить Proxy ARP в Linux

Посмотрим статус 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

Оставьте комментарий

Добавить комментарий