Сначала анекдот с бородой длиннее, чем моя жизнь.
Школьный учитель спрашивает учеников о профессии родителей.
- Тим, чем твоя мама занимается на работе?
Тим встает и гордо говорит:
- Она – доктор.
- Замечательно, ну как насчет тебя, Эмми?
Девочка стеснительно произносит:
- Мой папа разносит почту.
- Спасибо, Эмми, – говорит учитель. – Ну, а твои родители что делают, Билл?
Билл гордо встает и объявляет:
- Мой папа играет музыку в борделе!
Обалдевший учитель решил направиться к Биллу домой.
- В каких условиях вы растите ребенка? – спрашивает он у отца.
Тот отвечает:
- Вообще-то я программист и специализируюсь на 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. См. анекдот.
source address
2011-06-21 02:51Всплыла интересная задачка: на FreeBSD с работающим CARP заставить определённое приложение ходить к одним сетям с виртуального IP-адреса протокола CARP, к другим с других IP-адресов. Само приложение такой гибкости не обеспечивает и работает с сетью, не привязываясь к конкретным IP-адресам.
( Только для пользователей FreeBSD )