[tor-commits] [snowflake/master] Consider more IPs to be local

dcf at torproject.org dcf at torproject.org
Wed Sep 23 18:13:31 UTC 2020


commit 8467c01e9e88523fcdef22fed8efadbd07484966
Author: Peter Gerber <peter at arbitrary.ch>
Date:   Mon Sep 21 15:53:24 2020 +0000

    Consider more IPs to be local
---
 common/util/util.go      | 6 +++++-
 common/util/util_test.go | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/common/util/util.go b/common/util/util.go
index ac254fa..b317e0b 100644
--- a/common/util/util.go
+++ b/common/util/util.go
@@ -56,7 +56,11 @@ func IsLocal(ip net.IP) bool {
 		// Local IPv4 addresses are defined in https://tools.ietf.org/html/rfc1918
 		return ip4[0] == 10 ||
 			(ip4[0] == 172 && ip4[1]&0xf0 == 16) ||
-			(ip4[0] == 192 && ip4[1] == 168)
+			(ip4[0] == 192 && ip4[1] == 168) ||
+			// Carrier-Grade NAT as per https://tools.ietf.org/htm/rfc6598
+			(ip4[0] == 100 && ip4[1]&0xc0 == 64) ||
+			// Dynamic Configuration as per https://tools.ietf.org/htm/rfc3927
+			(ip4[0] == 169 && ip4[1] == 254)
 	}
 	// Local IPv6 addresses are defined in https://tools.ietf.org/html/rfc4193
 	return len(ip) == net.IPv6len && ip[0]&0xfe == 0xfc
diff --git a/common/util/util_test.go b/common/util/util_test.go
index 271619a..9d52f62 100644
--- a/common/util/util_test.go
+++ b/common/util/util_test.go
@@ -14,6 +14,8 @@ func TestUtil(t *testing.T) {
 
 		offer := offerStart + goodCandidate +
 			"a=candidate:3769337065 1 udp 2122260223 192.168.0.100 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsLocal IPv4
+			"a=candidate:3769337065 1 udp 2122260223 100.127.50.5 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsLocal IPv4
+			"a=candidate:3769337065 1 udp 2122260223 169.254.250.88 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsLocal IPv4
 			"a=candidate:3769337065 1 udp 2122260223 fdf8:f53b:82e4::53 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsLocal IPv6
 			"a=candidate:3769337065 1 udp 2122260223 0.0.0.0 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsUnspecified IPv4
 			"a=candidate:3769337065 1 udp 2122260223 :: 56688 typ host generation 0 network-id 1 network-cost 50\r\n" + // IsUnspecified IPv6



More information about the tor-commits mailing list