|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Andrey Zonov 2:5020/830.28 20 Apr 2007 11:36:35 To : Alexandre Kardanev Subject : Re: ipfw + PBR + default route -------------------------------------------------------------------------------- AK>>> Добавь первым трем divert и всем fwd "out" в конце а остальным - "in" AZ>> Тогда работать будет тот канал, который дефолт-роут. AK> Будут работать все. Если, конечно, все правильно NATится... Т.е. natd AK> запущен правильно. Ежели везде раздается статика, то лучше поначалу AK> запускать natd с ключиком -а. Под словом "будет" я имел ввиду, что я пробовал и не раз. Hапример, только что по-пробовал (поигрался с порядком правил): 550 divert 8670 ip from 10.200.0.0/24 to any out via gif0 600 divert 8668 ip from 10.200.1.0/24 to any out via ng0 800 divert 8672 ip from 10.200.2.0/24 to any out via ng1 850 divert 8670 ip from any to 85.195.156.126 in via dvb0 900 divert 8668 ip from any to 91.144.150.204 in via ng0 950 divert 8672 ip from any to 172.19.42.74 in via ng1 1000 fwd 91.144.148.69 ip from 91.144.150.204 to any 1050 fwd 217.9.147.12 ip from 172.19.42.74 to any 1100 fwd 85.195.156.125 ip from 85.195.156.126 to any У клиентов работает, только спутник (дефолт-роут). Если с сервера делать ping -S$IP ya.ru - то всё ходит "как надо". Если с клиента 10.200.1.77 (его канал ng0) пинговать что-нибудь, то tcpdump -ni ng0 показывает что пакеты которые должны от клиентов уходить в ng0, уходят в gif0! 11:53:19.645786 IP 91.144.150.204 > 82.198.6.1: IP 10.200.1.77 > 194.87.0.50: ICMP echo request, id 1024, seq 7936, length 40 (ipip-proto-4) tcpdump -ni gif0 11:55:04.177402 IP 10.200.1.77 > 194.87.0.50: ICMP echo request, id 1024, seq 14592, length 40 AZ>> Если добавить правило с логом после диверт-правил, то в логах вообще AZ>> пропадает исходящий транзитный пакет! AK> Так и должно быть. Прочитай внимательно man ipfw. fwd эквивалентно pass. Ага. AK> И покажи sysctl net.inet.ip.fw.one_pass. А то вдруг у тебя на divert'е AK> все AK> уходит. net.inet.ip.fw.one_pass: 0 Я всегда думал что эта опция выпускает пакет из ipfw после прохождения pipe. О чём собственно в мане и говорится. net.inet.ip.fw.one_pass: 1 When set, the packet exiting from the dummynet(4) pipe or from ng_ipfw(4) node is not passed though the firewall again. Other- wise, after an action, the packet is reinjected into the firewall at the next rule. AK> tcpdump -n gif0 - к примеру. Hу да. Смотрел. И не раз. tcpdump конечно всё "правильно" показывает, потому что впринципе PBR работает. tcpdump -ni ng0 1. Работаешь из сети для ng0 - пакеты выходит и приходят 2. Работаешь по спутнику (gif0+dvb0) - уходят пакеты через ng0, потом в gif0, приходят на dvb0. AZ>> PS в системе есть 2 костыля: AZ>> 1) асинхронный спутниковый доступ. (ng0 - PPPoE земля, dvb0 - приёмник, AZ>> gif0 - IPIP туннель, не инаксулированный) 2) mpd+freeradius+freenibs - в AZ>> качестве ВПH-сервера, выдаёт всем трём сетям один шлюз 10.200.0.1. Это AZ>> как то можно исправить? чтобы каждой сети выдавался свой шлюз или это AZ>> роли не играет? AK> 1 - было. ipfw fwd разруливался отлично. Правда тогда была 4.9 Я и не спорю что отлично :) Только без указания ифейса в ipfw. AK> 2 - Hе надо исправлять. Роли не играет ибо соединение точка-точка. Спасибо. Успокоил ;-) Успехов! --- GoldED+/W32 snapshot-2000.12.24 * Origin: Жизнь - хорошая штука (2:5020/830.28) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/394446287327.html, оценка из 5, голосов 10
|