The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблемы с маршрутизацией"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблемы с маршрутизацией"  
Сообщение от Torion email(ok) on 18-Авг-06, 00:43 
Никак не могу наладить маршрутизацию. Может кто подскажет?
Имеется роутер на Fedora Core 3 с тремя итерфейсами:
eth0      Link encap:Ethernet  HWaddr 00:00:00:00:00:01
          inet addr:83.237.68.8  Bcast:83.237.68.63  Mask:255.255.255.192
eth1      Link encap:Ethernet  HWaddr 00:00:00:00:00:02
          inet addr:10.0.0.1  Bcast:10.0.255.255  Mask:255.255.0.0
eth2      Link encap:Ethernet  HWaddr 00:00:00:00:00:03
          inet addr:192.168.0.2  Bcast:192.168.0.3  Mask:255.255.255.252

Таблица маршрутизации:
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.252 U     0      0        0 eth2
83.237.68.0     *               255.255.255.192 U     0      0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth2
default         83.237.68.1     0.0.0.0         UG    0      0        0 eth0

Требуется, чтобы пакеты для хоста 83.237.68.9 уходили на eth2.

Пробовал создавать
eth0:9    Link encap:Ethernet  HWaddr 00:00:00:00:00:01
          inet addr:83.237.68.9  Bcast:83.237.68.9  Mask:255.255.255.255
и добавлять в таблицу маршрутизации
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
83.237.68.9     192.168.0.1      255.255.255.255 UGH   0      0        0 eth2

Эффект нулевой!!! tcpdump -i eth0:1 icmp видит пинг из Интернета и ответы на него, а на eth2 полная тишина, значит пакеты не маршрутизируются. Что я сделал не так?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблемы с маршрутизацией"  
Сообщение от co6aka (??) on 18-Авг-06, 02:44 
Я не телепат.
И если я правильно Вас понял, то Вы хотите, что бы из интернета трафик для хоста 83.237.68.9 перенаправлялся в сеть (Вам нужно точно указать на какой хост) интерфейса eth2.
Это так? Распишите подробнее что вы хотите получить!!!!!!!!!

PS: Мне кажется Вам стоит почитать man ifconfig (переводы в инете есть), man route, man {Ваш фаервол} на предмет прохода и проброса трафика в частности. Да и вообще... почитайте...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Проблемы с маршрутизацией"  
Сообщение от Torion email(ok) on 18-Авг-06, 13:38 
Извините, что невнятно обозначил задачу... Писал в час ночи когда голова уже не соображала. Попробую еще раз.
Есть роутер на база Fedora Core 3 с тремя сетевыми картами. От провайдера получена подсеть 83.237.68.0/26 со шлюзом на 83.237.68.1 Эта подсеть подключена на eth0 роутера. Вот настройки интерфейса eth0:
[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
TYPE=Ethernet
DEVICE=eth0
MTU=""
NETMASK=255.255.255.192
BROADCAST=83.237.68.63
IPADDR=83.237.68.8
NETWORK=83.237.68.0
ONBOOT=yes

Вся эта подсеть с помощью SNAT iptables маршрутизируется на интерфейс eth1.
Вот настройки нитерфейса eth1:
[root@router ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=static
TYPE=Ethernet
DEVICE=eth1
MTU=""
NETMASK=255.255.0.0
BROADCAST=10.0.255.255
IPADDR=10.0.0.1
NETWORK=10.0.0.0
ONBOOT=yes

Вот команда для NATинга:
iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -o eth0 -j SNAT --to-source 83.237.68.8

На роутере есть еще один интерфейс:
[root@router sysconfig]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
BOOTPROTO=static
TYPE=Ethernet
DEVICE=eth2
MTU=""
NETMASK=255.255.255.252
BROADCAST=192.168.0.3
IPADDR=192.168.0.2
NETWORK=192.168.0.0
ONBOOT=yes

К eth2 подключена машина с адресом 192.168.0.1

На рисунке это выглядит таким образом:
                                                         ------------------------------     10.0.0.0/16
                                 83.237.69/26   |            (10.0.0.1) eth1 o<--------------------->
(gw:83.237.69.1) <------------------->o eth0 (83.237.69.8)     |    192.168.0.0/30
                                                         |       (192.168.0.2) eth2 o<---------------------> (192.168.0.1)
                                                         ------------------------------

Необходимо, чтобы пакеты из Интернета приходящие на адрес 83.237.68.9 маршрутизировались с интерфейса eth0 на eth2 и приходили на машину с адресом 192.168.0.1 без изменений. Т.е. чтобы в заголовке пакета оставался адрес назначения 83.237.68.9

Не знаю на сколько внятно я описал задачу, но может быть кто-то сможет разобраться и подказать как это сделать.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Проблемы с маршрутизацией"  
Сообщение от victorb email(??) on 18-Авг-06, 15:44 
а поставить вторую сетевую карточку в комп с 192.168.0.1?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Проблемы с маршрутизацией"  
Сообщение от Torion email(??) on 18-Авг-06, 17:04 
>а поставить вторую сетевую карточку в комп с 192.168.0.1?


Она там и так стоит, просто я не указал это, чтобы облегчить схему и задачу. Кстати, именно на эту карточку потом и должен поступать пакет с адресом назначения 83.237.68.9. Просто пока это не существенно.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Проблемы с маршрутизацией"  
Сообщение от kvk email on 18-Авг-06, 16:38 
eth0 (83.237.69.8)
сделать alias  eth0:1 83.237.69.9
и прописать правила для 83.237.69.9
?
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Проблемы с маршрутизацией"  
Сообщение от Torion email(??) on 18-Авг-06, 18:18 
Именно это я и сделал в первую очередь. Сначала создал alias eth0:1
[root@router etc]# ifconfig eth0:1 add 83.237.68.9 netmask 255.255.255.255
[root@router etc]# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr 00:00:00:00:00:01
          inet addr:83.237.68.9  Bcast:83.237.68.9  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Затем прописал маршрут:
[root@router etc]# route add -host 83.237.68.9 gw 192.168.0.1
[root@router etc]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
83.237.68.9     192.168.0.1     255.255.255.255 UGH   0      0        0 eth2
192.168.0.0     *               255.255.255.252 U     0      0        0 eth2
83.237.68.0     *               255.255.255.192 U     0      0        0 eth0
10.0.0.0        *               255.255.0.0     U     0      0        0 eth1
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         83.237.68.1     0.0.0.0         UG    0      0        0 eth0

Далее пингую 83.237.68.9 из Интернета и смотрю интерфейсы:
tcpdump -i eth0:1  Вижу и request и reply
tcpdump -i eth2    Не вижу вообще ничего

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Проблемы с маршрутизацией"  
Сообщение от konst email(??) on 18-Авг-06, 19:03 
>Именно это я и сделал в первую очередь. Сначала создал alias eth0:1
>
>[root@router etc]# ifconfig eth0:1 add 83.237.68.9 netmask 255.255.255.255
>[root@router etc]# ifconfig eth0:1
>eth0:1    Link encap:Ethernet  HWaddr 00:00:00:00:00:01
>          inet addr:83.237.68.9
> Bcast:83.237.68.9  Mask:255.255.255.255
>          UP BROADCAST
>RUNNING MULTICAST  MTU:1500  Metric:1
>Затем прописал маршрут:
>[root@router etc]# route add -host 83.237.68.9 gw 192.168.0.1
>[root@router etc]# route
>Kernel IP routing table
>Destination     Gateway      
>  Genmask        
>Flags Metric Ref    Use Iface
>83.237.68.9     192.168.0.1     255.255.255.255 UGH
>  0      0  
>     0 eth2
>192.168.0.0     *      
>        255.255.255.252 U  
>   0      0  
>      0 eth2
>83.237.68.0     *      
>        255.255.255.192 U  
>   0      0  
>      0 eth0
>10.0.0.0        *    
>          
>255.255.0.0     U     0
>     0      
>  0 eth1
>169.254.0.0     *      
>        255.255.0.0  
>  U     0    
>  0        0
>eth0
>default         83.237.68.1  
>  0.0.0.0        
>UG    0      0
>       0 eth0
>
>Далее пингую 83.237.68.9 из Интернета и смотрю интерфейсы:
>tcpdump -i eth0:1  Вижу и request и reply
>tcpdump -i eth2    Не вижу вообще ничего
я не большой спец, но imho вместо route, надо прописать правило SNAT
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Проблемы с маршрутизацией"  
Сообщение от Torion email(??) on 18-Авг-06, 20:14 
>я не большой спец, но imho вместо route, надо прописать правило SNAT
>
Думал об этом.
При SNAT мы подменяем ip-адрес источника, так что в данном случае скорее уж подошел бы DNAT. Но в этом случае мы теряем ip-адрес назначения и заменяем его на тот который подставим вместо него - не годится. Адрес назначения должен остаться неизменным!
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Проблемы с маршрутизацией"  
Сообщение от perece on 19-Авг-06, 01:03 
>>я не большой спец, но imho вместо route, надо прописать правило SNAT
>>
>Думал об этом.
>При SNAT мы подменяем ip-адрес источника, так что в данном случае скорее
>уж подошел бы DNAT. Но в этом случае мы теряем ip-адрес
>назначения и заменяем его на тот который подставим вместо него -
>не годится. Адрес назначения должен остаться неизменным!
83.237.68.9     192.168.0.1     255.255.255.255 UGH   0      0        0 eth2
- это - в таблице main. но local просматривается до нее, а когда ты поднимаешь ip алиас в local появляется строчка для собственного ip которая рутит его в lo.
ip ro ls tab local в студию!
там должно быть что-то вроде
local 83.237.68.9 dev eth0  proto kernel  scope host  src 83.237.68.9
- ее надо удалить (ip ro del ... tab local) _после_ того, как создаешь ip-алиас.

в таком раскладе шансы на успех есть, однако трогать local "ядерщики" настоятельно не рекомендуют. связано это с тем, что весь "высокоуровневый" сетевой софт предполагает вполне определенное поведение ядра по отношению к собственным адресам, в т.ч. то, что пакеты в dest которых собств. ip - никогда не форвардятся, такчто мало ли что после этого может заглючить - короче, "фирма не гарантирует", USE AT YOUR OWN RISK!!!

судя по всему дальше оно будет пофорваржено снова, в другую сетевушку на 192.168.0.1 так? тогда не проще ли туда его стунелировать? или, скажем, на инетовском рутере 83.237.68.9 DNAT to 10.250.1.9, а на 192.168.0.1 настроить 10.250.1.9 DNAT to 83.237.68.9?
короче, решить _изначальную_ задачу так, чтобы не было необходимости в такой у%.ищной маршрутизации?

\^P^/


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру