LINUX.ORG.RU
ФорумAdmin

Пробросить реальный айпи адрес


0

0

у мну за шлюзом( линух) стоит сервак. и есть еще один риальный айпи. хочу его повесить на этот внутренний стервер. Можно ли на линухе(центос) сделать так что бы все что касалось этого айпишника заворачивалось на внутренний сервер? просто нет щас под рукой маленького свича что бы поставить. Подскажит плиз ибо в айпитейблс и в роутинге очень слаб.

Ответ на: комментарий от true_admin

а без тунеллирования? может какойто роутинг красивый сделать можно?

I00matolog
() автор топика
Ответ на: комментарий от true_admin

>Туннелерировать?

у мну

Убивать.

anonymous
()

В чем проблема?

$EXT_IP="бла.бла.бла.бла" # Второй внешний адрес
$EXT_IF="бла" # Внешний сетевой интерфейс, например, eth0 или ppp0
$INT_IP="бла.бла.бла.бла" # Внутренний адрес второго сервака
ip addr add $EXT_IP dev $EXT_IF
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d $EXT_IP -j DNAT --to-destination $INT_IP 
iptables -t nat -A POSTROUTING -o $EXT_IF -s $INT_IP -j SNAT --to-source $EXT_IP

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

>iptables -t nat -A PREROUTING -d $EXT_IP -j DNAT --to-destination $INT_IP

iptables -t nat -A POSTROUTING -o $EXT_IF -s $INT_IP -j SNAT --to-source $EXT_IP


А куда будет слать ответные пакеты хост из внутренней сетки?

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

>192.168... ? С какого из своих интерфейсов он будет их слать?
с внутреннего на внутренний шлюза, а потом заменится через nat таблицу

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

На самом деле вопрос был правильный :)

--to-destination $INT_IP вводится на сервере-пробросчике, указывая, куда пробрасывать внешний адрес.

А отвечать внутренний сервер будет настоящему отправителю, так что если наш сервер не является дефолтным шлюзом, схема работать не будет. Фиксится это легко:

INT_SERV_IP="бла.бла.бла.бла" # Внутренний адрес сервера-пробросчика
INT_IF="бла" # Его внутренний интерфейс
iptables -t nat -A POSTROUTING -o $INT_IF -d $INT_IP -j SNAT --to-source $INT_SERV_IP

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

Я голосую за тунели. Гораздо проще, прозрачнее, и легче в дебаге.

me ненавистник кучи правил в фаерволе

true_admin ★★★★★
()

И зачем рельный адрес натить???!!! Вешай на сервер алиас eth0:0 с айпиадресом и маской 255.255.255.255, а на шлюзе роут на серый адрес.

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

>И зачем рельный адрес натить???!!! Вешай на сервер алиас eth0:0 с айпиадресом и маской 255.255.255.255, а на шлюзе роут на серый адрес.

Интересно как провайдер узнает что этот ип нужно роутить на шлюз топикстартера. Я то подозреваю что там адреса из одной подсети. И еще интересно как пакет с серым src ip куда то дойдет. Тут если без ната, то просто бриджевать интерфейсы, и тогда реал ип повесить на интерфейс внутреннего сервера, только это костыль жуткий, если «внутренних» серверов не один, уж лучше нат сделать. Если там нет ftp и войпа то нат совсем безпроблемный.

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

мне с него только веб и почту отдать надо и все

I00matolog
() автор топика
Ответ на: комментарий от I00matolog

вообщем сделал нат и повесил алиасом на внешний интерфейс второй айпишник - ссхой на внутренний заходит всьок. прописал в настройках домена IN A на этот айпишник новый. сутки прошли и теперь когда пытаюсь вломится на новый адрес(веб) оно все равно редиректит на старый айпишник

I00matolog
() автор топика

если:
$in_int - интерфейс центоса в сторону внутреннего сервера
$real_ip - дополнительный реальный адрес
$int_ip - адрес интерфейса на центосе который смотрит во внутреннюю сеть
$ext_int - интерфейс которым центос смотрит в сторону провайдера
$ext_mac - MAC-адрес интерфейса которым центос смотрит в сторону провайдера
$inthost_int - интерфейс на внутреннем сервере которому надо $real_ip

то (для центоса):
#маршрутизируем дополнительный реальный адрес во внутреннюю сеть

route add -host $real_ip dev $in_int

# отдаем серверу провайдера свой мак в качестве мака для $real_ip для
# того чтобы весь трафик попадал к нам, а мы его уж потом отправим
# внутрь(при условии что у провайдера $real_ip смаршрутизирован в тот
# же ethernet сегмент что и адрес на $ext_int)

arp -H ether -i $ext_int -s $real_ip $ext_mac pub

то (для сервера которому надо $real_ip):
# поднимаем адрес на интерфейсе которым смотрит в сторону центоса с
# маской 255.255.255.255, хоть основным хоть дополнительным адресом,
# не важно, лишь бы интерфейс в апе был, я дак бы конечно основным
# поднял чтобы трафик точно с этого адреса уходил.

ifconfig $inthost_int $real_ip netmask 255.255.255.255

#прописываем маршрут для исходящего трафика

route add -host $int_ip dev $inthost_int
route add default gw $int_ip

При такой схеме всё будет тихо и спокойно маршрутизироваться и не
надо лохматить бабушку со всякими натами и прочим делом - не тот
случай.
Всякие орания что это не работает восприму только с аргументами ибо схема работает - проверено много раз.

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

День добрый. Столкнулся с аналогичной проблемой, что и автор треда. Сделал по вашей инструкции, соединения извне приходят, но исходящие соединения почему-то числятся от первого адреса маршрутизатора, а не от дополнительного. Не подскажете, как быть?

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

присоединяюсь. на втором сервере ( за шлюзом) стоит фря и както нехочет воспринимать последние две команды

I00matolog
() автор топика
Ответ на: комментарий от The_Ketchup

вообщем не работает. Сервер внутренний - это фрибсд. И если следовать вашей инструкции route add -host $int_ip dev $inthost_int route add default gw $int_ip

что по сути для фри значит route add default $int_ip а учитывая то что фря стоит за линухом - то $int_ip ( внутренний айпи линухового шлюза) и так по умолчанию является шлюзом для этого внутреннего сервера(фри).

I00matolog
() автор топика
Ответ на: комментарий от anonymous

Значит у вас скорее всего НАТ написан на сервере-шлюзе. по поводу фри и синтаксиса не скажу ничего ибо не под руками.

А эти две команды route, которые прописывают роут до шлюза через интерфейс, нужны в общем тогда когда у вашего внутреннего сервера есть только внешний адрес и он единственный.

The_Ketchup ★★
()

А в чём проблема, если он реальный? Главное, чтобы провайдер правильно прописал роутинг. Тогда просто роутим реальный адрес и всё.
Ну или DNAT.

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