на машине с 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
>после этого перестаёт пинговаться вся 192.168.20.1 сетка
>явно где-то торможу =(
А теперь посмотри, что сделал: заставляешь все пакеты адресованные в 192.168.20.0 идти через eth2, а не через eth3, поэтому пинги и не проходят.
>на машине с 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 адрес_смотрящий в локалку /
> 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
судя по тому что я вижу -- тебе route не поможет.
нужно испльзовать ip из пакета iproute2 и НАТ (если нужно).
(то есть енто не простой роутинг, а полиси роутинг)
почти всё таже конфигурация:ip 1 - XX.XX.XX.251
интерфейс - eth0
внутренний интерфейс eth3, сетка - 192.168.20.0/24ip 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'а
подскажите ... где торможу?
я так понял что ты хочешь чтоб вся сеть 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.2iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 100.0.0.1
ну что-то типа...
Возможно я не прав но интерфейсы какие подсети имеют? Мне кажется так делать низя
eth0: 100.0.0.1
eth2: 100.0.0.2
>Возможно я не прав но интерфейсы какие подсети имеют
какие имеют такие и вставляем ;-)
/24 я для примера сделал.
>>Возможно я не прав но интерфейсы какие подсети имеют
>какие имеют такие и вставляем ;-)
>/24 я для примера сделал.
неправильно ты для примера сделал
у тебя оба адреса в одной подсети находятся - пакеты заблудятся.
Да и работать не должно.
>у тебя оба адреса в одной подсети находятся - пакеты заблудятся.
>Да и работать не должно.По науке не должно, но можно :-)
echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/eth2/proxy_arpУ меня работает роут при адресах из одной сети на разных интерфейсах
>>>Возможно я не прав но интерфейсы какие подсети имеют
>>какие имеют такие и вставляем ;-)
>>/24 я для примера сделал.
>
>
>неправильно ты для примера сделал
>у тебя оба адреса в одной подсети находятся - пакеты заблудятся.
>Да и работать не должно.
sorry ne pojnjal :)
konjecho tam dolgno byt' /32
(kak vsjegda byvajet dlja
point to point sojedinenija)
>По науке не должно, но можно :-)
>echo "1" > /proc/sys/net/ipv4/conf/eth0/proxy_arp
>echo "1" > /proc/sys/net/ipv4/conf/eth2/proxy_arp>У меня работает роут при адресах из одной сети на разных интерфейсах
Есло не в лом - подробнее или где читать?
>Есло не в лом - подробнееДиспозиция:
Сервер 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 достаточно.