Aren't there better techniques for administering large domains' policies?

Alessandro Vesely <[email protected]> Fri, 22 Jun 2012 17:19:13 +0200
Newsgroups gmane.mail.spam.spf.discuss
Message-ID <[email protected]>
Hi all,
as a small business, I never had problems in expressing an SPF policy.

Gmail has no problems either, as they manage to express their policy
with a single redirect to an _spf record with some ip4 mechanisms
assembled in a 206-byte string (i.e. just one extra udp lookup.)

Microsoft is somewhat less smart.  If you lookup, e.g., outlook.com,
it has a series of include, as I depict below by expanding lookups
with curly braces.  I have no idea how they do it, but they list more
than 50 blocks, so they must deploy some tools to maintain them.

The problem with that approach is that verifiers consume many lookups
before reaching the default.  Domains who need to include outlook.com
along with their own blocks are likely to exceed the permitted number
of lookups and deliver permerror as their default policy.

An alternative I can think of is a tool whereby verifiers can lookup
the target directly.  That is, say, exists:%{ir}._spf.outlook.com.
Are there better choices and/or tools to aid them?  --N.B.: I don't
even try to tell this to M$, the question is purely academic.

outlook.com
{
	v=spf1
	include:spf-a.outlook.com
	{
		v=spf1
			ip4:157.56.232.0/21
			ip4:157.56.240.0/20
			ip4:207.46.198.0/25
			ip4:207.46.4.128/25
			ip4:157.56.24.0/25
			ip4:157.55.157.128/25
			ip4:157.55.61.0/24
			ip4:157.55.49.0/25
			ip4:65.55.174.0/25
			ip4:65.55.126.0/25
			ip4:65.55.113.64/26
			ip4:65.55.94.0/25
		-all"
	}
	include:spf-b.outlook.com
	{
		v=spf1
			ip4:65.55.78.128/25
			ip4:111.221.112.0/21
			ip4:207.46.58.128/25
			ip4:111.221.69.128/25
			ip4:111.221.66.0/25
			ip4:111.221.23.128/25
			ip4:70.37.151.128/25
			ip4:157.56.248.0/21
			ip4:213.199.177.0/26
			ip4:157.55.225.0/25
			ip4:157.55.11.0/25
		-all
	}
	include:spf-c.outlook.com
	{
		v=spf1
			ip4:157.55.9.128/25
		-all
	}
	include:spf.messaging.microsoft.com
	{
		v=spf1
			include:spfa.frontbridge.com
			{
				v=spf1 ip4:157.55.116.128/26
					ip4:157.55.133.0/25
					ip4:157.55.133.160/27
					ip4:157.55.158.0/23
					ip4:157.55.234.0/24
					ip4:157.56.112.0/24
					ip4:157.56.116.0/25
					ip4:157.56.120.0/25
					ip4:207.46.100.0/24
					ip4:207.46.108.0/25
					ip4:207.46.163.0/24
				-all
			}
			include:spfb.frontbridge.com
			{
				v=spf1
					ip4:207.46.51.64/27
					ip4:213.199.154.0/24
					ip4:213.199.180.128/26
					ip4:216.32.180.0/23
					ip4:64.4.22.64/26
					ip4:65.55.83.128/27
					ip4:65.55.169.0/24
					ip4:65.55.88.0/24
					ip4:94.245.120.64/26
					ip4:131.107.0.0/16
					ip4:157.56.73.0/24
				-all"
			}
			include:spfc.frontbridge.com
			{
				v=spf1
					ip4:207.46.101.128/26
					ip6:2a01:111:f400:7c00::/54
					ip6:2a01:111:f400:fc00::/54
					ip4:157.56.87.192/26
					ip4:157.55.40.32/27
					ip4:157.56.123.0/27
					ip4:157.56.91.0/27
				-all
			}
		-all
	}
}