Допустим, моя запись SPF выглядит так:
v=spf1 a:spf.example.com -all
И записи для spf.example.com
выглядят так:
spf.example.com A 12.12.12.12
spf.example.com A 12.42.66.12
spf.example.com A 12.16.48.12
spf.example.com A 12.73.23.12
spf.example.com AAAA 2001:0db8:85a3:0000:0000:8a2e:0370:1001
spf.example.com AAAA 2001:0db8:85a3:0000:0000:5a1e:1288:1001
spf.example.com AAAA 2001:0db8:85a3:0000:0000:3b2e:5241:1001
spf.example.com AAAA 2001:0db8:85a3:0000:0000:2f2e:8361:1001
Все ли эти IP-адреса будут проверены SPF? Если да, то есть ли ограничения на количество A-записей для одного имени? Мне кажется, что ни один из крупных провайдеров, таких как Google или Outlook, не использует этот метод. Это потому, что это плохая практика?
Почему я задаю этот вопрос: я бы предположил, что этот метод лучше, чем использование нескольких включений, из-за ограничения поиска в 10 DNS для записей SPF. С помощью этого метода потребуется только 1 поиск DNS, поэтому я думаю, это ускорит процесс, И вы никогда не достигнете ограничения в 255 символов в TXT-записи для SPF.
Когда вы используете a
механизм в SPF, это означает, что все адреса, найденные при поиске, соответствующие семейству адресов, используемому клиентом, будут сопоставлены. Т.е. если клиент подключился по IPv4, то A
поиск выполняется, если клиент подключился через IPv6 и AAAA
поиск сделан.
Просто с общей точки зрения DNS ограничение на количество записей, которое вы можете иметь для одного имени, не является установленным числом, а скорее ограничением с точки зрения общего размера сообщения при отправке ответа. Вы не можете растянуть все это так далеко.
Вполне может быть какая-то золотая середина, где то, что вы описываете, может послужить полезным трюком, но если вы посмотрите на крупных провайдеров, у них часто есть большие пулы адресов, которые они используют для своих услуг. В них указываются префиксы адресов (возможно с SPF ip4
и ip6
механизмы) вместо того, чтобы делать что-либо, что включает перечисление отдельных адресов (как с A
или AAAA
записи, которые a
механизм приведет к) быстро становится НАМНОГО большей экономии.
Если мы посмотрим на один из упомянутых вами примеров, а именно на Google, мы увидим:
_spf.google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
_netblocks.google.com. 3600 IN TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
_netblocks2.google.com. 3600 IN TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"
_netblocks3.google.com. 3600 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
Это означает, что для типичного пользовательского домена требуется четыре поиска, чтобы указать: