The OpenNET Project / Index page

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

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

"PBR: 2 провайдера и локалка. Подскажите как реализовать."  +1 +/
Сообщение от max (??) on 12-Май-09, 14:57 
Значит, подключили в контору второй инет и хочется сделать как бы второй шлюз - добавить алиас к внутреннему интерфейсу и сопоставить с другим провайдером.
Примерно так:
rl0: 192.168.1.1/24 - LAN и ему же добавить еще второй адрес 192.168.1.2
rl1: 1.1.1.1 - пров №1
rl2: 2.2.2.2 - пров №2
Если клиент выходит через шлюз 192.168.1.1 то инет идет через прова №1, а если через 192.168.1.2 - через прова №2. Затея в том, чтоб клиент мог сам выбрать какой инет ему нужен прописывая у себя соответствующий шлюз, а не правила ipfw переписывать для него.
По статье http://www.opennet.me/base/net/bsd_pbr_route.txt.html казалось бы все просто, но там разные подсети и 4 интерфейса, но у меня 3 интерфейса и 1 сегмент, а еще плату вставлять ну, не красиво, чтоли.
Как это можно грамотно реализовать?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 12-Май-09, 19:07 
>[оверквотинг удален]
>rl1: 1.1.1.1 - пров №1
>rl2: 2.2.2.2 - пров №2
>Если клиент выходит через шлюз 192.168.1.1 то инет идет через прова №1,
>а если через 192.168.1.2 - через прова №2. Затея в том,
>чтоб клиент мог сам выбрать какой инет ему нужен прописывая у
>себя соответствующий шлюз, а не правила ipfw переписывать для него.
>По статье http://www.opennet.me/base/net/bsd_pbr_route.txt.html казалось бы все просто, но там разные подсети и
>4 интерфейса, но у меня 3 интерфейса и 1 сегмент, а
>еще плату вставлять ну, не красиво, чтоли.
>Как это можно грамотно реализовать?

так же как описано в статье, только:
rl0: 192.168.1.1/24
rl0: 192.168.2.1/24
rl1: 1.1.1.1 - пров №1
rl2: 2.2.2.2 - пров №2

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

2. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от masters (ok) on 12-Май-09, 19:47 
>Затея в том,
>чтоб клиент мог сам выбрать какой инет ему нужен прописывая у
>себя соответствующий шлюз, а не правила ipfw переписывать для него.

Странное решение проблемы. Зачем разрешать клиенту выбирать канал интернета? Напоритесь потом на грабли, когда все будут прыгать между каналами - в итоге получите неконтроллируемый поток траффика. Лишний гемор для сисадмина.

Не проще поставить простейший биллинг, где администратор одним кликом мышки будет выбирать кого на какой канал кинуть?

У нас на фирме 3 канала инета + VPN наружу для связи с филиалами, все заходит в 1 сервер через 1 сетевуху (VLAN), выходит через 1 шлюз в локалку. Стоит простейший биллинг - stg. Администратор парой кликов мышки может выбрать каждому пользователю канал и скорость - намного удобней.

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

10. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от A Clockwork Orange on 14-Май-09, 10:04 
>[оверквотинг удален]
>неконтроллируемый поток траффика. Лишний гемор для сисадмина.
>
>Не проще поставить простейший биллинг, где администратор одним кликом мышки будет выбирать
>кого на какой канал кинуть?
>
>У нас на фирме 3 канала инета + VPN наружу для связи
>с филиалами, все заходит в 1 сервер через 1 сетевуху (VLAN),
>выходит через 1 шлюз в локалку. Стоит простейший биллинг - stg.
>Администратор парой кликов мышки может выбрать каждому пользователю канал и скорость
>- намного удобней.

можно ссылоку на биллинг stg ?

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

25. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от Kos (??) on 21-Май-09, 16:27 
>[оверквотинг удален]
>>Не проще поставить простейший биллинг, где администратор одним кликом мышки будет выбирать
>>кого на какой канал кинуть?
>>
>>У нас на фирме 3 канала инета + VPN наружу для связи
>>с филиалами, все заходит в 1 сервер через 1 сетевуху (VLAN),
>>выходит через 1 шлюз в локалку. Стоит простейший биллинг - stg.
>>Администратор парой кликов мышки может выбрать каждому пользователю канал и скорость
>>- намного удобней.
>
>можно ссылоку на биллинг stg ?

http://www.stargazer.dp.ua/

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

3. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 13-Май-09, 09:14 
masters, я согласен, но у меня иной случай и я ищу решение конкретной задачи, а не ее альтернативы.

>так же как описано в статье, только:
>rl0: 192.168.1.1/24
>rl0: 192.168.2.1/24
>rl1: 1.1.1.1 - пров №1
>rl2: 2.2.2.2 - пров №2

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

Спрошу другое: реально ли поймать пакет на внутреннем интерфейсе, который идет от клиента в инет, но в зависимости от того к какому ип-адресу шлюза он обратился?
Или: как на шлюзе узнать на какой адрес интерфейса обратился клиент?

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

4. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 13-Май-09, 10:15 
>[оверквотинг удален]
>>так же как описано в статье, только:
>>rl0: 192.168.1.1/24
>>rl0: 192.168.2.1/24
>>rl1: 1.1.1.1 - пров №1
>>rl2: 2.2.2.2 - пров №2
>
>То бишь разбить сеть на подсети и одна подсеть ходит через одного
>прова, а другая через другого, так? Это реализуемо, но чтоб сменить
>канал клиенту придется сменить свой ип-адрес (прыгнуть в другую подсеть), я
>же хочу другого.

читайте что сказал masters

>
>Спрошу другое: реально ли поймать пакет на внутреннем интерфейсе, который идет от
>клиента в инет, но в зависимости от того к какому ип-адресу
>шлюза он обратился?

к шлюзу никто не обращается
шлюз - это транзит
(если опустить технические детали)

>Или: как на шлюзе узнать на какой адрес интерфейса обратился клиент?

вам нужно разруливать исходя из того, с какого адреса обратился клиент
какая разница куда именно он обратился?

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

5. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 13-Май-09, 10:50 
>какая разница куда именно он обратился?

разницу я написал в первом посте:
Если клиент выходит через шлюз 192.168.1.1 то инет идет через прова №1, а если через 192.168.1.2 - через прова №2. Затея в том, чтоб клиент мог сам выбрать какой инет ему нужен прописывая у себя соответствующий шлюз, а не правила ipfw переписывать для него.

>вам нужно разруливать исходя из того, с какого адреса обратился клиент

Здесь все ясно. А как распознавать клиентов, если адреса раздаются через dhcp?
Выходит, что так как я хочу решить вопрос - он решится только добавлением еще одной сетевухи и дальше по статье, так?

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

6. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 13-Май-09, 11:15 
>>какая разница куда именно он обратился?
>
>разницу я написал в первом посте:
>Если клиент выходит через шлюз 192.168.1.1 то инет идет через прова №1,
>а если через 192.168.1.2 - через прова №2. Затея в том,
>чтоб клиент мог сам выбрать какой инет ему нужен прописывая у
>себя соответствующий шлюз, а не правила ipfw переписывать для него.
>

ну и какое слово осначает адрес назначения?
обращаются не на шлюз, обращаются через шлюз

>>вам нужно разруливать исходя из того, с какого адреса обратился клиент
>
>Здесь все ясно. А как распознавать клиентов, если адреса раздаются через dhcp?
>
>Выходит, что так как я хочу решить вопрос - он решится только
>добавлением еще одной сетевухи и дальше по статье, так?

при вашей постановке вопроса вторая сетевая принесет вам петлю
одну сеть на 2 интерфейса не повесить... никак

если не хотите делить сеть, то нет никакой возможности поделить итерфейс
и разруливать придется только исходя из адреса клиента

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

7. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 13-Май-09, 11:30 
>ну и какое слово осначает адрес назначения?
>обращаются не на шлюз, обращаются через шлюз

Адрес назначения я и имел ввиду шлюз :)

>при вашей постановке вопроса вторая сетевая принесет вам петлю
>одну сеть на 2 интерфейса не повесить... никак
>
>если не хотите делить сеть, то нет никакой возможности поделить итерфейс
>и разруливать придется только исходя из адреса клиента

Я про петлю-то я и не сообразил, матчасть посмотреть надо.
Благодарю.

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

8. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 13-Май-09, 13:06 
>>ну и какое слово осначает адрес назначения?
>>обращаются не на шлюз, обращаются через шлюз
>
>Адрес назначения я и имел ввиду шлюз :)

если мне не отшибает память (да и не силен я в этом)
то маршрутизатор в пакете будет упомянут только мак-ом
а в случае с одним интерфейсом читай "никак не упомянут"

таким образом опять возвращаемся к вышесказаному

>
>>при вашей постановке вопроса вторая сетевая принесет вам петлю
>>одну сеть на 2 интерфейса не повесить... никак
>>
>>если не хотите делить сеть, то нет никакой возможности поделить итерфейс
>>и разруливать придется только исходя из адреса клиента
>
>Я про петлю-то я и не сообразил, матчасть посмотреть надо.
>Благодарю.

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

9. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от PavelR (??) on 14-Май-09, 06:36 
>[оверквотинг удален]
>
>>
>>>при вашей постановке вопроса вторая сетевая принесет вам петлю
>>>одну сеть на 2 интерфейса не повесить... никак
>>>
>>>если не хотите делить сеть, то нет никакой возможности поделить итерфейс
>>>и разруливать придется только исходя из адреса клиента
>>
>>Я про петлю-то я и не сообразил, матчасть посмотреть надо.
>>Благодарю.

Думается, что можно в сервак добавить вторую сетевую карту (обязательное условие, потому-что нужен второй мак-адрес шлюза), назначить ей адрес/маску 192.168.1.2/32 а дальше файрволом проверять интерфейс, с которого пришел пакет. Уходить в локалку, правда, все пакеты тем не менее будут через первый интерфейс, ибо подсеть /32.

Можете попробовать )

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

12. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 14-Май-09, 13:02 
>[оверквотинг удален]
>>>Я про петлю-то я и не сообразил, матчасть посмотреть надо.
>>>Благодарю.
>
>Думается, что можно в сервак добавить вторую сетевую карту (обязательное условие, потому-что
>нужен второй мак-адрес шлюза), назначить ей адрес/маску 192.168.1.2/32 а дальше файрволом
>проверять интерфейс, с которого пришел пакет. Уходить в локалку, правда, все
>пакеты тем не менее будут через первый интерфейс, ибо подсеть /32.
>
>
>Можете попробовать )

и вы правда верите что интерфейс с единственным адресом .../32 будет принимать какие то ip пакеты?

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

13. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от PavelR (??) on 14-Май-09, 20:11 
>[оверквотинг удален]
>>Думается, что можно в сервак добавить вторую сетевую карту (обязательное условие, потому-что
>>нужен второй мак-адрес шлюза), назначить ей адрес/маску 192.168.1.2/32 а дальше файрволом
>>проверять интерфейс, с которого пришел пакет. Уходить в локалку, правда, все
>>пакеты тем не менее будут через первый интерфейс, ибо подсеть /32.
>>
>>
>>Можете попробовать )
>
>и вы правда верите что интерфейс с единственным адресом .../32 будет принимать
>какие то ip пакеты?

А вы думаете что ARP-протокол на нем работать не будет ?  И что искать по адресу .2 шлюз тоже не будут ? И что найдут мак-адрес карты .1 и слать будут именно на неё ?

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

16. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 15-Май-09, 01:04 
>[оверквотинг удален]
>>>
>>>Можете попробовать )
>>
>>и вы правда верите что интерфейс с единственным адресом .../32 будет принимать
>>какие то ip пакеты?
>
>А вы думаете что ARP-протокол на нем работать не будет ?  
>И что искать по адресу .2 шлюз тоже не будут ?
>И что найдут мак-адрес карты .1 и слать будут именно на
>неё ?

я полагаю с помощью proxy-arp-а ответит первый интерфейс (своим mac-ом)


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

24. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от PavelR (??) on 21-Май-09, 16:17 
>[оверквотинг удален]
>>>
>>>и вы правда верите что интерфейс с единственным адресом .../32 будет принимать
>>>какие то ip пакеты?
>>
>>А вы думаете что ARP-протокол на нем работать не будет ?  
>>И что искать по адресу .2 шлюз тоже не будут ?
>>И что найдут мак-адрес карты .1 и слать будут именно на
>>неё ?
>
>я полагаю с помощью proxy-arp-а ответит первый интерфейс (своим mac-ом)

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

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

11. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от Kos (??) on 14-Май-09, 11:37 
>[оверквотинг удален]
>rl1: 1.1.1.1 - пров №1
>rl2: 2.2.2.2 - пров №2
>Если клиент выходит через шлюз 192.168.1.1 то инет идет через прова №1,
>а если через 192.168.1.2 - через прова №2. Затея в том,
>чтоб клиент мог сам выбрать какой инет ему нужен прописывая у
>себя соответствующий шлюз, а не правила ipfw переписывать для него.
>По статье http://www.opennet.me/base/net/bsd_pbr_route.txt.html казалось бы все просто, но там разные подсети и
>4 интерфейса, но у меня 3 интерфейса и 1 сегмент, а
>еще плату вставлять ну, не красиво, чтоли.
>Как это можно грамотно реализовать?

Какая разница сколько интерфейсов? Можно пустить IP 2-100 по 1 каналу, а 101-200 по второму. Например у человека ip 192.168.1.20, он его меняет на 192.168.1.120 и рулит по второму каналу.

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

14. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от PavelR (??) on 14-Май-09, 20:12 
>[оверквотинг удален]
>>чтоб клиент мог сам выбрать какой инет ему нужен прописывая у
>>себя соответствующий шлюз, а не правила ipfw переписывать для него.
>>По статье http://www.opennet.me/base/net/bsd_pbr_route.txt.html казалось бы все просто, но там разные подсети и
>>4 интерфейса, но у меня 3 интерфейса и 1 сегмент, а
>>еще плату вставлять ну, не красиво, чтоли.
>>Как это можно грамотно реализовать?
>
>Какая разница сколько интерфейсов? Можно пустить IP 2-100 по 1 каналу, а
>101-200 по второму. Например у человека ip 192.168.1.20, он его меняет
>на 192.168.1.120 и рулит по второму каналу.

точно, один фиг в настройки сетевой карты лезть )
правда запомнить .1 и .2 легче, чем правило "+100" .

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

15. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от Kos (??) on 14-Май-09, 23:16 
>[оверквотинг удален]
>>>4 интерфейса, но у меня 3 интерфейса и 1 сегмент, а
>>>еще плату вставлять ну, не красиво, чтоли.
>>>Как это можно грамотно реализовать?
>>
>>Какая разница сколько интерфейсов? Можно пустить IP 2-100 по 1 каналу, а
>>101-200 по второму. Например у человека ip 192.168.1.20, он его меняет
>>на 192.168.1.120 и рулит по второму каналу.
>
>точно, один фиг в настройки сетевой карты лезть )
>правда запомнить .1 и .2 легче, чем правило "+100" .

тем, кто не может запомнить такое простое правило, вообще нефиг делать в настройках сетевой карты. Там так много похожих цифирек.. так легко запутаться)))

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

17. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от dispay666 (ok) on 15-Май-09, 05:21 
А что нужно от интернета? серфить страници и все?
если да, то может можно какнить воткнуть две прокси одна висит на одном интерфейсе и отдает трафик через первого прова, а вторая весит на алиасе и отдает через второго.
Тогда у клиентов поменять в браузере адрес прокси только останется, а в сетевые настройки не лезть.
Да и мониторить поудобнее будет.
Вот ссылка как запустить два Squid-а с разными конфигами:
http://bsd.opennet.ru/openforum/vsluhforumID12/5113.html
Задать через какой канал squid-у выходить:
tcp_outgoing_address ipaddr [[!]aclname] ...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 15-Май-09, 09:32 
>Какая разница сколько интерфейсов? Можно пустить IP 2-100 по 1 каналу, а
>101-200 по второму. Например у человека ip 192.168.1.20, он его меняет
>на 192.168.1.120 и рулит по второму каналу.

скорее всего так и сделаю

>тем, кто не может запомнить такое простое правило, вообще нефиг делать в настройках сетевой карты. Там так много похожих цифирек.. так легко запутаться)))

в вендах есть команда netsh и лазить никуда не надо будет, а просто запустить батничег :))

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

19. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 21-Май-09, 11:55 
Чего-то у меня не получается дальше, прошу помощи.
Есть freebsd 7.0 со встроенным в ядро натом.
Делаю правила:
#!/bin/sh
# internal network
lan_if="rl2"
lan_ip="192.168.2"
lan_net="192.168.2.0/24"

#  isp1 network
isp1_if="rl1"
isp1_ip="10.124.124.240"
isp1_gw="10.124.124.1"

# adsl network
adsl_if="tun0"
adsl_ip=$(ifconfig tun0 | grep inet | awk '{print $2}')
adsl_gw=$(ifconfig tun0 | grep inet | awk '{print $4}')

cmd="ipfw "
${cmd} -f flush

${cmd} add allow ip from any to any via lo0
${cmd} add allow ip from any to any via ${lan_if}

${cmd} add nat 100 ip from ${lan_ip}.2 to any out # этот должен ходить через isp1
${cmd} add nat 200 ip from ${lan_ip}.3 to any out # этот должен ходить через adsl
${cmd} add fwd ${isp1_gw} ip from ${isp1_ip} to any out
${cmd} add fwd ${adsl_gw} ip from ${adsl_ip} to any out
${cmd} add nat 100 ip from any to ${isp1_ip} in
${cmd} add nat 200 ip from any to ${adsl_ip} in
${cmd} nat 100 config if ${isp1_if} same_ports
${cmd} nat 200 config if ${adsl_if} same_ports

${cmd} add allow ip from any to any

adsl соединяется как ppp -ddial adsl, после появляется дефолтовый маршрут на ${adsl_gw}

Вроде сделал аналогично статье, только у меня не natd, а ipfw nat. Получается что у клиента ${lan_ip}.3 инет есть, а у ${lan_ip}.2 нет.
Где что не так?

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

20. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 21-Май-09, 13:11 
>[оверквотинг удален]
>${cmd} add nat 100 ip from ${lan_ip}.2 to any out # этот
>должен ходить через isp1
>${cmd} add nat 200 ip from ${lan_ip}.3 to any out # этот
>должен ходить через adsl
>${cmd} add fwd ${isp1_gw} ip from ${isp1_ip} to any out
>${cmd} add fwd ${adsl_gw} ip from ${adsl_ip} to any out
>${cmd} add nat 100 ip from any to ${isp1_ip} in
>${cmd} add nat 200 ip from any to ${adsl_ip} in
>${cmd} nat 100 config if ${isp1_if} same_ports
>${cmd} nat 200 config if ${adsl_if} same_ports

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

интерфейс ната ни есть ip ната
помоему в этом проблема

еще бы показали ipfw show (получившийся набор живых правил),
ipfw nat show 100 и ipfw nat show 200

а вообще - tcpdump, рекомендую

>[оверквотинг удален]
>
>${cmd} add allow ip from any to any
>
>adsl соединяется как ppp -ddial adsl, после появляется дефолтовый маршрут на ${adsl_gw}
>
>
>Вроде сделал аналогично статье, только у меня не natd, а ipfw nat.
>Получается что у клиента ${lan_ip}.3 инет есть, а у ${lan_ip}.2 нет.
>
>Где что не так?

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

21. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 21-Май-09, 14:25 
>интерфейс ната ни есть ip ната
>помоему в этом проблема

если имеется ввиду if заменить на ip, т.е.:
${cmd} nat 100 config ip ${isp1_ip} same_ports
${cmd} nat 200 config ip ${adsl_ip} same_ports
так я уже делал - тоже самое

ipfw show
00100   0     0 allow ip from any to any via lo0
00200 202 25660 allow ip from any to any via rl2
00300  10   590 nat 100 log logamount 100 ip from 192.168.2.2 to any out
00400   0     0 nat 200 ip from 192.168.2.3 to any out
00500   0     0 fwd 10.124.124.1 ip from 10.124.124.240 to any out
00600   0     0 fwd 78.36.129.1 ip from 78.36.135.81 to any out
00700   0     0 nat 100 ip from any to 10.124.124.240 in
00800   0     0 nat 200 ip from any to 78.36.135.81 in
65535  10  1708 allow ip from any to any

Тут видно, что через нат запросы от 192.168.2.2 проходят и все, а в логе:

/var/log/security
freebsd kernel: ipfw: 300 Nat UDP 192.168.2.2:1043 88.151.185.1:53 out via tun0

и почему tun0?

А вот как с адреса 192.168.2.3 (сначала счетчики обнулил) инет идет через адсл
ipfw show
00100   0      0 allow ip from any to any via lo0
00200 201 129822 allow ip from any to any via rl2
00300   0      0 nat 100 log logamount 100 ip from 192.168.2.2 to any out
00400  67   4451 nat 200 log logamount 100 ip from 192.168.2.3 to any out
00500   0      0 fwd 10.124.124.1 ip from 10.124.124.240 to any out
00600   0      0 fwd 78.36.129.1 ip from 78.36.135.81 to any out
00700   0      0 nat 100 ip from any to 10.124.124.240 in
00800  89 118603 nat 200 ip from any to 78.36.135.81 in
65535   1    229 allow ip from any to any

инет есть и причем пакеты даже не попадают на форвард в правиле 600

tcpdump на интерфейсе ${isp1_if} - тишина, только netbios пакеты

Если положить ppp, то дефолтовый маршрут пропадает, делаю
route add default 10.124.124.1
и пошел инет у клиента 192.168.2.2

Думаю тут дело либо в маршрутах, либо в нат, либо в форвардинге. А куда копать дальше - не знаю.

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

22. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 21-Май-09, 15:01 
>[оверквотинг удален]
>600
>
>tcpdump на интерфейсе ${isp1_if} - тишина, только netbios пакеты
>
>Если положить ppp, то дефолтовый маршрут пропадает, делаю
>route add default 10.124.124.1
>и пошел инет у клиента 192.168.2.2
>
>Думаю тут дело либо в маршрутах, либо в нат, либо в форвардинге.
>А куда копать дальше - не знаю.

у вас fwd не работает
почему - пока идей нет, попробуйте посмотреть как вообще сейчас включается возможность fwd (вкопилячивается в ядро? подгружается модулем? sysctl-и может какие покрутить?), относительно недавно были какие то пляски с бубнами около этой опции

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

23. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 21-Май-09, 15:40 
форвард работает, но как-то не понятно, например, в последнем случае (без ррр) пакеты ходили через правило
fwd 10.124.124.1 ip from 10.124.124.240 to any out

еще обсуждалась опция IPFIREWALL_FORWARD_EXTENDED, но это не касается последних версий

может конечно глупость, но если все максимально упростить - одно правило:
ipfw add fwd 10.124.124.1 log ip from me to any out

далее например ping ya.ru и тишина, а пакеты форвардятся, но не так как хочется:
ipfw: 100 Forward to 10.124.124.1 UDP 78.36.158.174:51031 88.151.184.1:53 out via tun0

при живом ррр они хотят уйти через дефолтовый маршрут

ядро собрано стандартно IPFIREWALL, IPFIREWALL_FORWARD и т.д.

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

26. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от Kos (??) on 21-Май-09, 16:31 
>[оверквотинг удален]
>может конечно глупость, но если все максимально упростить - одно правило:
>ipfw add fwd 10.124.124.1 log ip from me to any out
>
>далее например ping ya.ru и тишина, а пакеты форвардятся, но не так
>как хочется:
>ipfw: 100 Forward to 10.124.124.1 UDP 78.36.158.174:51031 88.151.184.1:53 out via tun0
>
>при живом ррр они хотят уйти через дефолтовый маршрут
>
>ядро собрано стандартно IPFIREWALL, IPFIREWALL_FORWARD и т.д.

10.124.124.1 - это что?
78.36.158.174 - а это что?

Вы часом НАТ на физический интерфейс вместо ppp не повесили?

очень желательно вывод ifconfig

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

28. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 22-Май-09, 08:54 
>10.124.124.1 - это что?

адрес на интерфейсе rl1 к провайдеру обозначенному в правилах как isp1

>78.36.158.174 - а это что?

адрес на интерфейсе tun0 образованный ppp соединением

>Вы часом НАТ на физический интерфейс вместо ppp не повесили?

${cmd} nat 100 config if ${isp1_if} same_ports
${cmd} nat 200 config if ${adsl_if} same_ports
где adsl_if="tun0"

собственно, выше в правилах ipfw я описывал, что есть что

Фря тока загрузилась, при загрузке ppp не подымается (в смысле, пока не прописан в rc.conf) прописан defaultrouter="10.124.124.1" что дальше и видим:
root@/root>netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.124.124.1       UGS         0       12    rl1
10.124.124.0/24    link#2             UC          0        0    rl1
10.124.124.1       00:13:8f:e3:fc:5c  UHLW        2        0    rl1   1113
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.1.0/24     link#1             UC          0        0    rl0
192.168.2.0/24     link#3             UC          0        0    rl2
192.168.2.2        00:17:9a:c2:18:52  UHLW        1       36    rl2   1188
root@/root>ppp -ddial adsl
Loading /lib/libalias_cuseeme.so
Loading /lib/libalias_ftp.so
Loading /lib/libalias_irc.so
Loading /lib/libalias_nbt.so
Loading /lib/libalias_pptp.so
Loading /lib/libalias_skinny.so
Loading /lib/libalias_smedia.so
Working in ddial mode
Using interface: tun0
root@/root>netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            78.36.129.1        UGS         0       12   tun0
10.124.124.0/24    link#2             UC          0        0    rl1
10.124.124.1       00:13:8f:e3:fc:5c  UHLW        1        0    rl1   1082
78.36.129.1        78.36.134.245      UGH         1        0   tun0
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.1.0/24     link#1             UC          0        0    rl0
192.168.2.0/24     link#3             UC          0        0    rl2
192.168.2.2        00:17:9a:c2:18:52  UHLW        1       82    rl2   1157
root@/root>ifconfig -a
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:7d:e1:d6:ea
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:e0:7d:ba:48:31
        inet 10.124.124.240 netmask 0xffffff00 broadcast 10.124.124.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:c0:26:30:da:d1
        inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        inet 78.36.134.245 --> 78.36.129.1 netmask 0xffffffff
        Opened by PID 764
root@/root>

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

29. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 22-Май-09, 08:58 
Пардон,
>10.124.124.1 - это что?

это шлюз провайдера isp1, а адрес на интерфейсе 10.124.124.240

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

31. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от Kos (??) on 22-Май-09, 10:46 
00100   0      0 allow ip from any to any via lo0
00200 201 129822 allow ip from any to any via rl2
00300   0      0 nat 100 log logamount 100 ip from 192.168.2.2 to any out
00400  67   4451 nat 200 log logamount 100 ip from 192.168.2.3 to any out
00500   0      0 fwd 10.124.124.1 ip from 10.124.124.240 to any out
00600   0      0 fwd 78.36.129.1 ip from 78.36.135.81 to any out
00700   0      0 nat 100 ip from any to 10.124.124.240 in
00800  89 118603 nat 200 ip from any to 78.36.135.81 in
65535   1    229 allow ip from any to any

по идее тут все было правильно, только направления в конце (in out) попробуйте убрать. Ну и НАТ должен висеть на 10.124.124.240 и 78.36.135.81

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

32. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 22-Май-09, 12:29 
>по идее тут все было правильно, только направления в конце (in out) попробуйте убрать.

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

>Ну и НАТ должен висеть на 10.124.124.240 и 78.36.135.81

нат у меня и висит на них
${cmd} nat 100 config if ${isp1_if} same_ports
${cmd} nat 200 config if ${adsl_if} same_ports
и пусть вас не смущает if вместо ip, согласно man ipfw:
     ip ip_address
         Define an ip address to use for aliasing.

     if nic  Use ip addres of NIC for aliasing, dynamically changing it if
         NIC's ip address change.

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

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

27. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от GD on 21-Май-09, 16:41 
>[оверквотинг удален]
>может конечно глупость, но если все максимально упростить - одно правило:
>ipfw add fwd 10.124.124.1 log ip from me to any out
>
>далее например ping ya.ru и тишина, а пакеты форвардятся, но не так
>как хочется:
>ipfw: 100 Forward to 10.124.124.1 UDP 78.36.158.174:51031 88.151.184.1:53 out via tun0
>
>при живом ррр они хотят уйти через дефолтовый маршрут
>
>ядро собрано стандартно IPFIREWALL, IPFIREWALL_FORWARD и т.д.

а покажите netstat -rn при поднятом и опущеном ppp

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

30. "PBR: 2 провайдера и локалка. Подскажите как реализовать."  +/
Сообщение от max (??) on 22-Май-09, 10:16 
Вчера вечером, после стаканчика вина =) меня посетила мысль, сегодня утром она реализовалась в следующий набор правил:
00100   0     0 allow ip from any to any via lo0
00200  11  1055 fwd 10.124.124.1 log logamount 100 ip from 192.168.2.2 to not 192.168.2.0/24 in via rl2
00300   0     0 fwd 78.36.129.1 ip from 192.168.2.3 to not 192.168.2.0/24 in via rl2
00400 109 33478 allow ip from any to any via rl2
00500  11  1055 nat 100 log logamount 100 ip from 192.168.2.2 to any out
00600   0     0 nat 200 ip from 192.168.2.3 to any out
00700  19 21538 nat 100 log logamount 100 ip from any to 10.124.124.240 in
00800   0     0 nat 200 ip from any to 78.36.139.97 in
65535 785 88709 allow ip from any to any

В номерах 200 и 300 пакеты при входе на внутренний интерфейс сразу отфутболиваются на свои шлюзы. Эта схема работает как надо: 192.168.2.2 ходит через isp1, 192.168.2.3 ходит через adsl.

/var/log/security
freebsd kernel: ipfw: 200 Forward to 10.124.124.1 TCP 192.168.2.2:1351 88.198.46.171:80 in via rl2
freebsd kernel: ipfw: 500 Nat TCP 192.168.2.2:1351 88.198.46.171:80 out via tun0
freebsd kernel: ipfw: 700 Nat TCP 88.198.46.171:80 10.124.124.240:1351 in via rl1
и т.д.
это сеанс с сайтом 2ip.ru
тут вопрос: почему в правиле 500 out via tun0, когда
ipfw nat 100 config if rl1 same_ports
ipfw nat 200 config if tun0 same_ports
?

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

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

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




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

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