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

Исходное сообщение
"route и два внешних ip, как ... ?"

Отправлено zman , 09-Авг-02 01:23 
на машине с suse linux 2.2.21
есть два внешних айпи адреса:
eth0: 100.0.0.1
eth2: 100.0.0.2
и два внутренних:
eth1: 192.168.10.1
eth3: 192.168.20.1

как заставить ходить
eth3: 192.168.20.1
в инет через
eth2: 100.0.0.2

делал
route add -net 192.168.20.0 netmask 255.255.255.0 gw 100.0.0.2 eth2
после этого перестаёт пинговаться вся 192.168.20.1 сетка
явно где-то торможу =(

поможите чай-кипятильнику


Содержание

Сообщения в этом обсуждении
"RE: route и два внешних ip, как ... ?"
Отправлено EugeniyD , 09-Авг-02 02:48 
>делал
>route add -net 192.168.20.0 netmask 255.255.255.0 gw 100.0.0.2 eth2
>после этого перестаёт пинговаться вся 192.168.20.1 сетка
>явно где-то торможу =(
А теперь посмотри, что сделал: заставляешь все пакеты адресованные в 192.168.20.0 идти через eth2, а не через eth3, поэтому пинги и не проходят.


"RE: route и два внешних ip, как ... ?"
Отправлено AD , 09-Авг-02 06:15 
>на машине с suse linux 2.2.21
>есть два внешних айпи адреса:
>eth0: 100.0.0.1
>eth2: 100.0.0.2
>и два внутренних:
>eth1: 192.168.10.1
>eth3: 192.168.20.1
>
>как заставить ходить
>eth3: 192.168.20.1
>в инет через
>eth2: 100.0.0.2
>
>делал
>route add -net 192.168.20.0 netmask 255.255.255.0 gw 100.0.0.2 eth2
>после этого перестаёт пинговаться вся 192.168.20.1 сетка
>явно где-то торможу =(
>
>поможите чай-кипятильнику

route add -net 192.168.20.0 netmask 255.255.255.0 gw 100.0.0.2 eth2
route add default gw адрес_смотрящий в локалку /


"RE: route и два внешних ip, как ... ?"
Отправлено zman , 10-Авг-02 20:21 
> route add -net 192.168.20.0 netmask 255.255.255.0 gw 100.0.0.2 eth2
> route add default gw 192.168.20.1 eth3

не работает
=((

более того перестаёт работать и
сетка на eth1-192.168.10.0


"RE: route и два внешних ip, как ... ?"
Отправлено Firewalker , 10-Авг-02 20:47 
судя по тому что я вижу -- тебе route не поможет.
нужно испльзовать ip из пакета iproute2 и НАТ (если нужно).
(то есть енто не простой роутинг, а полиси роутинг)

"всё тотже route и два внешних ip, как ... ?"
Отправлено zman , 23-Авг-02 06:04 
почти всё таже конфигурация:

ip 1 - XX.XX.XX.251
интерфейс - eth0
внутренний интерфейс eth3, сетка - 192.168.20.0/24

ip 2 - XX.XX.XX.250
интерфейс - eth2
внутренний интерфейс eth1, сетка - 192.168.10.0/24

понятно, что хочется чтобы две внутренних сетки ходили
через разные внешние айпи

поставил ентот iproute2

один из вариантов:
#ip rule add from 192.168.10.0/24 lookup 1 pref 100
#ip rule add from 192.168.20.0/24 lookup 2 pref 101

#ip route add default via XX.XX.XX.250 dev eth2 table 1
#ip route add default via XX.XX.XX.251 dev eth0 table 2

пинг с линукса на (например) 192.168.10.3 - работает
а с локальной сетки с 192.168.10.3 на линукс уже не пингуется

далее, с первым вариантом пробовал ставить "стандартную" маршрутизацию
#route add -net 192.168.10.0 netmask 255.255.255.0 gw XX.XX.XX.250 eth2
#route add -net 192.168.20.0 netmask 255.255.255.0 gw XX.XX.XX.251 eth0
#ip route add default gw XX.XX.XX.251 metric 0 eth0
#ip route add default gw XX.XX.XX.250 metric 1 eth2
результат тот же


следующий вариант:

#ip rule add to XX.XX.XX.251 lookup 100
#ip rule add to XX.XX.XX.250 lookup 101

#ip ru add from 192.168.20.0/24 lookup 100
#ip ru add from 192.168.10.0/24 lookup 101

#ip ro add default via XX.XX.XX.251 dev eth0 table 100
#ip ro add default via XX.XX.XX.250 dev eth2 table 101


поставил последнее ядро 2.4.19
перекомпилировал с опциями "advanced routing" и "policy routing"

каждый раз очищал кэш
#ip route flush cache

делал:
#echo "1" > /proc/sys/net/ipv4/ip_forward

в начале поставил iproute2 от 010824
позже поставил версию от 020116 числа

бегал с бубном... бегал по потолку...
...ничего не помогает...

одна надежда осталась на все-знающего ALL'а

подскажите ... где торможу?


"RE: route и два внешних ip, как ... ?"
Отправлено Firewalker , 24-Авг-02 21:16 
я так понял что ты хочешь чтоб вся сеть 192.168.20.0/24
ходила через 100.0.0.2
тоды делаеш дефолт на 100.0.0.1
ну примерно так:
## move default look-up higher
ip rule add prio 77777 table default
ip rule del prio 32767
## For dialup (notice:  this is _after_ main table)
ip rule add unicast from 192.168.20.0/24 prio 33000 table 2
# this is default route
ip route add t default default dev eth0 src 100.0.0.1
# alternative
ip route add t 2 default dev eth2 src 100.0.0.2

# and if you want ;-) do nat
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -j SNAT --to-source 100.0.0.2

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 100.0.0.1

ну что-то типа...


"RE: route и два внешних ip, как ... ?"
Отправлено samuil , 25-Авг-02 06:49 
Возможно я не прав  но интерфейсы какие подсети имеют? Мне кажется так делать низя
eth0: 100.0.0.1
eth2: 100.0.0.2

"RE: route и два внешних ip, как ... ?"
Отправлено Firewalker , 25-Авг-02 19:30 
>Возможно я не прав  но интерфейсы какие подсети имеют
какие имеют такие и вставляем ;-)
/24 я для примера сделал.



"RE: route и два внешних ip, как ... ?"
Отправлено samuil , 26-Авг-02 06:18 
>>Возможно я не прав  но интерфейсы какие подсети имеют
>какие имеют такие и вставляем ;-)
>/24 я для примера сделал.


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


"RE: route и два внешних ip, как ... ?"
Отправлено Sampan , 26-Авг-02 16:31 
>у тебя оба адреса в одной подсети находятся - пакеты заблудятся.
>Да и работать не должно.

По науке не должно, но можно :-)
echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/eth2/proxy_arp

У меня работает роут при адресах из одной сети на разных интерфейсах


"RE: route и два внешних ip, как ... ?"
Отправлено Firewalker , 26-Авг-02 22:02 
>>>Возможно я не прав  но интерфейсы какие подсети имеют
>>какие имеют такие и вставляем ;-)
>>/24 я для примера сделал.
>
>
>неправильно ты для примера сделал
>у тебя оба адреса в одной подсети находятся - пакеты заблудятся.
>Да и работать не должно.
sorry ne pojnjal :)
konjecho tam dolgno byt' /32
(kak vsjegda byvajet dlja
point to point sojedinenija)

"RE: route и два внешних ip, как ... ?"
Отправлено samuil , 27-Авг-02 06:52 
>По науке не должно, но можно :-)
>echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
>echo "1" > /proc/sys/net/ipv4/conf/eth2/proxy_arp

>У меня работает роут при адресах из одной сети на разных интерфейсах


Есло не в лом - подробнее или где читать?


"RE: route и два внешних ip, как ... ?"
Отправлено Sampan , 27-Авг-02 11:36 
>Есло не в лом - подробнее

Диспозиция:
Сервер linux 2.2.21, три сетевые карты. Одна карта eth2 в локальную сеть с fake адресами (на этом интерфейсе NAT). Тут все ясно, не интересно.
Две другие имеют реальные адреса из одной сети. Например eth0 - A.A.A.5/32, eth1 - A.A.A.6/32
eth0 подключен к маршрутизатору A.A.A.1/32 В этом сегменте больше ни чего нет. К eth1 подключен сегмент с хостами A.A.A.3/32, A.A.A.9/32 и т.д. Этот сегмент - DMZ. Правилами файрвола определено что можно форвардить от eth0 к eth1.

Таблица маршрутизации (в части eth0 и eth1):
A.A.A.1  255.255.255.255  0.0.0.0  UH  eth0  # шлюз в Интернет
A.A.A.5  255.255.255.255  0.0.0.0  UH  eth0  # собственный адрес eth0
A.A.A.6  255.255.255.255  0.0.0.0  UH  eth1  # собственный адрес eth1
A.A.A.0  255.255.255.0    0.0.0.0  U   eth1  # роут на сеть А.А.А.0/24
0.0.0.0  0.0.0.0          A.A.A.1  UG  eth0  # default route

Без дополнительной настройки такая конфигурация не работает - внутренние хосты в DMZ (A.A.A.10 и т.д) не доступны.

Включаем Proxy ARP на этих двух интерфейсах
echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/eth1/proxy_arp
и стало все замечательно! Пакеты бегают, фаирвол фильтрует.

Снаружи невозможно понять, что адреса А.А.А.3, А.А.А.20 и т.д. находятся за фаирволом А.А.А.5-А.А.А.6 (traceroute, естественно фильтруется :-)

>где читать?
Почему заработало разобраться не сложно. Спецификации ETHERNET и описания протокола ARP достаточно.