ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [mdk-re] routing question
@ 2001-07-19 13:51 Maxim Savrilov
  2001-07-19 14:36 ` Vyt
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Savrilov @ 2001-07-19 13:51 UTC (permalink / raw)
  To: mandrake-russian

Привет всем.
Вопрос такой возник.
Ситуация: есть 3 сетки, одна из которых внутренняя (с реальными
ip), а другая Интернет ;)(провайдер, вернее) и третья.
Обозначим их Инет- net0, Внутрення - net1, третья - net2
у net1 есть машина-шлюз(у которой есть 3 интерфейса: eth1 смотрит
в net1, eth0 выходит на провайдера и eth2, смотрит в одну из
подсетей net2). Так вот, за трафик net0->net1 берут деньги
(странно, правда?), за net2->net1 денег не берут.
На шлюзе поднят маскарадинг from net1 to net2 (так как денег не
берут только за трафик net2->Шлюз, а надо чтоб все машины могли
ходить в бесплатную сеть)
и прописаны static_routes from net1 to net2 via eth2 (то-есть в
бесплатную сеть ходить принудительно через бесплатный интерфейс)

Проблема собственно: сервер имеет ip в каждой из указанных сетей
и когда из net2 пытаешься достучаться до него по ip из net0 или
net1, то ничего не приходит обратно, так как он получает пакеты
на один интерфейс, а отвечает через другой, как ему и прописано в
static routes. Петля возникает, софтина из net2 посылает пакеты
на один ip, а ответы ей приходят с другово, а тот ip, что по ее
мнению должен ответить, молчит.
tcpdump показывает, например, что  icmp: echo request пакеты
приходят на eth0, например, и тут же показывает что с eth2 уходят
icmp echo reply

И вопрос собственно, как можно на шлюзе добиться того, чтобы на
пакеты, которые пришли из net2 на eth0 ответы уходили тоже через
eth0, несмотря на static routes?


--
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and the Ugly)." (By Matt Welsh)

Novocybersk, отделение системного администрирования
Новосибирск, проспект К. Маркса-20, корпус 1, палата 310.
тел. (383-2) 46-13-84 (31-19)
--






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [mdk-re] routing question
  2001-07-19 13:51 [mdk-re] routing question Maxim Savrilov
@ 2001-07-19 14:36 ` Vyt
  2001-07-19 15:36   ` Maxim Savrilov
  0 siblings, 1 reply; 6+ messages in thread
From: Vyt @ 2001-07-19 14:36 UTC (permalink / raw)
  To: mandrake-russian

On Thu, 19 Jul 2001 17:12:20 +0700
Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:

> Привет всем.
> Вопрос такой возник.
> Ситуация: есть 3 сетки, одна из которых внутренняя (с реальными
> ip), а другая Интернет ;)(провайдер, вернее) и третья.
> Обозначим их Инет- net0, Внутрення - net1, третья - net2
> у net1 есть машина-шлюз(у которой есть 3 интерфейса: eth1 смотрит
> в net1, eth0 выходит на провайдера и eth2, смотрит в одну из
> подсетей net2). Так вот, за трафик net0->net1 берут деньги
> (странно, правда?), за net2->net1 денег не берут.
> На шлюзе поднят маскарадинг from net1 to net2 (так как денег не
> берут только за трафик net2->Шлюз, а надо чтоб все машины могли
> ходить в бесплатную сеть)
> и прописаны static_routes from net1 to net2 via eth2 (то-есть в
> бесплатную сеть ходить принудительно через бесплатный интерфейс)

Ни фига не понятное описание.
То, что за провайдер->внутр.сеть берут деньги, понятно, остальное
 - нет.
net2 тоже Инет? Зачем маскарадинг net1->net2 ? За net1->net2 тоже 
деньги берут? Как можно в бесплатную сеть ходить через платный 
интерфейс? У них пересекается адресное пространство?
Кстати, однозначность терминологии очень упрощает понимание.

> Проблема собственно: сервер имеет ip в каждой из указанных сетей
> и когда из net2 пытаешься достучаться до него по ip из net0 или
> net1, то ничего не приходит обратно, так как он получает пакеты
> на один интерфейс, а отвечает через другой, как ему и прописано в
> static routes. Петля возникает, софтина из net2 посылает пакеты
> на один ip, а ответы ей приходят с другово, а тот ip, что по ее
> мнению должен ответить, молчит.
> tcpdump показывает, например, что  icmp: echo request пакеты
> приходят на eth0, например, и тут же показывает что с eth2 уходят
> icmp echo reply

Так они все равно должны уходить с адресом отправителя = ip, на
который приходит echo request, хоть и через eth2, все правильно.

> И вопрос собственно, как можно на шлюзе добиться того, чтобы на
> пакеты, которые пришли из net2 на eth0 ответы уходили тоже через
> eth0, несмотря на static routes?

Можно поставить source routing с помощью iproute2.
Но это мало что даст, интерфейс определяется по ip-назначения, 
не знаю, можно ли связать пакет-ответ с пакетом-запросом.
Странная задача, не понял смысла.

<skipped>

-- 
Regards, Vyt
mailto:vyt@vzljot.ru



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [mdk-re] routing question
  2001-07-19 14:36 ` Vyt
@ 2001-07-19 15:36   ` Maxim Savrilov
  2001-07-19 17:26     ` Vyt
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Savrilov @ 2001-07-19 15:36 UTC (permalink / raw)
  To: mandrake-russian

Vyt wrote:

> On Thu, 19 Jul 2001 17:12:20 +0700
>
> Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:
>
<поскипано мной>

> Можно поставить source routing с помощью iproute2.
>
> Но это мало что даст, интерфейс определяется по ip-назначения,
>
> не знаю, можно ли связать пакет-ответ с пакетом-запросом.
>
> Странная задача, не понял смысла.
>
Пытался ответьть, да лучше заново напишу. Заодно задачу упрощу.
представьте 2 сети. Пусть сеть1-платная сеть провайдера, сеть2
-бюджетная сеть.
Адресные пространства не пересекаются(сеть1 * сеть2=0).
Моя машина имеет 2 интерфейса и 2 ip адреса в каких-то подсетях для
каждой из этих сетей(ну как обычно).

За трафик с одной из сетей(1) берут деньги, с другой(2) не берут
(собственно второй интерфейс появился потому, что удалось доказать
провайдеру, что глупо платить за пользование локальной сетью(сеть2)
как за пользование Интернет, а плата идет за трафик в точке
подключения к шлюзу1. Подразумевается, что машина через интерфейс2
ходит только в сеть2, да так оно и есть, потому что связь через шлюз2
отвратительная).

Для сети 2 прописаны static routes(так как интерфейс2 смотрит всего
лишь на одну из подсетей сети2, а дефолтом все идет на сеть1).
Так вот, если кто-то(хост2) из сети 2 пингует машину по ip1, то ответы
ему приходят через интерфейс2 (что совершенно правильно) и от ip2. И
тут хост2 затыкается ибо пингует он один ip, а ответ приходит с
другого (на самом деле это одна машина, но он-то этого не знает).
Пакеты с неверного ip хост2 отбрасывает, а с верного он никогда не
дождется.
Так можно ли на этой самой многострадальной машине с двумя ip адресами
сделать так, чтобы пакеты, пришедшие на интерфейс1, но из сети 2,
обарабатывались как-то, не знаю как, чтобы разрубить этот узел?

и схема

|-------------------------------------------------|

|               интернет                          |

|-------------------------------------------------|

    |                                |

    |                                |

 |--------|                    |------------|

 | $шлюз1$|-не прямой,но линк- |   шлюз2    |

 |--------|                    |------------|

     |                               |

|$$$$$$$$$$$$$$$$$$$$$$|        |----------------------------|

|сеть1                 |        |сеть2                       |

|$$$$$$$$$$$$$$$$$$$$$$|        |----------------------------|

                    \               /

                      \ip1     ip2/

                     |---------------|

                     | Машина        |

                     |---------------|

P.S. это не реяльная задача, так что не надо пинать, что это совсем не то, о чем я спрашивал в первый раз.

Спасибо.

--
3rd Law of Computing:
    Anything that can go wr
fortune: Segmentation violation -- Core dumped

Novocybersk, отделение системного администрирования
Новосибирск, проспект К. Маркса-20, корпус 1, палата 310.
тел. (383-2) 46-13-84 (31-19)
--






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [mdk-re] routing question
  2001-07-19 15:36   ` Maxim Savrilov
@ 2001-07-19 17:26     ` Vyt
  2001-07-20 16:49       ` Maxim Savrilov
  0 siblings, 1 reply; 6+ messages in thread
From: Vyt @ 2001-07-19 17:26 UTC (permalink / raw)
  To: mandrake-russian

On Thu, 19 Jul 2001 18:57:15 +0700
Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:

> Vyt wrote:
> 
> > On Thu, 19 Jul 2001 17:12:20 +0700
> >
> > Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:
> >
> <поскипано мной>
> 
> > Можно поставить source routing с помощью iproute2.
> >
> > Но это мало что даст, интерфейс определяется по ip-назначения,
> >
> > не знаю, можно ли связать пакет-ответ с пакетом-запросом.
> >
> > Странная задача, не понял смысла.
> >
> Пытался ответьть, да лучше заново напишу. Заодно задачу упрощу.
> представьте 2 сети. Пусть сеть1-платная сеть провайдера, сеть2
> -бюджетная сеть.
> Адресные пространства не пересекаются(сеть1 * сеть2=0).
> Моя машина имеет 2 интерфейса и 2 ip адреса в каких-то подсетях для
> каждой из этих сетей(ну как обычно).
> 
> За трафик с одной из сетей(1) берут деньги, с другой(2) не берут
> (собственно второй интерфейс появился потому, что удалось доказать
> провайдеру, что глупо платить за пользование локальной сетью(сеть2)
> как за пользование Интернет, а плата идет за трафик в точке
> подключения к шлюзу1. Подразумевается, что машина через интерфейс2
> ходит только в сеть2, да так оно и есть, потому что связь через шлюз2
> отвратительная).
> 
> Для сети 2 прописаны static routes(так как интерфейс2 смотрит всего
> лишь на одну из подсетей сети2, а дефолтом все идет на сеть1).

С несколькими подсетями сети2 (это, собственно, сети и есть) задача
усложняется, попробуйте пока пинговать с компа из одного сегмента с
машиной.

> Так вот, если кто-то(хост2) из сети 2 пингует машину по ip1, то ответы
> ему приходят через интерфейс2 (что совершенно правильно) и от ip2. И

Должны от ip1. Если я правильно понял, такая конфигурация у меня есть
и работает. Есть сервер, у него 2 сетевухи, 

в net0 смотрит eth0 - ip0,
в net1 смотрит eth1 - ip1,

при пинге из сети net0 по ip1 пинг доходит до ip1 и возвращается отправителю
через eth0, как от ip1.
Возможно, Вам нужно включить (разрешить) forward пакетов.
echo 1 > /proc/sys/net/ipv4/ip_forward

> тут хост2 затыкается ибо пингует он один ip, а ответ приходит с
> другого (на самом деле это одна машина, но он-то этого не знает).

Не важно, сколько это машин, тут значим ip.

> Пакеты с неверного ip хост2 отбрасывает, а с верного он никогда не
> дождется.
> Так можно ли на этой самой многострадальной машине с двумя ip адресами
> сделать так, чтобы пакеты, пришедшие на интерфейс1, но из сети 2,
> обарабатывались как-то, не знаю как, чтобы разрубить этот узел?

Тупой вопрос: firewall точно не мешает?

<skipped>

-- 
Regards, Vyt
mailto:vyt@vzljot.ru



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [mdk-re] routing question
  2001-07-19 17:26     ` Vyt
@ 2001-07-20 16:49       ` Maxim Savrilov
  2001-07-20 17:34         ` Vyt
  0 siblings, 1 reply; 6+ messages in thread
From: Maxim Savrilov @ 2001-07-20 16:49 UTC (permalink / raw)
  To: mandrake-russian

Vyt wrote:

> On Thu, 19 Jul 2001 18:57:15 +0700
> Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:
>
> >
> > Для сети 2 прописаны static routes(так как интерфейс2 смотрит всего
> > лишь на одну из подсетей сети2, а дефолтом все идет на сеть1).
>
> С несколькими подсетями сети2 (это, собственно, сети и есть) задача
> усложняется, попробуйте пока пинговать с компа из одного сегмента с
> машиной.

пингую со шлюза2 на ip1

>
> > Так вот, если кто-то(хост2) из сети 2 пингует машину по ip1, то ответы
> > ему приходят через интерфейс2 (что совершенно правильно) и от ip2. И
>
> Должны от ip1. Если я правильно понял, такая конфигурация у меня есть
> и работает. Есть сервер, у него 2 сетевухи,
>
> в net0 смотрит eth0 - ip0,
> в net1 смотрит eth1 - ip1,
>
> при пинге из сети net0 по ip1 пинг доходит до ip1 и возвращается отправителю
> через eth0, как от ip1.

Если убить static_routes во всю бесплатную сеть, то у меня тоже.
Но тогда халява ограничится только тем небольшим сегментом, которому
принадлежит шлюз2, ведь так?

> Возможно, Вам нужно включить (разрешить) forward пакетов.
> echo 1 > /proc/sys/net/ipv4/ip_forward

cat /proc/sys/net/ipv4/ip_forward
1

> > тут хост2 затыкается ибо пингует он один ip, а ответ приходит с
> > другого (на самом деле это одна машина, но он-то этого не знает).
>
> Не важно, сколько это машин, тут значим ip.
>
> > Пакеты с неверного ip хост2 отбрасывает, а с верного он никогда не
> > дождется.
> > Так можно ли на этой самой многострадальной машине с двумя ip адресами
> > сделать так, чтобы пакеты, пришедшие на интерфейс1, но из сети 2,
> > обарабатывались как-то, не знаю как, чтобы разрубить этот узел?
>
> Тупой вопрос: firewall точно не мешает?

нет там firewall'ов. убираю маршруты на сеть2 - все работает, ставлю их - от
нас все идет, потому что клиенты изначально идут через второй интерфейс, а из
сети2 к нам по ip1 к нам достучаться не могут.
Их админы меня пинают, делая говорят source routing, а сами толком объяснить не
могут, можно говорят и все. А я в толк не возьму, что тут вообще можно сделать,
увязать исходящие пакеты со входящими и правда нельзя, а что еще?


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

Novocybersk, отделение системного администрирования
Новосибирск, проспект К. Маркса-20, корпус 1, палата 310.
тел. (383-2) 46-13-84 (31-19)
--






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [mdk-re] routing question
  2001-07-20 16:49       ` Maxim Savrilov
@ 2001-07-20 17:34         ` Vyt
  0 siblings, 0 replies; 6+ messages in thread
From: Vyt @ 2001-07-20 17:34 UTC (permalink / raw)
  To: mandrake-russian

On Fri, 20 Jul 2001 20:10:17 +0700
Maxim Savrilov <Maxim.Savrilov@novocybersk.ru> wrote:

<skipped>

> > Тупой вопрос: firewall точно не мешает?
> 
> нет там firewall'ов. убираю маршруты на сеть2 - все работает,
> ставлю их - от
> нас все идет, потому что клиенты изначально идут через второй
> интерфейс, а из
> сети2 к нам по ip1 к нам достучаться не могут.
> Их админы меня пинают, делая говорят source routing, а сами
> толком объяснить не
> могут, можно говорят и все. А я в толк не возьму, что тут
> вообще можно сделать,
> увязать исходящие пакеты со входящими и правда нельзя, а что
> еще?

Повторюсь, описание всей задачи со всеми необходимыми данными и
однозначной терминологией поможет в нее врубиться. Пока я не
врубился, хотя это и не показатель :)
source routing можно сделать с iproute2.

-- 
Regards, Vyt
mailto:vyt@vzljot.ru



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-07-20 17:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-19 13:51 [mdk-re] routing question Maxim Savrilov
2001-07-19 14:36 ` Vyt
2001-07-19 15:36   ` Maxim Savrilov
2001-07-19 17:26     ` Vyt
2001-07-20 16:49       ` Maxim Savrilov
2001-07-20 17:34         ` Vyt

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git