The OpenNET Project / Index page

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

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

"Два канала, надо завернуть маршруты"
Сообщение от matriks emailИскать по авторуВ закладки on 05-Дек-03, 15:27  (MSK)
Помогите решить такую проблему:

есть два gif-интерфейса
gif0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
        tunnel inet 10.106.0.64 --> 10.0.1.45
        inet 212.101.103.46 --> 212.101.103.45 netmask 0xffffff00
gif1: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
        tunnel inet 10.106.0.65 --> 10.0.1.45
        inet 212.101.103.48 --> 212.101.103.47 netmask 0xffffff00
        
по gif0 - должна бежать Украина
по gif1 - весь мир

в таблице маршрутизации имеем:
root# netstat -nr

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            212.101.103.47     UGSc        1    13543   gif1
10                 10.106.1.71        UGSc        1   185589    de0
10.100/23          link#1             UC          8        0    de0
10.106.0.61        00:80:48:e9:13:c9  UHLW        5      712    de0   1182
10.106.0.65/32     link#1             UC          0        0    de0
62.16/19           212.101.103.45     UGSc        0        0   gif0
62.64.64/18        212.101.103.45     UGSc        0        0   gif0
****SKIPED****
212.101.103.45     212.101.103.46     UH        737     1620   gif0
212.101.103.47     212.101.103.48     UH          0      492   gif1


запускаю два NATа
/sbin/natd -n gif0
/sbin/natd -n gif1 -p 8672

в ipfw добавил
01000 divert 8672 ip from any to 212.111.203.38 via gif1
01001 divert 8668 ip from any to 212.111.203.36 via gif0
01010 divert 8672 ip from 192.168.0.0/16 to any
01011 divert 8668 ip from 192.168.0.0/16 to any
60000 allow ip from any to any
65535 deny ip from any to any

Однако чувствую что 01010 и 01011 не могут правильно работать. Т.е сейчас мир ходит через gif1, запросы на Украину идут через gif0, а возвращаются на gif1. Получается, что на выходе пакет не проходит через какое-то правило и не заворачивается в NAT для обработки и перепрописания заголовка поэтому и возвращается на дефаулт gif ?!

На серваке все нормально работает, т.е в провайдере проблемы нет, проблема локальная. Я раздаю Инет через VPN.
А теперь вопрос собственно: как мне правильно заварачивать все подсети, что в таблице маршрутизации на gif0(Украину). Подскажите, а лучше напишите, какие правила я должен прописать в ipfw ?!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Два канала, надо завернуть маршруты"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 05-Дек-03, 15:35  (MSK)
>Помогите решить такую проблему:
>
>есть два gif-интерфейса
>gif0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
>        tunnel inet 10.106.0.64 --> 10.0.1.45
>        inet 212.101.103.46 --> 212.101.103.45 netmask 0xffffff00
>gif1: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
>        tunnel inet 10.106.0.65 --> 10.0.1.45
>        inet 212.101.103.48 --> 212.101.103.47 netmask 0xffffff00
>
>по gif0 - должна бежать Украина
>по gif1 - весь мир
>
>в таблице маршрутизации имеем:
>root# netstat -nr
>
>Routing tables
>
>Internet:
>Destination        Gateway    
>        Flags  
> Refs      Use  Netif Expire
>
>default            
>212.101.103.47     UGSc      
>  1    13543   gif1
>10            
>     10.106.1.71      
>  UGSc        1
>  185589    de0
>10.100/23          link#1  
>          
>UC          8
>       0    
>de0
>10.106.0.61        00:80:48:e9:13:c9  UHLW  
>      5    
> 712    de0   1182
>10.106.0.65/32     link#1      
>      UC    
>     0      
>  0    de0
>62.16/19           212.101.103.45
>    UGSc      
> 0        0  
> gif0
>62.64.64/18        212.101.103.45    
> UGSc        0  
>      0   gif0
>****SKIPED****
>212.101.103.45     212.101.103.46     UH  
>      737    
>1620   gif0
>212.101.103.47     212.101.103.48     UH  
>        0  
>   492   gif1
>
>
>запускаю два NATа
>/sbin/natd -n gif0
>/sbin/natd -n gif1 -p 8672
>
>в ipfw добавил
>01000 divert 8672 ip from any to 212.111.203.38 via gif1
>01001 divert 8668 ip from any to 212.111.203.36 via gif0
>01010 divert 8672 ip from 192.168.0.0/16 to any
>01011 divert 8668 ip from 192.168.0.0/16 to any
>60000 allow ip from any to any
>65535 deny ip from any to any
>
>Однако чувствую что 01010 и 01011 не могут правильно работать. Т.е сейчас
>мир ходит через gif1, запросы на Украину идут через gif0, а
>возвращаются на gif1. Получается, что на выходе пакет не проходит через
>какое-то правило и не заворачивается в NAT для обработки и перепрописания
>заголовка поэтому и возвращается на дефаулт gif ?!
>
>На серваке все нормально работает, т.е в провайдере проблемы нет, проблема локальная.
>Я раздаю Инет через VPN.
>А теперь вопрос собственно: как мне правильно заварачивать все подсети, что в
>таблице маршрутизации на gif0(Украину). Подскажите, а лучше напишите, какие правила я
>должен прописать в ipfw ?!


Ну так у тебя все правильно работает.
Роутить входящие пакеты ты не можешь, этол можно сделать только на том конце каналов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Два канала, надо завернуть маршруты"
Сообщение от boykov emailИскать по авторуВ закладки on 05-Дек-03, 16:54  (MSK)
>Помогите решить такую проблему:
>
>есть два gif-интерфейса
>gif0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
>        tunnel inet 10.106.0.64 --> 10.0.1.45
>        inet 212.101.103.46 --> 212.101.103.45 netmask 0xffffff00
>gif1: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> mtu 1500
>        tunnel inet 10.106.0.65 --> 10.0.1.45
>        inet 212.101.103.48 --> 212.101.103.47 netmask 0xffffff00
>
>по gif0 - должна бежать Украина
>по gif1 - весь мир
>
То есть на сервере, ушедшее в Укараину возвращается через gif0 ?
Как-то не верится...

У тебя оба туннеля из одной подсети провайдера (2 по 4, не в том суть). Для того, чтобы оно и возвращалось так, как тебе надо -- надо на многих маршрутизаторах иметь две разных строки, по одной для каждой из подсетей. А есть, скорее всего, только 1 на всю сеть провайдера.
То есть просишь провайдера сменить роутинг подсетей, чтобы трафик на сеть 212.101.103.45/30 шел на твою точку обмена. Он прописывает, что надо, в BGP и все фурычит. Ну и на точке обмена с украиной аналогично. Если они все согласятся :)

Несоответствие в адресах роутинга и ipfw -- ошибка набора?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Два канала, надо завернуть маршруты"
Сообщение от matriks emailИскать по авторуВ закладки on 05-Дек-03, 17:23  (MSK)
>То есть на сервере, ушедшее в Укараину возвращается через gif0 ?
>Как-то не верится...
>
>У тебя оба туннеля из одной подсети провайдера (2 по 4, не
>в том суть). Для того, чтобы оно и возвращалось так, как
>тебе надо -- надо на многих маршрутизаторах иметь две разных строки,
>по одной для каждой из подсетей. А есть, скорее всего, только
>1 на всю сеть провайдера.
>То есть просишь провайдера сменить роутинг подсетей, чтобы трафик на сеть 212.101.103.45/30
>шел на твою точку обмена. Он прописывает, что надо, в BGP
>и все фурычит. Ну и на точке обмена с украиной аналогично.
>Если они все согласятся :)

я сделал в лоб: загнал все подсети в файервол, что-то вроде
00100 divert 8668 ip from any to 62.16.0.0/19 via gif0
00101 divert 8668 ip from any to 62.64.64.0/18 via gif0
00102 divert 8668 ip from any to 62.64.80.0/21 via gif0
00103 divert 8668 ip from any to 62.64.105.0/24 via gif0
00104 divert 8668 ip from any to 62.64.112.0/21 via gif0
00105 divert 8668 ip from any to 62.64.120.0/21 via gif0
00106 divert 8668 ip from any to 62.80.160.0/19 via gif0
00107 divert 8668 ip from any to 62.149.0.0/19 via gif0
00108 divert 8668 ip from any to 62.149.7.0/24 via gif0
00109 divert 8668 ip from any to 62.149.8.0/24 via gif0
00110 divert 8668 ip from any to 62.149.9.0/24 via gif0
00111 divert 8668 ip from any to 62.221.32.0/24 via gif0

и все нормально заработало, хоть это и не совсем правильно...
но подсети часто не меняются, просто надо будет по мере появления нового списка, старые правила скриптом удалять, а новые пропускать через парсер и добавлять в файервол.
может кому-то это поможет, а может ... ;)

>Несоответствие в адресах роутинга и ipfw -- ошибка набора?

ага, есть такое...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Два канала, надо завернуть маршруты"
Сообщение от boykov emailИскать по авторуВ закладки on 05-Дек-03, 22:33  (MSK)
нет, мы про другое.

вот когда пакет ушел к точке обмена с украиной по туннелю, на том конце вышел, пошел по сети незалежной и дошел до сервера. обратный адрес у него какой? правильно, от начала туннеля. то есть ответ пойдет по адресу к сети провайдра. я на 90% уверен, что в таблицах роутинга оба адреса -- что gif0, что gif1 -- попадут под одну и ту же строку и пойдут п одному и тому же пути. то есть придут только на один из gif / этакий ассиметричный доступ типа спутника...

или у тебя отдельный тарифный план на каждую четырехадресную сетку? :)

иными словами обратный украинский трафик не пойдет через точку обмена.
по этому поводу можно посоветоваться с цисковедами местными.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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