URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 51962
[ Назад ]

Исходное сообщение
"Проблема с маршрутизацией"

Отправлено torbik , 27-Дек-04 01:23 
Я уже ранее писал, но так и не решил проблему...
Попробую снова..

Есть сервер под Linux Fedora Core 3.
На нем такие интерфейсы:
eth0 - внешний канал на провайдера (IP: x.x.x.x)
eth1 - локалка (IP: 10.0.0.1)
tun0 - тунель на другой сервер (IP: 10.0.5.1)

Проблема в чем, я хочу сегмент сети UA-IX пустить через провайдера, а все остальное через тунель...

У меня все получается, но...

Мне сервер "Х" анонсит через bgp - украинский сегмент - я прописываю в него гейт прова, а дефолтный оставляю 10.0.5.1 (тунель)

В iptables настраиваю POSTROUTING по интерфейсам - все клево пашет.

Но выходит маленькая трабла: почта ходит только по украинскому сегменту сети и из мира конечно же меня не пингуют и т.д. :(
Как я понимаю мне посылают запросы на IP: x.x.x.x, а я отвечаю с 10.0.5.1 из-за прописаного дефолтного гейтвея..

Как решить эту проблему?


Содержание

Сообщения в этом обсуждении
"Проблема с маршрутизацией"
Отправлено jonatan , 27-Дек-04 09:08 
А ты проверял, что ответ идет с 10.0.5.1? ИМХО он будет отвечать с x.x.x.x, но пакет уйдет в tun0. Что конкретно ты делаешь в POSTROUTING?

"Проблема с маршрутизацией"
Отправлено Beginner , 27-Дек-04 13:44 
>А ты проверял, что ответ идет с 10.0.5.1? ИМХО он будет отвечать
>с x.x.x.x, но пакет уйдет в tun0. Что конкретно ты делаешь
>в POSTROUTING?

Во-во, а tcpdump'ом посмотреть слабо?


"Проблема с маршрутизацией"
Отправлено torbik , 28-Дек-04 00:06 
>>А ты проверял, что ответ идет с 10.0.5.1? ИМХО он будет отвечать
>>с x.x.x.x, но пакет уйдет в tun0. Что конкретно ты делаешь
>>в POSTROUTING?
>
>Во-во, а tcpdump'ом посмотреть слабо?


Смотрел...

Меня пингуют:
Пакеты приходят на интерфейс eth0,
а я отвечаю из интерфейся tun0 с ip: 10.0.5.1

вот.


"Проблема с маршрутизацией"
Отправлено torbik , 28-Дек-04 00:39 
>А ты проверял, что ответ идет с 10.0.5.1? ИМХО он будет отвечать
>с x.x.x.x, но пакет уйдет в tun0. Что конкретно ты делаешь
>в POSTROUTING?


Да проверял # tetheral -i tun0
видно что ответы идут с 10.0.5.1

А с построутингом у меня следующее...
на моем сервере:
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -o tun0 -j SNAT --to-source 10.0.5.1
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -o eth0 -j SNAT --to-source x.x.x.x

на сервере куда делаю тунель:
-A POSTROUTING -s 10.0.5.1 -j SNAT --to-source y.y.y.y

y.y.y.y - внешний IP второго сервера


"Проблема с маршрутизацией"
Отправлено jonatan , 28-Дек-04 09:52 
Согласись, что если кто-то соединяется с твоим x.x.x.x, а ответ приходит от y.y.y.y, ничего работать не будет.

"Проблема с маршрутизацией"
Отправлено jonatan , 28-Дек-04 09:55 
Ответы твой сервер будет посылать с src ip x.x.x.x. Но ты делаешь SNAT.

"Проблема с маршрутизацией"
Отправлено Beginner , 28-Дек-04 14:08 
>>А ты проверял, что ответ идет с 10.0.5.1? ИМХО он будет отвечать
>>с x.x.x.x, но пакет уйдет в tun0. Что конкретно ты делаешь
>>в POSTROUTING?
>
>
>Да проверял # tetheral -i tun0
>видно что ответы идут с 10.0.5.1
>
>А с построутингом у меня следующее...
>на моем сервере:
>-A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -o tun0 -j SNAT --to-source
>10.0.5.1
>-A POSTROUTING -s 10.0.0.0/255.255.255.0 -d ! 10.0.0.0/255.255.255.0 -o eth0 -j SNAT --to-source
>x.x.x.x
>
>на сервере куда делаю тунель:
>-A POSTROUTING -s 10.0.5.1 -j SNAT --to-source y.y.y.y
>
>y.y.y.y - внешний IP второго сервера

Если у тебя 1 сервер и выпускать его надо именно из-под х.х.х.х, то можно сделать просто.

ip rule add from 10.z.z.z/32 table 10
ip route add default via (адрес на другой стороне линка х.х.х.х) table 10

Есть и другие варианты. Только надо четко представлять что хочешь