Как это работает

Маршрутизация по адресам из ответа DNS не сможет разделить два сайта, у которых общий адрес CDN: адрес у Cloudflare один на тысячи доменов, и в туннель может попадать лишнее. firc решает по имени сайта. Для этого он сам отвечает устройствам на запросы DNS.

Пример: chatgpt.com и api.ipify.org

Возьмём два сайта: chatgpt.com нужно пустить через туннель, а api.ipify.org (он показывает ваш внешний адрес) пусть идёт напрямую. Оба живут за Cloudflare.

Обычная схема маршрутизирует по адресам: в ipset попадают IP из ответов DNS или готовые списки подсетей. В списках подсетей для ChatGPT часто лежит весь Cloudflare, поэтому в туннель уходит и api.ipify.org, хотя его нет ни в одном правиле. Так же страдает любой сайт за Cloudflare DNS proxy или другим CDN - у тысяч доменов одни и те же адреса.

firc решает по имени. chatgpt.com уходит в туннель, а api.ipify.org показывает адрес вашего провайдера. Как это устроено — на схеме ниже.

Путь запроса к chatgpt.com и api.ipify.org через fircУстройство спрашивает адресchatgpt.com и api.ipify.orgfirc отвечает на запрос DNSи сверяет имя с правилами группнастоящий ответ firc запоминаетchatgpt.comесть в группе — свойадрес из пула firc198.18.0.12api.ipify.orgправила нет —настоящий адресиз ответа DNSРоутер видит адресиз пула группы и ведётпакет в её интерфейстуннель, VPN, второй провайдерОбычный маршрутроутера, как будтоfirc нетАдрес подменяетсяна настоящий — в туннельНапрямуючерез провайдера