LINUX.ORG.RU
ФорумAdmin

прицепить внешний IP-адрес для NAT

 , ,


0

2

Какие наиболее грамотные способы сделать сабж? Есть сервер, на котором крутятся виртуалочки, некоторым нужно выделять отдельные адреса. NAT реализован на хост-системе через iptables. Вышестоящий роутер ничего не знает про адреса, поэтому периодически шлёт ARP запросы.

Читал про

arp -Ds <external-address> <interface> pub
тут нужно включать net.ipv4.ip_nonlocal_bind, чтобы задавать произвольный адрес.
ip route add local <address>/<mask> table local dev <interface>
Полагаю, не сильно лучше обычного алиаса, разве что ifconfig не будет его показывать.
ip route add nat <external-address> via <internal-address>
ip rule add nat <external-address> from <internal-address>
Будет ли генерировать ARP ответы? Нужны ли оба?

Пока запилил 4 способом - через ebtables.

ebtables -t nat -A PREROUTING -p arp --arp-opcode request --arp-ip-dst <external-address> -j arpreply --arpreply-mac <mac>

А разве это

ip route add nat <external-address> via <internal-address>
ip rule add nat <external-address> from <internal-address>
ещё работает? Вроде давно уже никому не нужно и не рабочее. Но раньше на arp оно никак завязано не было.

Может я не совсем понял что надо, но вроде как должен помочь proxy-arp или создание arp-записей через команду ip neight add proxy ....

mky ★★★★★ ()

Года 3 назад, я делал one-to-one NAT через CT --notrack (xtables). Работало хорошо. iproute2 NAT уже сто лет как не работает. Насчет arp-выкрутасов сказать ничего не могу.

ValdikSS ★★★★★ ()

ebtables работает на обычных системах, в т.ч. с Xen, но категорически игнорируется под XenServer. Пока обхожусь способом «ip route add local». proxy_arp на интерфейсе + ip neigh add proxy тоже не завелось почему-то.

frozen_twilight ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.