Добрый день.Имеется:
Сервер шлюз в локальной сети (Центрального офиса) вида 192.168.70.0/24. Сервер раздает инет и по OpenVPN соединяется с сервером филиала, для доступа к подсети (Филиала) вида 192.168.2.0/24Шлюз в ЦО:
eth0 - реальный ип 123.123.123.123
eth1 - локальный ип 192.168.70.1
tun0 - IP OpenVPN тунеля 10.9.0.14 который позволяет общаться с под сетью филиала 192.168.2.0/24Необходимо:
Что бы при открытии 123.123.123.123 (реальный ип ЦО) открывался веб ресурс 192.168.2.10 (сервер в филиале).Второй день бьюсь над этой задачей и ничего не выходит. Делаю так:
$IPT -t nat -A PREROUTING --dst 123.123.123.123 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.10
iptables -t nat -A POSTROUTING --dst 192.168.2.10 -p tcp --dport 80 -j SNAT --to-source 192.168.70.1
iptables -t nat -A OUTPUT --dst 123.123.123.123 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.10
$IPT -I FORWARD 1 -i eth0 -o eth1 -d 192.168.2.10 -p tcp -m tcp --dport 80 -j ACCEPT
>[оверквотинг удален]
> eth0 - реальный ип 123.123.123.123
> eth1 - локальный ип 192.168.70.1
> tun0 - IP OpenVPN тунеля 10.9.0.14 который позволяет общаться с под сетью
> филиала 192.168.2.0/24
> Необходимо:
> Что бы при открытии 123.123.123.123 (реальный ип ЦО) открывался веб ресурс 192.168.2.10
> (сервер в филиале).
> Второй день бьюсь над этой задачей и ничего не выходит. Делаю так:
> $IPT -t nat -A PREROUTING --dst 123.123.123.123 -p tcp --dport 80 -j
> DNAT --to-destination 192.168.2.10на шлюзе в ЦО маршрут к 192.168.2.0/24 есть?
> iptables -t nat -A POSTROUTING --dst 192.168.2.10 -p tcp --dport 80 -j
> SNAT --to-source 192.168.70.1в 192.168.2.0/24 маршрут к 192.168.70.1 есть?
> iptables -t nat -A OUTPUT --dst 123.123.123.123 -p tcp --dport 80 -j
> DNAT --to-destination 192.168.2.10
> $IPT -I FORWARD 1 -i eth0 -o eth1 -d 192.168.2.10 -p tcp
> -m tcp --dport 80 -j ACCEPTесли 192.168.2.10 за tun0, то почему -o eth1?
для ответных пакетов разрешение есть?
OpenVPN о 192.168.2.0/24 знает (iroute), если сервер OpenVPN в ЦО конечно? может с tap начинать будет проще?
>может с tap начинать будет проще?Надо начинать с освоения команды tcpdump и напряжения мозга знаниями о том, почему и как бегают IP-пакетики.
Затем освоить тему "линукс и два провайдера" и провести по ней практическое занятие на сервере филиала.
> $IPT -t nat -A PREROUTING --dst 123.123.123.123 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.10
> iptables -t nat -A POSTROUTING --dst 192.168.2.10 -p tcp --dport 80 -j SNAT --to-source 192.168.70.1
> iptables -t nat -A OUTPUT --dst 123.123.123.123 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.10
> $IPT -I FORWARD 1 -i eth0 -o eth1 -d 192.168.2.10 -p tcp -m tcp --dport 80 -j ACCEPTТретья строчка лишняя. Вроде DNAT для OUTPUT вообще не делают.
Ну и поддерживаю вышесказанное:
- доступен ли на данный момент 192.168.2.10 с 192.168.70.1?
- что выдаёт tcpdump на маршрутизаторе в ЦО, маршрутизаторе в филиале, на веб сервере?---
Ещё как вариант в такой схеме (если отпадёт желание разбираться с NAT) можно поставить реверс-прокси. Какой-нибудь squid или nginx. Для них несложно найти типовые конфиги из серии копировал-вставил-подписал нужные адреса.
> Третья строчка лишняя. Вроде DNAT для OUTPUT вообще не делают.ошибаетесь, делают для локально сгенерированных пакетов
например приходилось временно перенаправлять все ldap запросы на другой сервер (чтобы не менять настройки в 100500 сайтах)
# iptables -t nat -I OUTPUT -p tcp -d 192.168.210.104 --dport 389 -j DNAT --to-destination 172.16.1.2:389
>[оверквотинг удален]
> (сервер в филиале).
> Второй день бьюсь над этой задачей и ничего не выходит. Делаю так:
> $IPT -t nat -A PREROUTING --dst 123.123.123.123 -p tcp --dport 80 -j
> DNAT --to-destination 192.168.2.10
> iptables -t nat -A POSTROUTING --dst 192.168.2.10 -p tcp --dport 80 -j
> SNAT --to-source 192.168.70.1
> iptables -t nat -A OUTPUT --dst 123.123.123.123 -p tcp --dport 80 -j
> DNAT --to-destination 192.168.2.10
> $IPT -I FORWARD 1 -i eth0 -o eth1 -d 192.168.2.10 -p tcp
> -m tcp --dport 80 -j ACCEPTДобрый день!
Такая же задача, уже всею голову сломал. Вам удалось победить?