# Route на 3 интерфейса [solved]

## ntsite

Всем доброе время суток!

Уже не первый раз спрашиваю про роуты, но это мое больное место  :Sad: 

Ситуация такая, стоит Gentoo, ядро 2.6.27-gentoo-r8.

Поднято 3 интерфейса.

eth0 - локальная сеть (10.10.10.0/24)

eth1 - смотрит в сторону провайдера и имеет внутренний адрес его сети (192.168.0.0 / 255.255.0.0)

ppp0 - PPPoE соединение с внешним адресом

Так же, эта машина является шлюзом для всей внутренней сетки на интерфейсе eth0. Т.е. я из сети свободно хожу по маскараду, а порт 80 редиректом в iptables перекидывается на прозрачны прокси (squid).

Но, с внутренней сети я не могу попасть в сеть провайдера. Вот пример:

```
gate etc # ping 192.168.54.24                               

PING 192.168.54.24 (192.168.54.24) 56(84) bytes of data.    

64 bytes from 192.168.54.24: icmp_seq=1 ttl=126 time=39.0 ms

64 bytes from 192.168.54.24: icmp_seq=2 ttl=126 time=36.2 ms
```

А вот что на другой машине в сетке:

```
camel ~ # ping 192.168.54.24                                      

PING 192.168.54.24 (192.168.54.24) 56(84) bytes of data.          

^C                                                                

--- 192.168.54.24 ping statistics ---                             

24 packets transmitted, 0 received, 100% packet loss, time 23239ms
```

Т.е. сам шлюз видит, а те что на eth0 не видят  :Sad: 

Вот мои роуты:

```
gate etc # route -n                                                          

Kernel IP routing table                                                      

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

85.15.80.1      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0 

10.10.10.240    0.0.0.0         255.255.255.255 UH    0      0        0 ppp1 

192.168.68.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1 

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0 

192.168.0.0     192.168.68.1    255.255.0.0     UG    0      0        0 eth1 

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo   

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0 

0.0.0.0         192.168.68.1    0.0.0.0         UG    0      0        0 eth1 
```

Ну вот, собсно и вся проблемка  :Smile:  Заранее благодарен за ваше мнение и подсказки  :Wink: 

P.S. Если какой то информации не хватает, пишите, обязательно для решения/помощи в решении этой проблемы выложу  :Smile: 

P.S.S Вот поъожая http://www.gentoo.ru/node/12243 тема, но она осталась без ответа  :Sad: Last edited by ntsite on Mon Mar 30, 2009 6:49 am; edited 1 time in total

----------

## fank

ничего не понятно

опиши подробно, из какой машины в какую подсеть ты не можешь попасть

----------

## ntsite

У меня есть локальная сеть. К примеру сервер (шлюз) с адресом 10.10.10.254 и клиент 10.10.10.90 (допустим comp1)

На шлюзе второй интерфейс 192.168.68.21 gw 192.168.68.1 При попытке воспользоваться услугами Внтурненней сети провайдера (192.168.0.0 / 255.255.0.0) со шлюза получается, а с comp1 сеть провайдера не видит. Т.е. 192.168.68.21 вижу, а все что дальше уже нет. Я так понимаю не перекладывает пакетики с eth0 на eth1 и наоборот.

Маскарад работает (с eth0 на ppp0 и обратно)...

Ух, надеюсь не криво описал  :Smile: 

P.S. Тут похожая тема http://www.gentoo.ru/node/12243. Тут наверно понятней описанно  :Smile: 

----------

## fank

ifconfig на шлюзе

трассировку тоже приведи

----------

## fank

так

трассиовку нужного маршрута в студию

форвардинг включен?

НАТить пробовал?

у прова может быть рестрикт на некоторые ИП

----------

## ntsite

М, забыл сказать.

Я вижу внутренюю сеть провайдера из локальной сети до комманды:

```
route add default ppp0
```

После нее (я сам пользуюсь услугами того же провайдера и у меня IP 192.168.54.132) я не могу достучаться до eth1 (192.168.68.21)

Приходится добавлять еще один маршрут:

```
route add -net 192.168.0.0/16 gw 192.168.68.1
```

Только после этого со своей домашней тачки я могу достучаться до шлюза на работе.

А вот как обстоят дела на работе.

gate init.d # ifconfig

```
eth0      Link encap:Ethernet  HWaddr 00:c0:df:0f:f2:6f                    

          inet addr:10.10.10.254  Bcast:10.10.10.255  Mask:255.255.255.0   

          inet6 addr: fe80::2c0:dfff:fe0f:f26f/64 Scope:Link               

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1               

          RX packets:106057 errors:0 dropped:0 overruns:0 frame:0          

          TX packets:117605 errors:0 dropped:0 overruns:0 carrier:0        

          collisions:0 txqueuelen:1000                                     

          RX bytes:10560436 (10.0 MiB)  TX bytes:126556784 (120.6 MiB)     

          Interrupt:22 Base address:0xcc00                                 

                                                                           

eth1      Link encap:Ethernet  HWaddr 00:02:b3:9c:06:c6                    

          inet addr:192.168.68.21  Bcast:192.168.68.255  Mask:255.255.255.0

          inet6 addr: fe80::202:b3ff:fe9c:6c6/64 Scope:Link                

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1               

          RX packets:181252 errors:0 dropped:0 overruns:0 frame:0          

          TX packets:141211 errors:0 dropped:0 overruns:0 carrier:0        

          collisions:0 txqueuelen:1000                                     

          RX bytes:202668601 (193.2 MiB)  TX bytes:17930694 (17.1 MiB)     

lo        Link encap:Local Loopback                                    

          inet addr:127.0.0.1  Mask:255.0.0.0                          

          inet6 addr: ::1/128 Scope:Host                               

          UP LOOPBACK RUNNING  MTU:16436  Metric:1                     

          RX packets:2939 errors:0 dropped:0 overruns:0 frame:0        

          TX packets:2939 errors:0 dropped:0 overruns:0 carrier:0      

          collisions:0 txqueuelen:0                                    

          RX bytes:470124 (459.1 KiB)  TX bytes:470124 (459.1 KiB)     

                                                                       

ppp0      Link encap:Point-to-Point Protocol                           

          inet addr:85.15.85.18  P-t-P:85.15.80.1  Mask:255.255.255.255

          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1   

          RX packets:99652 errors:0 dropped:0 overruns:0 frame:0       

          TX packets:70677 errors:0 dropped:0 overruns:0 carrier:0     

          collisions:0 txqueuelen:3                                    

          RX bytes:123759987 (118.0 MiB)  TX bytes:6890305 (6.5 MiB)
```

Вот трассировка со шлюза:

gate init.d # traceroute

```
traceroute to 192.168.54.24 (192.168.54.24), 30 hops max, 40 byte packets    

 1  192.168.68.1 (192.168.68.1)  27.774 ms  27.678 ms  28.852 ms             

 2  * * *                                                                    

 3  host54-24.vtelecom.local (192.168.54.24)  45.309 ms  47.718 ms  48.567 ms
```

А вот на клиенте в локальной сети:

```
camel ~ # traceroute 192.168.54.24                                       

traceroute to 192.168.54.24 (192.168.54.24), 30 hops max, 40 byte packets

 1  10.10.10.254 (10.10.10.254)  0.341 ms  0.521 ms  0.518 ms            

 2  * * *                                                                

 3  * * *                                                                

 4  * * *                                                                

 5  * * *                                                                

~~~~

30  * * *
```

/etc/sysctl.conf

```
# Disables packet forwarding

net.ipv4.ip_forward = 1
```

Форвардинг включен.

Т.е. грубо говоря, после того как я делаю ppp0 дефолтовым шлюзом (все пакетики посылает туда), внутренние ресурсы провайдера не получается настроить.

route -n

```
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
```

Натить не пробовал, до этого еще не доешл, думаю траблы в роутах  :Sad: 

----------

## fank

```
192.168.0.0     192.168.68.1    255.255.0.0     UG    0      0        0 eth1
```

что-то я не совсем понял смысла вот этого, учитывая, что

```
eth1      Link encap:Ethernet  HWaddr 00:02:b3:9c:06:c6                    

          inet addr:192.168.68.21  Bcast:192.168.68.255  Mask:255.255.255.0 

          inet6 addr: fe80::202:b3ff:fe9c:6c6/64 Scope:Link                

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1                

          RX packets:181252 errors:0 dropped:0 overruns:0 frame:0          

          TX packets:141211 errors:0 dropped:0 overruns:0 carrier:0        

          collisions:0 txqueuelen:1000                                      

          RX bytes:202668601 (193.2 MiB)  TX bytes:17930694 (17.1 MiB)
```

собственно, куда ведет интерфейс?

----------

## ntsite

eth0 - локальная сеть

eth1 - на ADLS модем настроенный бриджем -> соответственно внутренняя сеть провайдера

т.е. вот вырезка из /etc/conf.d/net

```
config_ppp0=( "ppp" )           

        link_ppp0="eth1"        

        plugins_ppp0=( "pppoe" )
```

Т.е. до того как я делаю дефолтовым ppp0 я могу через маскарад перекидывать пакетики с eth0 на eth1

Ух, может я что то не понятно объясняю  :Sad: 

А вот это

```
route add -net 192.168.0.0/16 gw 192.168.68.1
```

Нужно для того, чтобы я из сети провайдера (192.168.54.132) мог достучаться до eth1 (192.168.68.21)

----------

## fank

```
ip route del default

ip route del default

ip route add default dev ppp0

ip route add 192.168.0.0/16 via 192.168.68.1
```

все остальные упоминания 192.168.х.х нужно удалить из таблицы

----------

## fank

eth1 ведет только на модем?

тогда какого дьявола ты его вводишь в сеть 192.168/16 ?????

назначь ему адрес из любой другой подсети, ну хоть 172.1.1.1 mask 255.255.255.252

eth1 сделай 172.1.1.2 mask 255.255.255.252

и рули через него в сеть прова

----------

## ntsite

Дык, вот сеть провайдера 192.168.0.0 mask 255.255.0.0

192.168.68.21 gw 192.168.68.1 - это мой внутренний адрес в сети провайдера.

А модем настроен бриджем, более он никакой функции не несет.

И кстати я уже все настроил и получил что хотел, с роутами проблем как таковых не было, были проблемы в iptables. В понедельник проверю все точней и могу описать что сделал. Сейчас просто канал отключен для других целей и не могу до работы достучаться  :Sad: 

----------

## ntsite

Вот мои роуты

```
gate ntsite # route -n                                                       

Kernel IP routing table                                                      

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

85.15.80.1      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0 

192.168.68.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1 

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0 

192.168.0.0     192.168.68.1    255.255.0.0     UG    0      0        0 eth1 

192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1 

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo   

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0 

0.0.0.0         192.168.68.1    0.0.0.0         UG    0      0        0 eth1 
```

Вот правило в iptables

```
$IPT -A FORWARD -i ${LAN2} -d 10.10.10.0/255.255.0.0 -j ACCEPT
```

Ну и само собой трейсроут с клиента моей сети до клиента сети провайдера:

```
C:\Documents and Settings\Admin>tracert 192.168.24.107

Трассировка маршрута к host24-107.vtelecom.local [192.168.24.107]

с максимальным числом прыжков 30:

  1     1 ms     1 ms     1 ms  gate.dvtgik.lan [10.10.10.254]

  2    33 ms    27 ms    30 ms  host68-1.vtelecom.local [192.168.68.1]

  3     *      144 ms   165 ms  host24-107.vtelecom.local [192.168.24.107]

Трассировка завершена.
```

В чем была проблема, я подозреваю, что я использовал ту же подсеть что и провайдер. Ну и пакетики заворачивались на моем шлюзе не доходя до место назначения. А использовал я 192.168.100.0/24 (у провайдера 192.168.0.0/16).

Ну может что то конечно не все написал и коряво, но я пока еще учусь и со временем надеюсь научусь правильно формулировать свои мысли  :Smile: 

P.S. Если у кого то такая же проблема, пишите мне, постараюсь помочь, т.к. с ней дело уже имел и примерно смысл ясен.

----------

