Когда трафик идёт на голый IP (без домена) или нужна грубая маршрутизация «по принадлежности адреса», на сцену выходят IP-правила.

IP-CIDR: по диапазону

- IP-CIDR,192.168.0.0/16,DIRECT      # приватный диапазон напрямую
- IP-CIDR,8.8.8.8/32,PROXY           # одиночный IP - /32
- IP-CIDR6,2001:4860::/32,PROXY      # IPv6 - IP-CIDR6

/N фиксирует первые N бит: /32 - один адрес, /24 - 256 (1.2.3.0-1.2.3.255), /16 - 65 536. Забыть /32 у одиночного адреса - классика.

GEOIP: по стране

- GEOIP,CN,DIRECT

Ядро ищет код страны в комплектной базе MaxMind (Country.mmdb). GEOIP,CN,DIRECT есть почти в каждом китайском профиле: всё, что резолвится в местные адреса, идёт напрямую. База изредка ошибается - лечится доменным правилом выше по списку.

no-resolve: без лишнего DNS

IP-правилу нужен IP назначения. Для доменного трафика ядру пришлось бы резолвить имя только ради проверки правила - медленно, а в fake-ip ещё и вынуждает настоящий резолвинг. С no-resolve доменный трафик пропускает правило целиком - проверяются только соединения, изначально идущие на IP:

- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- GEOIP,CN,DIRECT   # финальному GEOIP обычно не ставят, чтобы домены тоже делились по стране

Рекомендуемая раскладка

  1. Доменные правила (семейство DOMAIN, доменные наборы);
  2. IP-правила приватных диапазонов с no-resolve;
  3. GEOIP,CN,DIRECT;
  4. MATCH,группа в конце.
Совет: пропишите явные прямые правила для LAN-диапазонов (192.168.x.x, 10.x.x.x, …), чтобы принтеры и NAS не поехали через прокси. В большинстве шаблонов подписок они уже есть.