dadv: (stopstupid)
[personal profile] dadv

Сначала анекдот с бородой длиннее, чем моя жизнь.

Школьный учитель спрашивает учеников о профессии родителей.
- Тим, чем твоя мама занимается на работе?
Тим встает и гордо говорит:
- Она – доктор.
- Замечательно, ну как насчет тебя, Эмми?
Девочка стеснительно произносит:
- Мой папа разносит почту.
- Спасибо, Эмми, – говорит учитель. – Ну, а твои родители что делают, Билл?
Билл гордо встает и объявляет:
- Мой папа играет музыку в борделе!
Обалдевший учитель решил направиться к Биллу домой.
- В каких условиях вы растите ребенка? – спрашивает он у отца.
Тот отвечает:
- Вообще-то я программист и специализируюсь на TCP/IP – коммуникационном протоколе в системе UNIX. Ну как объяснить это семилетнему пацану?


Имеем хост под FreeBSD 8.2, подключенный к двум независимым провайдерам A и B, каждый из которых выдал по одному публичному IP-адресу и не предоставляет динамической маршрутизации. default route выставлен в канал A плюс средствами ipfw fwd сделан policy-based routing для исходящих пакетов, чтобы они роутились по каналам в зависимости от src IP.

Из канала B приходит TCP SYN на порт, для которого есть правило ipfw reset tcp, генерирующее в ответ TCP RST. Такие RST плюют на pbr и уходят по default route в канал A. Провайдерский маршрутизатор гробит RST и генерирует в ответ ICMP prohibited by filter, который посылает на адрес источника, взятый из пакета RST. ICMP делает круг по интернету (в соответствии с провайдерским BGP) и возвращается к нам через канал B. См. анекдот.

Date: 2011-08-13 02:28 (UTC)
From: [identity profile] fuflolog.livejournal.com
А разделить функции файервола и маршрутизатора нельзя?

Date: 2011-08-13 08:20 (UTC)
From: [identity profile] fuflolog.livejournal.com
Я правильно понимаю, что, если файервол поставить за маршрутизатором, то RST от него обработается pbr и уйдет в правильную сторону?

Date: 2011-08-14 09:23 (UTC)
From: [identity profile] dadv.livejournal.com
Да. Но дешевле починить прохождение генерируемых ядром пакетов по правилам файрвола или, как в треде уже напомнили, создать на каждый канал свою таблицу маршрутизации (forwarding information base, FIB), прописать в каждую свой default route и назначить соответствующему сетевому интерфейсу, чтобы входящие пакеты получали привязку к нужной FIB. Тогда ответы ядра автоматически будут маршрутизироваться по той же FIB.

В моём случае только решение с FIB-ами не очень годится, потому что динамическая маршрутизация внутри сети у меня таки есть, и RIPv2 бегает, и OSPF в двенадцати областях. Ну, и внешних каналов пять, а не два, но это уже не суть важно.

Date: 2011-08-14 10:21 (UTC)
From: [identity profile] fuflolog.livejournal.com
Ты у меня в ЖЖ не читал историю про жадных и глупых людей, которые всю сетку построили на файерволах? А фигли, файервол же тоже маршрутизировать умеет. Ну и до кучи навесили на файерволы всяких разных функций. И в итоге в один прекрасный день файерволы в core получили обновление антивирусной базы (вместе с engine, как водится), а прожевать его не смогли. И умерли, но умерли интересно - ICMP работал, а все остальное нет. Пока нашли, в чем причина, пока залили рабочую прошивку - прошло несколько часов. Контора была чем-то вроде Visa, только в австралийском масштабе. Несколько часов транзакции не ходили, а че, нормально.

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

Date: 2011-08-14 11:36 (UTC)
From: [identity profile] dadv.livejournal.com
У меня не файрвол с функцией маршрутизатора, у меня маршрутизатор с умением ACL и PBR. И я не верю в автоматические обновления таких базовых функций, максимум базу вирусных сигнатур. engine я обновляю только сам руками.

Date: 2011-09-14 09:46 (UTC)
From: [identity profile] http://users.livejournal.com/_dyr/
Файервол с маршрутизатором в core и с антивирусом?! Я отказываюсь понять логику этих людей.

Date: 2011-09-14 11:11 (UTC)
From: [identity profile] dadv.livejournal.com
Ну, у меня одно время был такой в одном месте, на фре. Сеть очень небольшая и несложная :-) Потом, правда, разнесли почтовый антивирус и маршрутизатор, но совмещение маршрутизатора с файрволом и антивируса с прокси осталось.

Date: 2011-08-15 12:15 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
fibов можно и пять.
и с ospf/rip они должны дружить.

достаточно каждую fib с внешним каналом подцепить динамическим роутингом к основной сети хоть через общий лупбэк

Date: 2011-08-15 17:32 (UTC)
From: [identity profile] dadv.livejournal.com
> достаточно каждую fib с внешним каналом подцепить динамическим роутингом к основной сети хоть через общий лупбэк

Я не знаю, как это делается для quagga.

Date: 2011-08-15 16:12 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
fibы между собой лучше через if_epair соединять.

в общем вариант с несколькими fib и if_epair архитектурно и идеологически наиболее правильный.
превентивно ликвидирует все возможные нестыковки.

я в свое время промучался, плюнул и сказал себе -- "нормально работать будет только после появления аналога vrf lite, слишком много тонкостей учитывать надо".

Date: 2011-08-15 17:33 (UTC)
From: [identity profile] dadv.livejournal.com
Много сущностей без особой необходимости, достаточно для TCP RST починить прохождение по файрволу.

Date: 2011-08-15 18:18 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
потом mtu discovery вылезет или еще что. лучше сразу все вопросы закрыть.

Date: 2011-08-15 19:23 (UTC)
From: [identity profile] dadv.livejournal.com
mtu discovery уже вылезал. Лечится посредством route add ... -mtu 1460 или сколько там было, не помню уже. Было много лет назад, когда у одного регионального магистрала MTU трассы стал ниже 1500.

Date: 2011-08-15 19:24 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
еще что-нибудь вылезет. оно охота каждый раз лечить?

Date: 2011-08-16 10:15 (UTC)
From: [identity profile] dadv.livejournal.com
Как раз чем меньше сущностей, тем реже приходится их лечить.

Date: 2011-08-16 10:17 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
fib -- это минимальное количество сущностей, 0.

Date: 2011-08-16 10:37 (UTC)
From: [identity profile] dadv.livejournal.com
Каждый fib это отдельная сущность. Каждый if_epair это ещё одна отдельная сущность. Демон маршрутизации и необходимость его дружить с fib-ами это тоже сущность.

Date: 2011-08-16 10:40 (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
демонов маршрутизации я от тебя взял.

Profile

dadv: (Default)
Choose your future

July 2024

M T W T F S S
12 34567
891011121314
15161718192021
22232425262728
293031    

Tags

Style Credit

Powered by Dreamwidth Studios