LINUX.ORG.RU
ФорумAdmin

Смаршрутизировать внешний IP в LAN


0

2

http://s019.radikal.ru/i637/1210/5d/bb54ac48ea95.jpg

Есть сеть (схему смотрите по ссылке). Провайдер выделил подсеть внешних IP xxx.xxx.192.240/29 при этом xxx.xxx.192.241 является шлюзом. Я выбрал в качестве внешнего IP сервера xxx.xxx.192.242 netmask 255.255.255.248 - и всё без проблем, интернет работает. Теперь я хочу компьютеру в LAN c именем WORKPLACE1 тоже дать внешний IP xxx.xxx.192.243. Прописал маршрут:

route add -host xxx.xxx.192.243 dev eth1

Полностью конфиг /etc/network/interfaces такой. Дистрибутив - Debian.

auto lo eth0 eth1 eth1:1 eth2

iface lo inet loopback

iface eth0 inet static
   address xxx.xxx.192.242
   netmask 255.255.255.248
   gateway xxx.xxx.192.241
   up ipt-restore
   up route add -host xxx.xxx.192.243 dev eth1

iface eth1 inet static
   address 192.168.32.254
   netmask 255.255.255.0

iface eth1:1 inet static
   address 10.10.10.254
   netmask 255.255.255.0

iface eth2 inet static
   address 192.168.48.254
   netmask 255.255.255.0

На WORKPLACE1 прописал:

auto lo eth0

iface lo inet loopback

iface eth0 inet static
   address xxx.xxx.192.243
   netmask 255.255.255.255
   up route add -host 10.10.10.254 dev eth0
   up route add default gw 10.10.10.254
Интернет работает. Захожу браузером на 2ip.ru - говорит что мой ip xxx.xxx.192.242, а это неправда На SERVER отключаю трансляцию адресов и портов для xxx.xxx.192.243
iptables -t nat -I POSTROUTING 1 -s xxx.xxx.192.243 -j ACCEPT
iptables -t nat -I PREROUTING 1 -d xxx.xxx.192.243 -j ACCEPT
Интернет на WORKPLACE1 перестаёт работать

Что не так?

★★★★★

Провайдер не знает, что у вас кто-то использует xxx.xxx.192.243, потому что нет ответов на его arp-запросы. Либо на WORKPLACE1 делать адрес 10.x.x.x, xxx.xxx.192.243 добавлять на интерфейс шлюза и DNAT/SNAT, либо прописать proxy arp для адреса xxx.xxx.192.243 на eth0 шлюза («ip neight add proxy...»).

mky ★★★★★ ()

Правило SNAT, помимо выходного интерфейса, должно ориентировать на исходящий адрес. В вашем случае это 192.168.32.0/24 и 10.10.10.0/24 (возможно, ошибся с размерностью):

iptables -t nat -A POSTROUTING -o eth0 --src 192.168.32.0/24 -j SNAT --to-source xxx.xxx.192.242
Таким образом оно не работает для xxx.xxx.192.243.

Не используйте фильтрацию в таблице nat: для этого есть filter.

markevichus ★★★ ()
Ответ на: комментарий от markevichus

markevichus
вашему совету последовал, но интернет на WORKPLACE1 всё равно не заработал.

Про proxy arp не слышал, но буду гуглить.

sunny1983 ★★★★★ ()
Ответ на: комментарий от markevichus

Надеюсь тема ещё продолжает отслеживаться, потому что не хочу чтобы вопрос остался без ответа.

Если proxy ARP это действительно единственный способ присвоить хосту WORKPLACE1 физический адрес для xxx.xxx.192.243. Единственный ли? Можно при помощи bridge, ppp, но это тоже - усложнение задачи будет? А можно ли при помощи route?

Вот нашёл статью http://xgu.ru/wiki/Proxy_ARP
Предлагается давать команду вида «arp -v -Ds eastasia.1984.lan eth0 pub».
Я читал man arp, это инструмент для прямой работы с протоколом ARP, который используется только для одного - сопоставления MAK-адресов IP-адресам, знаю про команду «arp -a», которая эту самую таблицу сопоставления и выводит, но что делают ключи "-v -Ds" так и не понял.

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