From 23979d76828a0610140ab8cf43572f8c744d571f Mon Sep 17 00:00:00 2001 From: Dominique Ingoglia Date: Tue, 19 Dec 2017 16:48:59 -0700 Subject: [PATCH 01/30] Set CONSENSUS_EXPIRY_TOLERANCE to 0 --- scripts/maint/updateFallbackDirs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 3efd408ec7..8ca5a72961 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -102,7 +102,7 @@ DOWNLOAD_MICRODESC_CONSENSUS = True # 0.3.0.0-alpha-dev and later deliver stale consensuses, but typically recover # after ~12 hours. # We should make this lower when #20909 is fixed, see #20942. -CONSENSUS_EXPIRY_TOLERANCE = 24*60*60 +CONSENSUS_EXPIRY_TOLERANCE = 0 # Output fallback name, flags, bandwidth, and ContactInfo in a C comment? OUTPUT_COMMENTS = True if OUTPUT_CANDIDATES else False From 9a0cf2376de2ea32cf9059c6760b3d6a0c19e6fa Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 21:49:28 +1100 Subject: [PATCH 02/30] Update comment and add changes file for 20942 --- changes/bug20942 | 3 +++ scripts/maint/updateFallbackDirs.py | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 changes/bug20942 diff --git a/changes/bug20942 b/changes/bug20942 new file mode 100644 index 0000000000..f806ddced3 --- /dev/null +++ b/changes/bug20942 @@ -0,0 +1,3 @@ + o Minor features (fallback directory mirrors): + - Reject any fallback directory mirror that serves an expired consensus. + Implements ticket 20942, patch by "minik". diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 8ca5a72961..cf96fc308f 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -98,10 +98,11 @@ DOWNLOAD_MICRODESC_CONSENSUS = True # reject consensuses that are older than REASONABLY_LIVE_TIME. # For the consensus expiry check to be accurate, the machine running this # script needs an accurate clock. -# We use 24 hours to compensate for #20909, where relays on 0.2.9.5-alpha and -# 0.3.0.0-alpha-dev and later deliver stale consensuses, but typically recover -# after ~12 hours. -# We should make this lower when #20909 is fixed, see #20942. +# +# Relays on 0.3.0 and later return a 404 when they are about to serve an +# expired consensus. This makes them fail the download check. +# We use a tolerance of 0, so that 0.2.x series relays also fail the download +# check if they serve an expired consensus. CONSENSUS_EXPIRY_TOLERANCE = 0 # Output fallback name, flags, bandwidth, and ContactInfo in a C comment? From 90fd4566adc7b0129d0b794fb128c786ade7e24b Mon Sep 17 00:00:00 2001 From: Matt Traudt Date: Tue, 19 Dec 2017 18:27:25 -0500 Subject: [PATCH 03/30] Update fallback whitelist and blacklist based on 2017 changes This covers #22321 comments 3-14, including some child tickets. Part of #22321. Patch by pastly. --- scripts/maint/fallback.blacklist | 3 --- scripts/maint/fallback.whitelist | 35 +++++++++++++------------------- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/scripts/maint/fallback.blacklist b/scripts/maint/fallback.blacklist index 1417a13a98..84aa7abe8f 100644 --- a/scripts/maint/fallback.blacklist +++ b/scripts/maint/fallback.blacklist @@ -74,9 +74,6 @@ # Email sent directly to teor, verified using relay contact info 185.21.216.140:9030 orport=9001 id=921DA852C95141F8964B359F774B35502E489869 -# Email sent directly to teor, verified using relay contact info -62.210.82.44:143 orport=21 id=1C90D3AEADFF3BCD079810632C8B85637924A58E ipv6=[2001:bc8:3d7c::]:21 - # Email sent directly to teor, verified using relay contact info 46.101.220.161:80 orport=443 id=7DDFE5B2C306B19A79832FBE581EAA245BAE90C6 ipv6=[2a03:b0c0:3:d0::8b:3001]:443 diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index 0620d6b5fe..6c1504780d 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -28,8 +28,9 @@ # : orport= id= [ ipv6=: ] # https://lists.torproject.org/pipermail/tor-relays/2015-December/008362.html -78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE -131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8 +# https://trac.torproject.org/projects/tor/ticket/22321#comment:22 +78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE ipv6=[2a01:4f8:120:4023::110]:80 # fluxe3 +131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8 ipv6=[2001:638:a000:4140::ffff:188]:80 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008366.html 5.39.88.19:9030 orport=9001 id=7CB8C31432A796731EA7B6BF4025548DFEB25E0C ipv6=[2001:41d0:8:9a13::1]:9050 @@ -52,8 +53,8 @@ # https://lists.torproject.org/pipermail/tor-relays/2015-December/008379.html # Email sent directly to teor, verified using relay contact info -91.121.84.137:4951 orport=4051 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F ipv6=[2001:41d0:1:8989::1]:4051 -91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334 ipv6=[2001:41d0:1:8989::1]:4052 +91.121.84.137:4951 orport=4051 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F +91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008381.html # Sent additional email to teor with more relays @@ -61,7 +62,6 @@ 178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377 178.254.20.134:9030 orport=9001 id=2CE96A8A1DA032664C90F574AFFBECE18A6E8DFC 178.254.44.135:80 orport=443 id=AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2 -178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE 178.254.13.126:9030 orport=9001 id=0C475BA4D3AA3C289B716F95954CAD616E50C4E5 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008382.html @@ -97,10 +97,7 @@ # Email sent directly to teor, verified using relay contact info 171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A ipv6=[2001:67c:289c:3::77]:443 171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE ipv6=[2001:67c:289c:3::78]:443 -171.25.193.131:80 orport=443 id=79861CF8522FC637EF046F7688F5289E49D94576 171.25.193.20:80 orport=443 id=DD8BD7307017407FCC36F8D04A688F74A0774C02 ipv6=[2001:67c:289c::20]:443 -# OK, but same machine as 79861CF8522FC637EF046F7688F5289E49D94576 -#171.25.193.132:80 orport=443 id=01C67E0CA8F97111E652C7564CB3204361FFFAB8 # OK, but same machine as DD8BD7307017407FCC36F8D04A688F74A0774C02 #171.25.193.25:80 orport=443 id=185663B7C12777F052B2C2D23D7A239D8DA88A0F ipv6=[2001:67c:289c::25]:443 @@ -211,9 +208,6 @@ # Email sent directly to teor, verified using relay contact info 46.101.143.173:80 orport=443 id=F960DF50F0FD4075AC9B505C1D4FFC8384C490FB -# Email sent directly to teor, verified using relay contact info -217.79.190.25:9030 orport=9090 id=361D33C96D0F161275EE67E2C91EE10B276E778B - # Email sent directly to teor, verified using relay contact info 193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524 @@ -229,7 +223,7 @@ 193.11.114.46:9032 orport=9003 id=B83DC1558F0D34353BB992EF93AFEAFDB226A73E # Email sent directly to teor, verified using relay contact info -144.76.26.175:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510 +138.201.250.33:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510 # Email sent directly to teor, verified using relay contact info 37.221.162.226:9030 orport=9001 id=D64366987CB39F61AD21DBCF8142FA0577B92811 @@ -247,7 +241,7 @@ 134.119.3.164:9030 orport=9001 id=D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE # Email sent directly to teor, verified using relay contact info -81.7.10.93:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7 +173.212.254.192:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7 # Email sent directly to teor, verified using relay contact info 178.62.22.36:80 orport=443 id=A0766C0D3A667A3232C7D569DE94A28F9922FCB1 ipv6=[2a03:b0c0:1:d0::174:1]:9050 @@ -368,14 +362,6 @@ # Email sent directly to teor, verified using relay contact info 91.219.237.229:80 orport=443 id=1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7 -# Email sent directly to teor, verified using relay contact info -212.47.240.10:82 orport=443 id=2A4C448784F5A83AFE6C78DA357D5E31F7989DEB -# Ok, but on the same machine as 2A4C448784F5A83AFE6C78DA357D5E31F7989DEB -#212.47.240.10:81 orport=993 id=72527E3242CB15AADE28374AE0D35833FC083F60 -163.172.131.88:80 orport=443 id=AD253B49E303C6AB1E048B014392AC569E8A7DAE ipv6=[2001:bc8:4400:2100::2:1009]:443 -# Ok, but on the same machine as AD253B49E303C6AB1E048B014392AC569E8A7DAE -#163.172.131.88:81 orport=993 id=D5F3FB17504744FB7ECEF46F4B1D155258A6D942 ipv6=[2001:bc8:4400:2100::2:1009]:993 - # Email sent directly to teor, verified using relay contact info 46.101.151.222:80 orport=443 id=1DBAED235E3957DE1ABD25B4206BE71406FB61F8 178.62.60.37:80 orport=443 id=175921396C7C426309AB03775A9930B6F611F794 @@ -827,3 +813,10 @@ # Email sent directly to teor, verified using relay contact info 5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2 + +# https://trac.torproject.org/projects/tor/ticket/22321#comment:3 +81.7.11.38:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE +81.7.14.254:9001 orport=443 id=1AE039EE0B11DB79E4B4B29CBA9F752864A0259E + +# https://trac.torproject.org/projects/tor/ticket/22527#comment:1 +199.184.246.250:80 orport=443 id=1F6ABD086F40B890A33C93CC4606EE68B31C9556 ipv6=[2620:124:1009:1::171]:443 From f2a9019569ac197eab2240546ef835bfe3cafb78 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 13:44:07 +1100 Subject: [PATCH 04/30] Update fallback directory mirror details based on opt-ins and opt-outs https://lists.torproject.org/pipermail/tor-relays/2017-December/013898.html Part of 22321. --- scripts/maint/fallback.blacklist | 5 +- scripts/maint/fallback.whitelist | 240 +++++++++++++++++++++++++------ 2 files changed, 202 insertions(+), 43 deletions(-) diff --git a/scripts/maint/fallback.blacklist b/scripts/maint/fallback.blacklist index 84aa7abe8f..fb368376fc 100644 --- a/scripts/maint/fallback.blacklist +++ b/scripts/maint/fallback.blacklist @@ -266,6 +266,9 @@ id=9C8A123081EFBE022EF795630F447839DDFDDDEC # Email sent directly to teor, verified using relay contact info 5.35.251.247:9030 orport=9001 id=9B1F5187DFBA89DC24B37EA7BF896C12B43A27AE -#​https://lists.torproject.org/pipermail/tor-relays/2017-May/012281.html +#https://lists.torproject.org/pipermail/tor-relays/2017-May/012281.html 62.210.124.124:9030 orport=9001 id=86E78DD3720C78DA8673182EF96C54B162CD660C ipv6=[2001:bc8:3f23:100::1]:9001 62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E ipv6=[2001:bc8:3f23:100::1]:9101 + +# Email sent directly to teor +212.51.156.193:995 orport=110 id=32E7AAF1F602814D699BEF6761AD03E387758D49 ipv6=[2a02:168:4a01::49]:110 diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index 6c1504780d..7df2dc2d84 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -30,7 +30,7 @@ # https://lists.torproject.org/pipermail/tor-relays/2015-December/008362.html # https://trac.torproject.org/projects/tor/ticket/22321#comment:22 78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE ipv6=[2a01:4f8:120:4023::110]:80 # fluxe3 -131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8 ipv6=[2001:638:a000:4140::ffff:188]:80 +131.188.40.188:1443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8 ipv6=[2001:638:a000:4140::ffff:188]:80 # fluxe4 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008366.html 5.39.88.19:9030 orport=9001 id=7CB8C31432A796731EA7B6BF4025548DFEB25E0C ipv6=[2001:41d0:8:9a13::1]:9050 @@ -57,12 +57,17 @@ 91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008381.html -# Sent additional email to teor with more relays -178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422 -178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377 -178.254.20.134:9030 orport=9001 id=2CE96A8A1DA032664C90F574AFFBECE18A6E8DFC -178.254.44.135:80 orport=443 id=AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2 -178.254.13.126:9030 orport=9001 id=0C475BA4D3AA3C289B716F95954CAD616E50C4E5 +# Sent additional emails to teor with updated relays +81.7.11.96:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422 # Doedel22 +# 9F5068310818ED7C70B0BC4087AB55CB12CB4377 not found in current consensus +178.254.19.101:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE # Freebird31 +178.254.19.101:9030 orport=9001 id=0C475BA4D3AA3C289B716F95954CAD616E50C4E5 # Freebird32 +81.7.14.253:9001 orport=443 id=1AE039EE0B11DB79E4B4B29CBA9F752864A0259E # Ichotolot60 +81.7.11.186:1080 orport=443 id=B86137AE9681701901C6720E55C16805B46BD8E3 # BeastieJoy60 +85.25.213.211:465 orport=80 id=CE47F0356D86CF0A1A2008D97623216D560FB0A8 # BeastieJoy61 +85.25.159.65:995 orport=80 id=52BFADA8BEAA01BA46C8F767F83C18E2FE50C1B9 # BeastieJoy63 +81.7.3.67:993 orport=443 id=A2E6BB5C391CD46B38C55B4329C35304540771F1 # BeastieJoy62 +81.7.14.31:9001 orport=443 id=7600680249A22080ECC6173FBBF64D6FCF330A61 # Ichotolot62 # https://lists.torproject.org/pipermail/tor-relays/2015-December/008382.html 51.255.33.237:9091 orport=9001 id=A360C21FA87FFA2046D92C17086A6B47E5C68109 @@ -292,14 +297,15 @@ 46.148.18.74:8080 orport=443 id=6CACF0B5F03C779672F3C5C295F37C8D234CA3F7 # Email sent directly to teor, verified using relay contact info -37.187.102.108:9090 orport=5550 id=F4263275CF54A6836EE7BD527B1328836A6F06E1 -212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C +37.187.102.108:80 orport=443 id=F4263275CF54A6836EE7BD527B1328836A6F06E1 ipv6=[2001:41d0:a:266c::1]:443 # EvilMoe +212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C # EvilMoe # Email sent directly to teor, verified using relay contact info 212.129.38.254:9030 orport=9001 id=FDF845FC159C0020E2BDDA120C30C5C5038F74B4 -# Email sent directly to teor, verified using relay contact info -37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2 +# Email sent directly to teor +37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2 # thanatosCZ +5.189.169.190:8030 orport=8080 id=8D79F73DCD91FC4F5017422FAC70074D6DB8DD81 # thanatosDE # Email sent directly to teor, verified using relay contact info 37.187.7.74:80 orport=443 id=AEA43CB1E47BE5F8051711B2BF01683DB1568E05 ipv6=[2001:41d0:a:74a::1]:443 @@ -390,8 +396,8 @@ # Email sent directly to teor, verified using relay contact info 5.199.142.236:9030 orport=9001 id=F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265 -# Email sent directly to teor, verified using relay contact info -188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7 ipv6=[2a03:b0c0:2:d0::5:f001]:9001 +# Email sent directly to teor +188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7 ipv6=[2a03:b0c0:2:d0::26c0:1]:9001 # dropsy # Email sent directly to teor, verified using relay contact info 46.8.249.10:80 orport=443 id=31670150090A7C3513CB7914B9610E786391A95D @@ -462,9 +468,6 @@ # Email sent directly to teor, verified using relay contact info 95.130.11.147:9030 orport=443 id=6B697F3FF04C26123466A5C0E5D1F8D91925967A -# Email sent directly to teor, verified using relay contact info -176.31.191.26:80 orport=443 id=7350AB9ED7568F22745198359373C04AC783C37C - # Email sent directly to teor, verified using relay contact info 128.199.55.207:9030 orport=9001 id=BCEF908195805E03E92CCFE669C48738E556B9C5 ipv6=[2a03:b0c0:2:d0::158:3001]:9001 @@ -483,8 +486,8 @@ # Email sent directly to teor, verified using relay contact info 185.97.32.18:9030 orport=9001 id=04250C3835019B26AA6764E85D836088BE441088 -# Email sent directly to teor, verified using relay contact info -149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76 +# Email sent directly to teor +149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76 ipv6=[2607:5300:201:3000::17d3]:9002 # PiotrTorpotkinOne # Email sent directly to teor, verified using relay contact info 81.2.209.10:443 orport=80 id=B6904ADD4C0D10CDA7179E051962350A69A63243 ipv6=[2001:15e8:201:1::d10a]:80 @@ -522,8 +525,8 @@ # Email sent directly to teor, verified using relay contact info 212.238.208.48:9030 orport=9001 id=F406219CDD339026D160E53FCA0EF6857C70F109 ipv6=[2001:984:a8fb:1:ba27:ebff:feac:c109]:9001 -# Email sent directly to teor, verified using relay contact info -176.158.132.12:9030 orport=9001 id=DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686 +# Email sent directly to teor +176.158.236.102:9030 orport=9001 id=DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686 # Underworld # Email sent directly to teor, verified using relay contact info 91.229.20.27:9030 orport=9001 id=9A0D54D3A6D2E0767596BF1515E6162A75B3293F @@ -531,8 +534,8 @@ # Email sent directly to teor, verified using relay contact info 80.127.137.19:80 orport=443 id=6EF897645B79B6CB35E853B32506375014DE3621 ipv6=[2001:981:47c1:1::6]:443 -# Email sent directly to teor, verified using relay contact info -163.172.138.22:80 orport=443 id=8664DC892540F3C789DB37008236C096C871734D ipv6=[2001:bc8:4400:2100::1:3]:443 +# Email sent directly to teor +163.172.138.22:80 orport=443 id=16102E458460349EE45C0901DAA6C30094A9BBEA ipv6=[2001:bc8:4400:2100::1:3]:443 # mkultra # Email sent directly to teor, verified using relay contact info 97.74.237.196:9030 orport=9001 id=2F0F32AB1E5B943CA7D062C03F18960C86E70D94 @@ -595,10 +598,13 @@ # Email sent directly to teor, verified using relay contact info 31.31.78.49:80 orport=443 id=46791D156C9B6C255C2665D4D8393EC7DBAA7798 -# Email sent directly to teor, verified using relay contact info -96.47.231.214:9030 orport=8080 id=F843CB5729575D76FF1FFBB2179BDCF52C0C6387 -192.99.246.48:9030 orport=9001 id=CD6B149BED1BB254EF6DFF9D75DDB11E7F8A38A4 ipv6=[2607:5300:100:200::de3]:9002 -192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F ipv6=[2605:e200:d00c:c01d::1111]:9002 +# Email sent directly to teor +192.160.102.169:80 orport=9001 id=C0192FF43E777250084175F4E59AC1BA2290CE38 ipv6=[2620:132:300c:c01d::9]:9002 # manipogo +192.160.102.166:80 orport=9001 id=547DA56F6B88B6C596B3E3086803CDA4F0EF8F21 ipv6=[2620:132:300c:c01d::6]:9002 # chaucer +192.160.102.170:80 orport=9001 id=557ACEC850F54EEE65839F83CACE2B0825BE811E ipv6=[2620:132:300c:c01d::a]:9002 # ogopogo +192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F ipv6=[2620:132:300c:c01d::4]:9002 # snowfall +192.160.102.165:80 orport=9001 id=C90CA3B7FE01A146B8268D56977DC4A2C024B9EA ipv6=[2620:132:300c:c01d::5]:9002 # cowcat +192.160.102.168:80 orport=9001 id=F6A358DD367B3282D6EF5824C9D45E1A19C7E815 ipv6=[2620:132:300c:c01d::8]:9002 # prawksi # Email sent directly to teor, verified using relay contact info 136.243.214.137:80 orport=443 id=B291D30517D23299AD7CEE3E60DFE60D0E3A4664 @@ -684,19 +690,44 @@ # Email sent directly to teor, verified using relay contact info 107.170.101.39:9030 orport=443 id=30973217E70AF00EBE51797FF6D9AA720A902EAA -# Email sent directly to teor, verified using relay contact info -192.99.212.139:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC +# Email sent directly to teor +193.70.112.165:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC # ParkBenchInd001 -# Email sent directly to teor, verified using relay contact info -163.172.35.249:80 orport=443 id=C08DE49658E5B3CFC6F2A952B453C4B608C9A16A -163.172.35.247:80 orport=443 id=71AB4726D830FAE776D74AEF790CF04D8E0151B4 +# Email sent directly to teor +185.220.101.6:10006 orport=20006 id=C08DE49658E5B3CFC6F2A952B453C4B608C9A16A # niftyvolcanorabbit +185.220.101.13:10013 orport=20013 id=71AB4726D830FAE776D74AEF790CF04D8E0151B4 # niftycottontail +185.220.101.5:10005 orport=20005 id=1084200B44021D308EA4253F256794671B1D099A # niftyhedgehog +185.220.101.9:10009 orport=20009 id=14877C6384A9E793F422C8D1DDA447CACA4F7C4B # niftywoodmouse +185.220.101.8:10008 orport=20008 id=24E91955D969AEA1D80413C64FE106FAE7FD2EA9 # niftymouse +185.220.101.1:10001 orport=20001 id=28F4F392F8F19E3FBDE09616D9DB8143A1E2DDD3 # niftycottonmouse +185.220.101.21:10021 orport=20021 id=348B89013EDDD99E4755951D1EC284D9FED71226 # niftysquirrel +185.220.101.10:10010 orport=20010 id=4031460683AE9E0512D3620C2758D98758AC6C93 # niftyeuropeanrabbit +185.220.101.34:10034 orport=20034 id=47C42E2094EE482E7C9B586B10BABFB67557030B # niftyquokka +185.220.101.18:10018 orport=20018 id=5D5006E4992F2F97DF4F8B926C3688870EB52BD8 # niftyplagiodontia +185.220.101.28:10028 orport=20028 id=609E598FB6A00BCF7872906B602B705B64541C50 # niftychipmunk +185.220.101.20:10020 orport=20020 id=619349D82424C601CAEB94161A4CF778993DAEE7 # niftytucotuco +185.220.101.17:10017 orport=20017 id=644DECC5A1879C0FE23DE927DD7049F58BBDF349 # niftyhutia +185.220.101.0:10000 orport=20000 id=6E94866ED8CA098BACDFD36D4E8E2B459B8A734E # niftybeaver +185.220.101.30:10030 orport=20030 id=71CFDEB4D9E00CCC3E31EC4E8A29E109BBC1FB36 # niftypedetidae +185.220.101.29:10029 orport=20029 id=7DC52AE6667A30536BA2383CD102CFC24F20AD71 # niftyllipika +185.220.101.41:10041 orport=20041 id=7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3 # niftyporcupine +185.220.101.25:10025 orport=20025 id=8EE0534532EA31AA5172B1892F53B2F25C76EB02 # niftyjerboa +185.220.101.33:10033 orport=20033 id=906DCB390F2BA987AE258D745E60BAAABAD31DE8 # niftyquokka +185.220.101.26:10026 orport=20026 id=92A6085EABAADD928B6F8E871540A1A41CBC08BA # niftypedetes +185.220.101.40:10040 orport=20040 id=9A857254F379194D1CD76F4A79A20D2051BEDA3F # niftynutria +185.220.101.42:10042 orport=20042 id=9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320 # niftypygmyjerboa +185.220.101.2:10002 orport=20002 id=B740BCECC4A9569232CDD45C0E1330BA0D030D33 # niftybunny +185.220.101.32:10032 orport=20032 id=B771AA877687F88E6F1CA5354756DF6C8A7B6B24 # niftypika +185.220.101.12:10012 orport=20012 id=BC82F2190DE2E97DE65F49B4A95572374BDC0789 # niftycapybara +185.220.101.22:10022 orport=20022 id=CA37CD46799449D83B6B98B8C22C649906307888 # niftyjackrabbit +185.220.101.4:10004 orport=20004 id=CDA2EA326E2272C57ACB26773D7252C211795B78 # niftygerbil +185.220.101.14:10014 orport=20014 id=E7EBA5D8A4E09684D11A1DF24F75362817333768 # niftyhare +185.220.101.16:10016 orport=20016 id=EC1997D51892E4607C68E800549A1E7E4694005A # niftyguineapig +185.220.101.24:10024 orport=20024 id=FDA70EC93DB01E3CB418CB6943B0C68464B18B4C # niftyrat # Email sent directly to teor, verified using relay contact info 64.113.32.29:9030 orport=9001 id=30C19B81981F450C402306E2E7CFB6C3F79CB6B2 -# Email sent directly to teor, verified using relay contact info -212.51.156.193:995 orport=110 id=32E7AAF1F602814D699BEF6761AD03E387758D49 ipv6=[2a02:168:4a01::49]:110 - # Emails sent directly to teor, verified using relay contact info 51.254.101.242:9002 orport=9001 id=4CC9CC9195EC38645B699A33307058624F660CCF @@ -762,8 +793,8 @@ # Email sent directly to teor, verified using relay contact info 185.34.60.114:80 orport=443 id=7F7A695DF6F2B8640A70B6ADD01105BC2EBC5135 -# Email sent directly to teor, verified using relay contact info -94.142.242.84:80 orport=443 id=AA0D167E03E298F9A8CD50F448B81FBD7FA80D56 ipv6=[2a02:898:24:84::1]:443 +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013939.html +94.142.242.84:80 orport=443 id=AA0D167E03E298F9A8CD50F448B81FBD7FA80D56 ipv6=[2a02:898:24:84::1]:443 # rejozenger # Email sent directly to teor, verified using relay contact info 185.129.62.62:9030 orport=9001 id=ACDD9E85A05B127BA010466C13C8C47212E8A38F ipv6=[2a06:d380:0:3700::62]:9001 @@ -804,8 +835,8 @@ # Email sent directly to teor, verified using relay contact info 85.214.151.72:9030 orport=9001 id=722D365140C8C52DBB3C9FF6986E3CEFFE2BA812 -# Email sent directly to teor, verified using relay contact info -72.52.75.27:9030 orport=9001 id=1220F0F20E80D348244C5F3B6D126DAA0A446DFD +# email sent directly to teor +72.52.75.27:9030 orport=9001 id=8567AD0A6369ED08527A8A8533A5162AC00F7678 # piecoopdotnet # Email sent directly to teor, verified using relay contact info 5.9.146.203:80 orport=443 id=1F45542A24A61BF9408F1C05E0DCE4E29F2CBA11 @@ -814,9 +845,134 @@ # Email sent directly to teor, verified using relay contact info 5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2 -# https://trac.torproject.org/projects/tor/ticket/22321#comment:3 -81.7.11.38:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE -81.7.14.254:9001 orport=443 id=1AE039EE0B11DB79E4B4B29CBA9F752864A0259E - # https://trac.torproject.org/projects/tor/ticket/22527#comment:1 199.184.246.250:80 orport=443 id=1F6ABD086F40B890A33C93CC4606EE68B31C9556 ipv6=[2620:124:1009:1::171]:443 + +# https://trac.torproject.org/projects/tor/ticket/24695 +163.172.53.84:143 orport=21 id=1C90D3AEADFF3BCD079810632C8B85637924A58E ipv6=[2001:bc8:24f8::]:21 # Multivac + +# Email sent directly to teor +54.36.237.163:80 orport=443 id=DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E # GermanCraft2 + +# Email sent directly to teor +62.138.7.171:9030 orport=9001 id=9844B981A80B3E4B50897098E2D65167E6AEF127 # 0x3d004 +62.138.7.171:8030 orport=8001 id=9285B22F7953D7874604EEE2B470609AD81C74E9 # 0x3d005 +91.121.23.100:9030 orport=9001 id=3711E80B5B04494C971FB0459D4209AB7F2EA799 # 0x3d002 +91.121.23.100:8030 orport=8001 id=CFBBA0D858F02E40B1432A65F6D13C9BDFE7A46B # 0x3d001 +51.15.13.245:9030 orport=9001 id=CED527EAC230E7B56E5B363F839671829C3BA01B # 0x3d006 +51.15.13.245:8030 orport=8001 id=8EBB8D1CF48FE2AB95C451DA8F10DB6235F40F8A # 0x3d007 + +# Email sent directly to teor +104.192.5.248:9030 orport=9001 id=BF735F669481EE1CCC348F0731551C933D1E2278 # Freeway11 + +# Email sent directly to teor +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013961.html +178.17.174.14:9030 orport=9001 id=B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1 # TorExitMoldova +178.17.170.156:9030 orport=9001 id=41C59606AFE1D1AA6EC6EF6719690B856F0B6587 # TorExitMoldova2 + +# Email sent directly to teor +163.172.221.44:59030 orport=59001 id=164604F5C86FC8CC9C0288BD9C02311958427597 # altego + +# Email sent directly to teor +46.38.237.221:9030 orport=9001 id=D30E9D4D639068611D6D96861C95C2099140B805 # mine + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013911.html +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013912.html +199.249.223.62:80 orport=443 id=0077BCBA7244DB3E6A5ED2746E86170066684887 # Quintex13 +199.249.224.45:80 orport=443 id=041646640AB306EA74B001966E86169B04CC88D2 # QuintexAirVPN26 +199.249.223.67:80 orport=443 id=155D6F57425F16C0624D77777641E4EB1B47C6F0 # Quintex18 +199.249.223.45:80 orport=443 id=1AE949967F82BBE7534A3D6BA77A7EBE1CED4369 # Quintex36 +199.249.223.63:80 orport=443 id=1DB25DF59DAA01B5BE3D3CEB8AFED115940EBE8B # Quintex14 +199.249.224.63:80 orport=443 id=1E5136DDC52FAE1219208F0A6BADB0BA62587EE6 # Quintex43 +199.249.224.46:80 orport=443 id=2ED4D25766973713EB8C56A290BF07E06B85BF12 # QuintexAirVPN27 +199.249.223.42:80 orport=443 id=3687FEC7E73F61AC66F7AE251E7DEE6BBD8C0252 # Quintex33 +199.249.223.49:80 orport=443 id=36D68478366CB8627866757EBCE7FB3C17FC1CB8 # Quintex40 +199.249.224.49:80 orport=443 id=3CA0D15567024D2E0B557DC0CF3E962B37999A79 # QuintexAirVPN30 +199.249.223.61:80 orport=443 id=40E7D6CE5085E4CDDA31D51A29D1457EB53F12AD # Quintex12 +199.249.223.76:80 orport=443 id=43209F6D50C657A56FE79AF01CA69F9EF19BD338 # QuintexAirVPN5 +199.249.224.41:80 orport=443 id=54A4820B46E65509BF3E2B892E66930A41759DE9 # QuintexAirVPN22 +199.249.223.73:80 orport=443 id=5649CB2158DA94FB747415F26628BEC07FA57616 # QuintexAirVPN8 +199.249.223.74:80 orport=443 id=5F4CD12099AF20FAF9ADFDCEC65316A376D0201C # QuintexAirVPN7 +199.249.223.75:80 orport=443 id=60D3667F56AEC5C69CF7E8F557DB21DDF6C36060 # QuintexAirVPN6 +199.249.223.46:80 orport=443 id=66E19E8C4773086F669A1E06A3F8C23B6C079129 # Quintex37 +199.249.224.65:80 orport=443 id=764BF8A03868F84C8F323C1A676AA254B80DC3BF # Quintex45 +199.249.223.48:80 orport=443 id=7A3DD280EA4CD4DD16EF8C67B93D9BDE184D1A81 # Quintex39 +199.249.224.68:80 orport=443 id=7E6E9A6FDDB8DC7C92F0CFCC3CBE76C29F061799 # Quintex48 +199.249.223.69:80 orport=443 id=7FA8E7E44F1392A4E40FFC3B69DB3B00091B7FD3 # Quintex20 +199.249.223.44:80 orport=443 id=8B80169BEF71450FC4069A190853523B7AEA45E1 # Quintex35 +199.249.224.60:80 orport=443 id=9314BD9503B9014261A65C221D77E57389DBCCC1 # Quintex50 +199.249.224.40:80 orport=443 id=9C1E7D92115D431385B8CAEA6A7C15FB89CE236B # QuintexAirVPN21 +199.249.223.65:80 orport=443 id=9D21F034C3BFF4E7737D08CF775DC1745706801F # Quintex16 +199.249.224.67:80 orport=443 id=9E2D7C6981269404AA1970B53891701A20424EF8 # Quintex47 +199.249.223.64:80 orport=443 id=9F2856F6D2B89AD4EF6D5723FAB167DB5A53519A # Quintex15 +199.249.224.48:80 orport=443 id=A0DB820FEC87C0405F7BF05DEE5E4ADED2BB9904 # QuintexAirVPN29 +199.249.224.64:80 orport=443 id=A4A393FEF48640961AACE92D041934B55348CEF9 # Quintex44 +199.249.223.72:80 orport=443 id=B028707969D8ED84E6DEA597A884F78AAD471971 # QuintexAirVPN9 +199.249.223.40:80 orport=443 id=B0CD9F9B5B60651ADC5919C0F1EAA87DBA1D9249 # Quintex31 +199.249.224.61:80 orport=443 id=B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B # Quintex41 +199.249.223.71:80 orport=443 id=B6320E44A230302C7BF9319E67597A9B87882241 # QuintexAirVPN10 +199.249.223.60:80 orport=443 id=B7047FBDE9C53C39011CA84E5CB2A8E3543066D0 # Quintex11 +199.249.224.66:80 orport=443 id=C78AFFEEE320EA0F860961763E613FD2FAC855F5 # Quintex46 +199.249.224.44:80 orport=443 id=CB7C0D841FE376EF43F7845FF201B0290C0A239E # QuintexAirVPN25 +199.249.223.47:80 orport=443 id=CC14C97F1D23EE97766828FC8ED8582E21E11665 # Quintex38 +199.249.223.77:80 orport=443 id=CC4A3AE960E3617F49BF9887B79186C14CBA6813 # QuintexAirVPN4 +199.249.223.41:80 orport=443 id=D25210CE07C49F2A4F2BC7A506EB0F5EA7F5E2C2 # Quintex32 +199.249.223.79:80 orport=443 id=D33292FEDE24DD40F2385283E55C87F85C0943B6 # QuintexAirVPN2 +199.249.224.47:80 orport=443 id=D6FF2697CEA5C0C7DA84797C2E71163814FC2466 # QuintexAirVPN28 +199.249.223.68:80 orport=443 id=DF20497E487A979995D851A5BCEC313DF7E5BC51 # Quintex19 +199.249.223.43:80 orport=443 id=E480D577F58E782A5BC4FA6F49A6650E9389302F # Quintex34 +199.249.224.69:80 orport=443 id=EABC2DD0D47B5DB11F2D37EB3C60C2A4D91C10F2 # Quintex49 +199.249.223.78:80 orport=443 id=EC15DB62D9101481F364DE52EB8313C838BDDC29 # QuintexAirVPN3 +199.249.224.42:80 orport=443 id=F21DE9C7DE31601D9716781E17E24380887883D1 # QuintexAirVPN23 +199.249.223.81:80 orport=443 id=F7447E99EB5CBD4D5EB913EE0E35AC642B5C1EF3 # QuintexAirVPN1 +199.249.224.43:80 orport=443 id=FDD700C791CC6BB0AC1C2099A82CBC367AD4B764 # QuintexAirVPN24 +199.249.224.62:80 orport=443 id=FE00A3A835680E67FBBC895A724E2657BB253E97 # Quintex42 +199.249.223.66:80 orport=443 id=C5A53BCC174EF8FD0DCB223E4AA929FA557DEDB2 # Quintex17 + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013914.html +5.196.23.64:9030 orport=9001 id=775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E # Aerodynamik01 +217.182.75.181:9030 orport=9001 id=EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F # Aerodynamik02 +193.70.43.76:9030 orport=9001 id=484A10BA2B8D48A5F0216674C8DD50EF27BC32F3 # Aerodynamik03 +149.56.141.138:9030 orport=9001 id=1938EBACBB1A7BFA888D9623C90061130E63BB3F # Aerodynamik04 + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013917.html +104.200.20.46:80 orport=9001 id=78E2BE744A53631B4AAB781468E94C52AB73968B # bynumlawtor + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013929.html +139.99.130.178:80 orport=443 id=867B95CACD64653FEEC4D2CEFC5C49B4620307A7 # coffswifi2 + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013946.html +172.98.193.43:80 orport=443 id=5E56738E7F97AA81DEEF59AF28494293DFBFCCDF # Backplane + +# Email sent directly to teor +62.210.254.132:80 orport=443 id=8456DFA94161CDD99E480C2A2992C366C6564410 # turingmachine + +# Email sent directly to teor +80.127.117.180:80 orport=443 id=328E54981C6DDD7D89B89E418724A4A7881E3192 ipv6=[2001:985:e77:10::4]:443 # sjc01 + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/013960.html +51.15.205.214:9030 orport=9001 id=8B6556601612F1E2AFCE2A12FFFAF8482A76DD1F ipv6=[2001:bc8:4400:2500::5:b07]:9001 # titania1 +51.15.205.214:9031 orport=9002 id=5E363D72488276160D062DDD2DFA25CFEBAF5EA9 ipv6=[2001:bc8:4400:2500::5:b07]:9002 # titania2 + +# Email sent directly to teor +185.129.249.124:9030 orport=9001 id=1FA8F638298645BE58AC905276680889CB795A94 # treadstone + +# https://lists.torproject.org/pipermail/tor-relays/2017-December/014000.html +24.117.231.229:34175 orport=45117 id=CE24412AD69444954B4015E293AE53DDDAFEA3D6 # Anosognosia + +# https://lists.torproject.org/pipermail/tor-relays/2018-January/014012.html +128.31.0.13:80 orport=443 id=A53C46F5B157DD83366D45A8E99A244934A14C46 # csailmitexit + +# Email sent directly to teor +82.247.103.117:110 orport=995 id=C9B3C1661A9577BA24C1C2C6123918921A495509 # Casper01 +109.238.2.79:110 orport=995 id=7520892E3DD133D0B0464D01A158B54B8E2A8B75 # Casper02 +51.15.179.153:110 orport=995 id=BB60F5BA113A0B8B44B7B37DE3567FE561E92F78 # Casper04 + +# Email sent directly to teor +80.127.107.179:80 orport=443 id=BC6B2E2F62ACC5EDECBABE64DA1E48F84DD98B78 ipv6=[2001:981:4a22:c::6]:443 # TVISION02 + +# https://lists.torproject.org/pipermail/tor-relays/2018-January/014020.html +37.120.174.249:80 orport=443 id=11DF0017A43AF1F08825CD5D973297F81AB00FF3 ipv6=[2a03:4000:6:724c:df98:15f9:b34d:443]:443 # gGDHjdcC6zAlM8k08lX + +# https://lists.torproject.org/pipermail/tor-relays/2018-January/014024.html +82.161.212.209:9030 orport=9001 id=4E8CE6F5651E7342C1E7E5ED031E82078134FB0D ipv6=[2001:980:d7ed:1:ff:b0ff:fe00:d0b]:9001 # ymkeo From a9c0be62a953211553f3c453d62af08f128d0252 Mon Sep 17 00:00:00 2001 From: teor Date: Thu, 4 Jan 2018 09:42:31 +1100 Subject: [PATCH 05/30] Some fallbacks changed their details: assume the changes are permanent We have already updated the details for operators who replied to: https://lists.torproject.org/pipermail/tor-relays/2017-December/013988.html Closes #24678. --- scripts/maint/fallback.whitelist | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index 7df2dc2d84..f2f0acd1cb 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -153,9 +153,10 @@ 109.163.234.8:80 orport=443 id=0818DAE0E2DDF795AEDEAC60B15E71901084F281 109.163.234.9:80 orport=443 id=ABF7FBF389C9A747938B639B20E80620B460B2A9 62.102.148.67:80 orport=443 id=4A0C3E177AF684581EF780981AEAF51A98A6B5CF -77.247.181.162:80 orport=443 id=7BB160A8F54BD74F3DA5F2CE701E8772B841859D -77.247.181.164:80 orport=443 id=10E13E340651D0EF66B4DEBF610B3C0981168107 -77.247.181.166:80 orport=443 id=06E123865C590189B3181114F23F0F13A7BC0E69 +# Assume details update is permanent +77.247.181.166:80 orport=443 id=77131D7E2EC1CA9B8D737502256DA9103599CE51 # CriticalMass +77.247.181.164:80 orport=443 id=204DFD2A2C6A0DC1FA0EACB495218E0B661704FD # HaveHeart +77.247.181.162:80 orport=443 id=7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55 # sofia # https://twitter.com/biotimylated/status/718994247500718080 212.47.252.149:9030 orport=9001 id=2CAC39BAA996791CEFAADC9D4754D65AF5EB77C0 @@ -207,8 +208,9 @@ # Email sent directly to teor, verified using relay contact info 89.187.142.208:80 orport=443 id=64186650FFE4469EBBE52B644AE543864D32F43C -# Email sent directly to teor, verified using relay contact info -212.51.134.123:9030 orport=9001 id=50586E25BE067FD1F739998550EDDCB1A14CA5B2 ipv6=[2a02:168:6e00:0:3a60:77ff:fe9c:8bd1]:9001 +# Email sent directly to teor +# Assume details update is permanent +212.51.134.123:9030 orport=9001 id=50586E25BE067FD1F739998550EDDCB1A14CA5B2 # Jans # Email sent directly to teor, verified using relay contact info 46.101.143.173:80 orport=443 id=F960DF50F0FD4075AC9B505C1D4FFC8384C490FB @@ -217,7 +219,8 @@ 193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524 # Email sent directly to teor, verified using relay contact info -197.231.221.211:9030 orport=9001 id=BC630CBBB518BE7E9F4E09712AB0269E9DC7D626 +# Assume details update is permanent +197.231.221.211:9030 orport=443 id=BC630CBBB518BE7E9F4E09712AB0269E9DC7D626 # IPredator # Email sent directly to teor, verified using relay contact info 185.61.138.18:8080 orport=4443 id=2541759BEC04D37811C2209A88E863320271EC9C @@ -569,7 +572,8 @@ 167.114.113.48:9030 orport=403 id=2EC0C66EA700C44670444280AABAB1EC78B722A0 # Email sent directly to teor, verified using relay contact info -79.120.16.42:9030 orport=9001 id=BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6 +# Assume details update is permanent +213.141.138.174:9030 orport=9001 id=BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6 # Schakalium # Email sent directly to teor, verified using relay contact info 95.128.43.164:80 orport=443 id=616081EC829593AF4232550DE6FFAA1D75B37A90 ipv6=[2a02:ec0:209:10::4]:443 @@ -672,7 +676,8 @@ 213.239.217.18:1338 orport=1337 id=C37BC191AC389179674578C3E6944E925FE186C2 ipv6=[2a01:4f8:a0:746a:101:1:1:1]:1337 # Email sent directly to teor, verified using relay contact info -188.40.128.246:9030 orport=9001 id=AD19490C7DBB26D3A68EFC824F67E69B0A96E601 +# Assume details update is permanent +188.40.128.246:9030 orport=9001 id=AD19490C7DBB26D3A68EFC824F67E69B0A96E601 ipv6=[2a01:4f8:221:1ac1:dead:beef:7005:9001]:9001 # sputnik # Email sent directly to teor, verified using relay contact info 88.198.253.13:9030 orport=9001 id=DF924196D69AAE3C00C115A9CCDF7BB62A175310 ipv6=[2a01:4f8:11a:b1f::2]:9001 @@ -843,7 +848,8 @@ 5.9.159.14:9030 orport=9001 id=0F100F60C7A63BED90216052324D29B08CFCF797 # Email sent directly to teor, verified using relay contact info -5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2 +# Assume details update is permanent +5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2 ipv6=[2a01:4f8:190:30e1::2]:9001 # zwiubel # https://trac.torproject.org/projects/tor/ticket/22527#comment:1 199.184.246.250:80 orport=443 id=1F6ABD086F40B890A33C93CC4606EE68B31C9556 ipv6=[2620:124:1009:1::171]:443 From 23dddaf49b3699fa813d491881681abae4078830 Mon Sep 17 00:00:00 2001 From: teor Date: Thu, 4 Jan 2018 23:42:28 +1100 Subject: [PATCH 06/30] Forgive fallback operators that were blacklisted due to a details change (But have since run a stable relay.) Part of #22321. --- scripts/maint/fallback.blacklist | 44 -------------------------------- scripts/maint/fallback.whitelist | 14 ++++++++-- 2 files changed, 12 insertions(+), 46 deletions(-) diff --git a/scripts/maint/fallback.blacklist b/scripts/maint/fallback.blacklist index fb368376fc..1d0edfd0b9 100644 --- a/scripts/maint/fallback.blacklist +++ b/scripts/maint/fallback.blacklist @@ -35,14 +35,6 @@ 62.210.207.124:9030 orport=9001 id=58938B1A5C4029B4415D38A4F36B7724273F4755 ipv6=[2001:bc8:31eb:100::1]:9001 62.210.207.124:9130 orport=9101 id=338D0AB6DBAB7B529B9C91B2FD770658000693C4 ipv6=[2001:bc8:31eb:100::1]:9101 -# these fallback candidates fail the consensus download test in a way that -# causes stem to hang (and not respond to ^C, at least on OS X) -# (Is something sending weird responses to DirPort traffic?) -#217.23.14.190:1194 -#151.80.164.147:80 -#148.251.255.92:80 -#78.142.19.59:80 - # Email sent directly to teor, verified using relay contact info 216.17.99.183:80 orport=443 id=D52CD431CEF28E01B11F545A84347EE45524BCA7 216.17.99.183:8080 orport=9001 id=EE21F83AB6F76E3B3FFCBA5C2496F789CB84E7C6 @@ -197,45 +189,12 @@ # Email sent directly to teor, verified using relay contact info 88.190.208.4:30555 orport=30556 id=030A6EB24725C05D8E0FCE21923CBA5223E75E0E -# Fallback was on 0.2.8.2-alpha list, but changed fingerprint before 0.2.8.5 -46.101.102.71:80 orport=443 id=9504CB22EEB25D344DE63CB7A6F2C46F895C3686 ipv6=[2a03:b0c0:3:d0::2ed:7001]:9050 -# Also blacklist anything with the new fingerprint -id=9C8A123081EFBE022EF795630F447839DDFDDDEC - -# Fallbacks were on 0.2.8.2-alpha list, but downloads were slow before 0.2.8.5 -185.96.88.29:80 orport=443 id=86C281AD135058238D7A337D546C902BE8505DDE -178.62.36.64:9030 orport=9001 id=B87C84E38DAECFFFFDE98E5AEE5786AFDC748F2C - -# Fallback was on 0.2.8.2-alpha list, but changed address before 0.2.8.5 -84.219.173.60:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34 -# Also blacklist anything with the new address -84.216.235.55:9030 orport=443 - -# Fallbacks were on 0.2.8.2-alpha list, but disappeared before 0.2.8.5 -81.7.17.171:80 orport=443 id=CFECDDCA990E3EF7B7EC958B22441386B6B8D820 ipv6=[2a02:180:1:1::517:11ab]:443 -51.254.215.121:80 orport=443 id=262B66AD25C79588AD1FC8ED0E966395B47E5C1D -185.100.85.138:80 orport=46356 id=5C4DF16A0029CC4F67D3E127356E68F219269859 - # Fallback was on 0.2.8.2-alpha list, but opted-out before 0.2.8.6 37.187.1.149:9030 orport=9001 id=08DC0F3C6E3D9C527C1FC8745D35DD1B0DE1875D ipv6=[2001:41d0:a:195::1]:9001 # Email sent directly to teor, verified using relay contact info 195.154.15.227:9030 orport=9001 id=6C3E3AB2F5F03CD71B637D433BAD924A1ECC5796 -# Fallback was on 0.2.8.6 list, but changed IPv4 before 0.2.9 -195.154.8.111:80 orport=443 id=FCB6695F8F2DC240E974510A4B3A0F2B12AB5B64 -# Same operator, not on 0.2.8.6 list, also changed IPv4 -51.255.235.246:80 orport=443 id=9B99C72B02AF8E3E5BE3596964F9CACD0090D132 - -# Fallback was on 0.2.8.6 list, but changed IPv4 before 0.2.9 -5.175.233.86:80 orport=443 id=5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33 - -# Fallbacks were on 0.2.8.6 list, but went down before 0.2.9 -194.150.168.79:11112 orport=11111 id=29F1020B94BE25E6BE1AD13E93CE19D2131B487C -94.126.23.174:9030 orport=9001 id=6FC6F08270D565BE89B7C819DD8E2D487397C073 -195.191.233.221:80 orport=443 id=DE134FC8E5CC4EC8A5DE66934E70AC9D70267197 -176.31.180.157:143 orport=22 id=E781F4EC69671B3F1864AE2753E0890351506329 ipv6=[2001:41d0:8:eb9d::1]:22 - # Fallback was on 0.2.8.6 list, but opted-out before 0.2.9 144.76.73.140:9030 orport=9001 id=6A640018EABF3DA9BAD9321AA37C2C87BBE1F907 @@ -253,9 +212,6 @@ id=9C8A123081EFBE022EF795630F447839DDFDDDEC # Email sent directly to teor, verified using relay contact info 104.243.35.196:9030 orport=9001 id=FA3415659444AE006E7E9E5375E82F29700CFDFD -# Relay changed IPv4 address, operator uncontactable -138.201.130.32:9030 orport=9001 id=52AEA31188331F421B2EDB494DB65CD181E5B257 - # Emails sent directly to teor, verified using relay contact info 217.12.199.208:80 orport=443 id=DF3AED4322B1824BF5539AE54B2D1B38E080FF05 ipv6=[2a02:27a8:0:2::7e]:443 diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index f2f0acd1cb..c6e23286db 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -112,8 +112,12 @@ 46.28.109.231:9030 orport=9001 id=F70B7C5CD72D74C7F9F2DC84FA9D20D51BA13610 ipv6=[2a02:2b88:2:1::4205:1]:9001 # Email sent directly to teor, verified using relay contact info -85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE -185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216 +85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE # TykRelay01 +185.96.88.29:80 orport=443 id=86C281AD135058238D7A337D546C902BE8505DDE # TykRelay051 +# This fallback opted-in in previous releases, then changed its details, +# and so we blacklisted it. Now we want to whitelist changes. +# Assume details update is permanent +185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216 # TykRelay06 # Email sent directly to teor, verified using relay contact info 185.11.180.67:80 orport=9001 id=794D8EA8343A4E820320265D05D4FA83AB6D1778 @@ -980,5 +984,11 @@ # https://lists.torproject.org/pipermail/tor-relays/2018-January/014020.html 37.120.174.249:80 orport=443 id=11DF0017A43AF1F08825CD5D973297F81AB00FF3 ipv6=[2a03:4000:6:724c:df98:15f9:b34d:443]:443 # gGDHjdcC6zAlM8k08lX +# These fallbacks opted-in in previous releases, then changed their details, +# and so we blacklisted them. Now we want to whitelist changes. +# Assume details update is permanent +85.230.184.93:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34 # Logforme +176.31.180.157:143 orport=22 id=E781F4EC69671B3F1864AE2753E0890351506329 ipv6=[2001:41d0:8:eb9d::1]:22 # armbrust + # https://lists.torproject.org/pipermail/tor-relays/2018-January/014024.html 82.161.212.209:9030 orport=9001 id=4E8CE6F5651E7342C1E7E5ED031E82078134FB0D ipv6=[2001:980:d7ed:1:ff:b0ff:fe00:d0b]:9001 # ymkeo From 5045dde956ec4647cbef5bd0fe81a05f3444012b Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 5 Jan 2018 00:01:15 +1100 Subject: [PATCH 07/30] Stop refusing fallbacks on the same machine We only occasionally checked for fallbacks on the same machine. And I'm not convinced it makes much of a difference with ~150 fallbacks. Part of #22321. --- scripts/maint/fallback.whitelist | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index c6e23286db..b8bb82fd03 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -103,8 +103,8 @@ 171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A ipv6=[2001:67c:289c:3::77]:443 171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE ipv6=[2001:67c:289c:3::78]:443 171.25.193.20:80 orport=443 id=DD8BD7307017407FCC36F8D04A688F74A0774C02 ipv6=[2001:67c:289c::20]:443 -# OK, but same machine as DD8BD7307017407FCC36F8D04A688F74A0774C02 -#171.25.193.25:80 orport=443 id=185663B7C12777F052B2C2D23D7A239D8DA88A0F ipv6=[2001:67c:289c::25]:443 +# same machine as DD8BD7307017407FCC36F8D04A688F74A0774C02 +171.25.193.25:80 orport=443 id=185663B7C12777F052B2C2D23D7A239D8DA88A0F ipv6=[2001:67c:289c::25]:443 # Email sent directly to teor, verified using relay contact info 212.47.229.2:9030 orport=9001 id=20462CBA5DA4C2D963567D17D0B7249718114A68 ipv6=[2001:bc8:4400:2100::f03]:9001 @@ -623,8 +623,8 @@ # Email sent directly to teor, verified using relay contact info 192.87.28.28:9030 orport=9001 id=ED2338CAC2711B3E331392E1ED2831219B794024 -# OK, but same machine as ED2338CAC2711B3E331392E1ED2831219B794024 -#192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7 +# same machine as ED2338CAC2711B3E331392E1ED2831219B794024 +192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7 # https://twitter.com/kosjoli/status/719507270904758272 85.10.202.87:9030 orport=9001 id=971AFB23C168DCD8EDA17473C1C452B359DE3A5A @@ -793,11 +793,11 @@ 178.33.183.251:80 orport=443 id=DD823AFB415380A802DCAEB9461AE637604107FB ipv6=[2001:41d0:2:a683::251]:443 # Email sent directly to teor, verified using relay contact info -#31.185.104.19:80 orport=443 id=9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D -# OK, but on same machine as 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D +31.185.104.19:80 orport=443 id=9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D +# same machine as 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D 31.185.104.20:80 orport=443 id=ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D -#31.185.104.21:80 orport=443 id=C2AAB088555850FC434E68943F551072042B85F1 -#31.185.104.22:80 orport=443 id=5BA3A52760A0EABF7E7C3ED3048A77328FF0F148 +31.185.104.21:80 orport=443 id=C2AAB088555850FC434E68943F551072042B85F1 +31.185.104.22:80 orport=443 id=5BA3A52760A0EABF7E7C3ED3048A77328FF0F148 # Email sent directly to teor, verified using relay contact info 185.34.60.114:80 orport=443 id=7F7A695DF6F2B8640A70B6ADD01105BC2EBC5135 From e3a2324083e370069a0caea1d07f7c58dc11c7af Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 29 Dec 2017 20:22:46 +1100 Subject: [PATCH 08/30] Add a changes file for 22321, that mentions all its children and 24678 --- changes/ticket22321 | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changes/ticket22321 diff --git a/changes/ticket22321 b/changes/ticket22321 new file mode 100644 index 0000000000..fcac1bccc7 --- /dev/null +++ b/changes/ticket22321 @@ -0,0 +1,3 @@ + o Minor features (fallbacks): + - Update the fallback whitelist and blacklist based on opt-ins and relay + changes. Closes tickets 22321, 24678, 22527, 24135, and 24695. From 8d226a2c7b78dc1db998cb6ba075c0170b7cc521 Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 11:36:45 +1100 Subject: [PATCH 09/30] Add a type and version header to the fallback directory mirror file This helps external parsers like stem and Relay Search. Implements ticket 24725. --- changes/ticket24725 | 4 ++++ scripts/maint/updateFallbackDirs.py | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 changes/ticket24725 diff --git a/changes/ticket24725 b/changes/ticket24725 new file mode 100644 index 0000000000..2fe1848ab4 --- /dev/null +++ b/changes/ticket24725 @@ -0,0 +1,4 @@ + o Minor features (fallback directory mirrors): + - Add a type and version header to the fallback directory mirror file. + This helps external parsers like stem and Relay Search. + Implements ticket 24725. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index cf96fc308f..7869d942c1 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -68,6 +68,15 @@ except ImportError: ## Top-Level Configuration +# We use semantic versioning: https://semver.org +# In particular: +# * major changes include removing a mandatory field, or anything else that +# would break an appropriately tolerant parser, +# * minor changes include adding a field, +# * patch changes include changing header comments or other unstructured +# content +FALLBACK_FORMAT_VERSION = '2.0.0' + # Output all candidate fallbacks, or only output selected fallbacks? OUTPUT_CANDIDATES = False @@ -2124,6 +2133,9 @@ def list_fallbacks(whitelist, blacklist): """ Fetches required onionoo documents and evaluates the fallback directory criteria for each of the relays """ + print "/* type=fallback */" + print ("/* version={} */" + .format(cleanse_c_multiline_comment(FALLBACK_FORMAT_VERSION))) logging.warning('Downloading and parsing Onionoo data. ' + 'This may take some time.') # find relays that could be fallbacks From 0e6fdbea8d788130d22a6c43772f60df2f05bc00 Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 11:38:41 +1100 Subject: [PATCH 10/30] Add a version 1.0.0 header to the current fallback file The upcoming fallback rebuild will automatically generate this new format, with version 2.0.0. Follow-up to 24725. --- src/or/fallback_dirs.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index cc37e5f9af..72f8d520cf 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -1,3 +1,5 @@ +/* type=fallback */ +/* version=1.0.0 */ /* Whitelist & blacklist excluded 1326 of 1513 candidates. */ /* To comment-out entries in this file, use C comments, and add * to the start of each line. (stem finds fallback entries using " at the start of a line.) */ /* Checked IPv4 DirPorts served a consensus within 15.0s. */ From ac5058ac8a6eeb3ebb0790d33dbeee4473dcaae7 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 23:05:45 +1100 Subject: [PATCH 11/30] Remove the "weight=10" line from fallback directory mirror entries This removes some redundant repeated lines. Ticket 24681 will maintain the current fallback weights by changing Tor's default fallback weight to 10. Implements ticket 24679. --- changes/ticket24679 | 5 +++++ scripts/maint/updateFallbackDirs.py | 19 ++----------------- 2 files changed, 7 insertions(+), 17 deletions(-) create mode 100644 changes/ticket24679 diff --git a/changes/ticket24679 b/changes/ticket24679 new file mode 100644 index 0000000000..183e60ae97 --- /dev/null +++ b/changes/ticket24679 @@ -0,0 +1,5 @@ + o Minor features (fallback directory mirrors): + - Remove the "weight=10" line from fallback directory mirror entries. + Ticket 24681 will maintain the current fallback weights by changing + Tor's default fallback weight to 10. + Implements ticket 24679. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 7869d942c1..7bd6fae0e3 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -245,21 +245,6 @@ CONSENSUS_DOWNLOAD_SPEED_MAX = 15.0 # This avoids delisting a relay due to transient network conditions CONSENSUS_DOWNLOAD_RETRY = True -## Fallback Weights for Client Selection - -# All fallback weights are equal, and set to the value below -# Authorities are weighted 1.0 by default -# Clients use these weights to select fallbacks and authorities at random -# If there are 100 fallbacks and 9 authorities: -# - each fallback is chosen with probability 10.0/(10.0*100 + 1.0*9) ~= 0.99% -# - each authority is chosen with probability 1.0/(10.0*100 + 1.0*9) ~= 0.09% -# A client choosing a bootstrap directory server will choose a fallback for -# 10.0/(10.0*100 + 1.0*9) * 100 = 99.1% of attempts, and an authority for -# 1.0/(10.0*100 + 1.0*9) * 9 = 0.9% of attempts. -# (This disregards the bootstrap schedules, where clients start by choosing -# from fallbacks & authoritites, then later choose from only authorities.) -FALLBACK_OUTPUT_WEIGHT = 10.0 - ## Parsing Functions def parse_ts(t): @@ -1346,7 +1331,7 @@ class Candidate(object): def fallbackdir_info(self, dl_speed_ok): # "address:dirport orport=port id=fingerprint" # "[ipv6=addr:orport]" - # "weight=FALLBACK_OUTPUT_WEIGHT", + # , # # Do we want a C string, or a commented-out string? c_string = dl_speed_ok @@ -1370,7 +1355,7 @@ class Candidate(object): if self.has_ipv6(): s += '" ipv6=%s:%d"'%(cleanse_c_string(self.ipv6addr), self.ipv6orport) s += '\n' - s += '" weight=%d",'%(FALLBACK_OUTPUT_WEIGHT) + s += ',' if comment_string: s += '\n' s += '*/' From 384a450a472818ff13b18b971c92f7a52ca71ac9 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 23:26:14 +1100 Subject: [PATCH 12/30] Remove weights from the current fallback file Using this script: sed -i.bak 's/" weight=10",/,/' src/or/fallback_dirs.inc This allows us to check that the code compiles, and the unit tests pass. And it allows downstream users stem and atlas to adapt to the new format. The upcoming fallback rebuild will automatically generate this new format. Follow-up to 24679. --- src/or/fallback_dirs.inc | 302 +++++++++++++++++++-------------------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index 72f8d520cf..397121b128 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -17,356 +17,356 @@ Onionoo Source: uptime Date: 2017-05-16 07:00:00 Version: 4.0 URL: https:onionoo.torproject.orguptime?first_seen_days=30-&flag=V2Dir&type=relay&last_seen_days=-0 */ "176.10.104.240:80 orport=443 id=0111BA9B604669E636FFD5B503F382A4B7AD6E80" -" weight=10", +, "193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524" -" weight=10", +, "185.100.85.61:80 orport=443 id=025B66CEBC070FCB0519D206CF0CF4965C20C96E" -" weight=10", +, "185.97.32.18:9030 orport=9001 id=04250C3835019B26AA6764E85D836088BE441088" -" weight=10", +, "5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB" " ipv6=[2a01:4f8:162:51e2::2]:9001" -" weight=10", +, "109.163.234.8:80 orport=443 id=0818DAE0E2DDF795AEDEAC60B15E71901084F281" -" weight=10", +, "163.172.149.155:80 orport=443 id=0B85617241252517E8ECF2CFC7F4C1A32DCD153F" -" weight=10", +, "5.39.92.199:80 orport=443 id=0BEA4A88D069753218EAAAD6D22EA87B9A1319D6" " ipv6=[2001:41d0:8:b1c7::1]:443" -" weight=10", +, "178.62.197.82:80 orport=443 id=0D3EBA17E1C78F1E9900BABDB23861D46FCAF163" -" weight=10", +, "185.100.86.100:80 orport=443 id=0E8C0C8315B66DB5F703804B3889A1DD66C67CE0" -" weight=10", +, "95.85.8.226:80 orport=443 id=1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423" -" weight=10", +, "193.11.114.43:9030 orport=9001 id=12AD30E5D25AA67F519780E2111E611A455FDC89" " ipv6=[2001:6b0:30:1000::99]:9050" -" weight=10", +, "37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2" -" weight=10", +, "178.16.208.59:80 orport=443 id=136F9299A5009A4E0E96494E723BDB556FB0A26B" " ipv6=[2a00:1c20:4089:1234:bff6:e1bb:1ce3:8dc6]:443" -" weight=10", +, "144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" " ipv6=[2a01:4f8:190:9490::dead]:443" -" weight=10", +, "178.62.60.37:80 orport=443 id=175921396C7C426309AB03775A9930B6F611F794" -" weight=10", +, "204.11.50.131:9030 orport=9001 id=185F2A57B0C4620582602761097D17DB81654F70" -" weight=10", +, "5.9.158.75:80 orport=443 id=1AF72E8906E6C49481A791A6F8F84F8DFEBBB2BA" " ipv6=[2a01:4f8:190:514a::2]:443" -" weight=10", +, "46.101.151.222:80 orport=443 id=1DBAED235E3957DE1ABD25B4206BE71406FB61F8" -" weight=10", +, "91.219.237.229:80 orport=443 id=1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7" -" weight=10", +, "212.47.229.2:9030 orport=9001 id=20462CBA5DA4C2D963567D17D0B7249718114A68" " ipv6=[2001:bc8:4400:2100::f03]:9001" -" weight=10", +, "144.76.163.93:9030 orport=9001 id=22F08CF09764C4E8982640D77F71ED72FF26A9AC" -" weight=10", +, "163.172.176.167:80 orport=443 id=230A8B2A8BA861210D9B4BA97745AEC217A94207" -" weight=10", +, "37.200.98.5:80 orport=443 id=231C2B9C8C31C295C472D031E06964834B745996" " ipv6=[2a00:1158:3::11a]:993" -" weight=10", +, "212.47.240.10:82 orport=443 id=2A4C448784F5A83AFE6C78DA357D5E31F7989DEB" -" weight=10", +, "144.76.26.175:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510" -" weight=10", +, "97.74.237.196:9030 orport=9001 id=2F0F32AB1E5B943CA7D062C03F18960C86E70D94" -" weight=10", +, "107.170.101.39:9030 orport=443 id=30973217E70AF00EBE51797FF6D9AA720A902EAA" -" weight=10", +, "64.113.32.29:9030 orport=9001 id=30C19B81981F450C402306E2E7CFB6C3F79CB6B2" -" weight=10", +, "212.83.154.33:8080 orport=8443 id=322C6E3A973BC10FC36DE3037AD27BC89F14723B" -" weight=10", +, "109.105.109.162:52860 orport=60784 id=32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F" " ipv6=[2001:948:7:2::163]:5001" -" weight=10", +, "163.172.13.165:9030 orport=9001 id=33DA0CAB7C27812EFF2E22C9705630A54D101FEB" " ipv6=[2001:bc8:38cb:201::8]:9001" -" weight=10", +, "217.79.190.25:9030 orport=9090 id=361D33C96D0F161275EE67E2C91EE10B276E778B" -" weight=10", +, "37.187.22.87:9030 orport=9001 id=36B9E7AC1E36B62A9D6F330ABEB6012BA7F0D400" " ipv6=[2001:41d0:a:1657::1]:9001" -" weight=10", +, "62.210.92.11:9130 orport=9101 id=387B065A38E4DAA16D9D41C2964ECBC4B31D30FF" " ipv6=[2001:bc8:338c::1]:9101" -" weight=10", +, "198.50.191.95:80 orport=443 id=39F096961ED2576975C866D450373A9913AFDC92" -" weight=10", +, "164.132.77.175:9030 orport=9001 id=3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B" -" weight=10", +, "212.47.230.49:9030 orport=9001 id=3D6D0771E54056AEFC28BB1DE816951F11826E97" -" weight=10", +, "176.10.107.180:9030 orport=9001 id=3D7E274A87D9A89AF064C13D1EE4CA1F184F2600" -" weight=10", +, "217.79.179.177:9030 orport=9001 id=3E53D3979DB07EFD736661C934A1DED14127B684" " ipv6=[2001:4ba0:fff9:131:6c4f::90d3]:9001" -" weight=10", +, "178.62.86.96:9030 orport=9001 id=439D0447772CB107B886F7782DBC201FA26B92D1" " ipv6=[2a03:b0c0:1:d0::3cf:7001]:9050" -" weight=10", +, "163.172.157.213:8080 orport=443 id=4623A9EC53BFD83155929E56D6F7B55B5E718C24" -" weight=10", +, "31.31.78.49:80 orport=443 id=46791D156C9B6C255C2665D4D8393EC7DBAA7798" -" weight=10", +, "69.162.139.9:9030 orport=9001 id=4791FC0692EAB60DF2BCCAFF940B95B74E7654F6" " ipv6=[2607:f128:40:1212::45a2:8b09]:9001" -" weight=10", +, "51.254.246.203:9030 orport=9001 id=47B596B81C9E6277B98623A84B7629798A16E8D5" -" weight=10", +, "37.187.102.186:9030 orport=9001 id=489D94333DF66D57FFE34D9D59CC2D97E2CB0053" " ipv6=[2001:41d0:a:26ba::1]:9001" -" weight=10", +, "188.165.194.195:9030 orport=9001 id=49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF" -" weight=10", +, "62.102.148.67:80 orport=443 id=4A0C3E177AF684581EF780981AEAF51A98A6B5CF" -" weight=10", +, "51.254.101.242:9002 orport=9001 id=4CC9CC9195EC38645B699A33307058624F660CCF" -" weight=10", +, "81.7.16.182:80 orport=443 id=51E1CF613FD6F9F11FE24743C91D6F9981807D82" " ipv6=[2a02:180:1:1::517:10b6]:993" -" weight=10", +, "94.23.204.175:9030 orport=9001 id=5665A3904C89E22E971305EE8C1997BCA4123C69" -" weight=10", +, "95.130.12.119:80 orport=443 id=587E0A9552E4274B251F29B5B2673D38442EE4BF" -" weight=10", +, "185.21.100.50:9030 orport=9001 id=58ED9C9C35E433EE58764D62892B4FFD518A3CD0" " ipv6=[2a00:1158:2:cd00:0:74:6f:72]:443" -" weight=10", +, "78.142.142.246:80 orport=443 id=5A5E03355C1908EBF424CAF1F3ED70782C0D2F74" -" weight=10", +, "120.29.217.46:80 orport=443 id=5E853C94AB1F655E9C908924370A0A6707508C62" -" weight=10", +, "109.163.234.5:80 orport=443 id=5EB8D862E70981B8690DEDEF546789E26AB2BD24" -" weight=10", +, "95.128.43.164:80 orport=443 id=616081EC829593AF4232550DE6FFAA1D75B37A90" " ipv6=[2a02:ec0:209:10::4]:443" -" weight=10", +, "163.172.139.104:8080 orport=443 id=68F175CCABE727AA2D2309BCD8789499CEE36ED7" -" weight=10", +, "85.214.62.48:80 orport=443 id=6A7551EEE18F78A9813096E82BF84F740D32B911" -" weight=10", +, "80.127.137.19:80 orport=443 id=6EF897645B79B6CB35E853B32506375014DE3621" " ipv6=[2001:981:47c1:1::6]:443" -" weight=10", +, "95.183.48.12:80 orport=443 id=7187CED1A3871F837D0E60AC98F374AC541CB0DA" -" weight=10", +, "85.214.151.72:9030 orport=9001 id=722D365140C8C52DBB3C9FF6986E3CEFFE2BA812" -" weight=10", +, "85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE" -" weight=10", +, "176.31.191.26:80 orport=443 id=7350AB9ED7568F22745198359373C04AC783C37C" -" weight=10", +, "134.119.36.135:80 orport=443 id=763C9556602BD6207771A7A3D958091D44C43228" " ipv6=[2a00:1158:3::2a8]:993" -" weight=10", +, "188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7" " ipv6=[2a03:b0c0:2:d0::5:f001]:9001" -" weight=10", +, "81.30.158.213:9030 orport=9001 id=789EA6C9AE9ADDD8760903171CFA9AC5741B0C70" " ipv6=[2001:4ba0:cafe:e84::1]:9001" -" weight=10", +, "171.25.193.131:80 orport=443 id=79861CF8522FC637EF046F7688F5289E49D94576" -" weight=10", +, "82.223.21.74:9030 orport=9001 id=7A32C9519D80CA458FC8B034A28F5F6815649A98" " ipv6=[2001:470:53e0::cafe]:9050" -" weight=10", +, "51.254.136.195:80 orport=443 id=7BB70F8585DFC27E75D692970C0EEB0F22983A63" -" weight=10", +, "193.11.114.45:9031 orport=9002 id=80AAF8D5956A43C197104CEF2550CD42D165C6FB" -" weight=10", +, "192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F" " ipv6=[2605:e200:d00c:c01d::1111]:9002" -" weight=10", +, "192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7" -" weight=10", +, "188.166.23.127:80 orport=443 id=8672E8A01B4D3FA4C0BBE21C740D4506302EA487" " ipv6=[2a03:b0c0:2:d0::27b:7001]:9050" -" weight=10", +, "93.180.156.84:9030 orport=9001 id=8844D87E9B038BE3270938F05AF797E1D3C74C0F" -" weight=10", +, "212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C" -" weight=10", +, "163.172.194.53:9030 orport=9001 id=8C00FA7369A7A308F6A137600F0FA07990D9D451" " ipv6=[2001:bc8:225f:142:6c69:7461:7669:73]:9001" -" weight=10", +, "178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422" -" weight=10", +, "151.80.42.103:9030 orport=9001 id=9007C1D8E4F03D506A4A011B907A9E8D04E3C605" " ipv6=[2001:41d0:e:f67::114]:9001" -" weight=10", +, "173.255.245.116:9030 orport=9001 id=91E4015E1F82DAF0121D62267E54A1F661AB6DC7" -" weight=10", +, "51.255.41.65:9030 orport=9001 id=9231DF741915AA1630031A93026D88726877E93A" -" weight=10", +, "178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A" " ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443" -" weight=10", +, "91.219.237.244:80 orport=443 id=92ECC9E0E2AF81BB954719B189AC362E254AD4A5" -" weight=10", +, "204.8.156.142:80 orport=443 id=94C4B7B8C50C86A92B6A20107539EE2678CF9A28" -" weight=10", +, "163.172.223.200:80 orport=443 id=998BF3ED7F70E33D1C307247B9626D9E7573C438" -" weight=10", +, "81.7.10.93:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7" -" weight=10", +, "91.229.20.27:9030 orport=9001 id=9A0D54D3A6D2E0767596BF1515E6162A75B3293F" -" weight=10", +, "66.111.2.20:9030 orport=9001 id=9A68B85A02318F4E7E87F2828039FBD5D75B0142" -" weight=10", +, "185.100.86.128:9030 orport=9001 id=9B31F1F1C1554F9FFB3455911F82E818EF7C7883" -" weight=10", +, "5.9.151.241:9030 orport=4223 id=9BF04559224F0F1C3C953D641F1744AF0192543A" " ipv6=[2a01:4f8:190:34f0::2]:4223" -" weight=10", +, "86.105.212.130:9030 orport=443 id=9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022" -" weight=10", +, "178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" -" weight=10", +, "46.28.110.244:80 orport=443 id=9F7D6E6420183C2B76D3CE99624EBC98A21A967E" -" weight=10", +, "91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334" " ipv6=[2001:41d0:1:8989::1]:4052" -" weight=10", +, "178.62.22.36:80 orport=443 id=A0766C0D3A667A3232C7D569DE94A28F9922FCB1" " ipv6=[2a03:b0c0:1:d0::174:1]:9050" -" weight=10", +, "171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A" " ipv6=[2001:67c:289c:3::77]:443" -" weight=10", +, "171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE" " ipv6=[2001:67c:289c:3::78]:443" -" weight=10", +, "163.172.149.122:80 orport=443 id=A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2" -" weight=10", +, "192.34.63.137:9030 orport=443 id=ABCB4965F1FEE193602B50A365425105C889D3F8" -" weight=10", +, "109.163.234.9:80 orport=443 id=ABF7FBF389C9A747938B639B20E80620B460B2A9" -" weight=10", +, "86.59.119.88:80 orport=443 id=ACD889D86E02EDDAB1AFD81F598C0936238DC6D0" -" weight=10", +, "185.129.62.62:9030 orport=9001 id=ACDD9E85A05B127BA010466C13C8C47212E8A38F" " ipv6=[2a06:d380:0:3700::62]:9001" -" weight=10", +, "163.172.131.88:80 orport=443 id=AD253B49E303C6AB1E048B014392AC569E8A7DAE" " ipv6=[2001:bc8:4400:2100::2:1009]:443" -" weight=10", +, "31.185.104.20:80 orport=443 id=ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D" -" weight=10", +, "37.187.7.74:80 orport=443 id=AEA43CB1E47BE5F8051711B2BF01683DB1568E05" " ipv6=[2001:41d0:a:74a::1]:443" -" weight=10", +, "46.28.205.170:80 orport=443 id=AF322D83A4D2048B22F7F1AF5F38AFF4D09D0B76" -" weight=10", +, "5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2" -" weight=10", +, "212.129.62.232:80 orport=443 id=B143D439B72D239A419F8DCE07B8A8EB1B486FA7" -" weight=10", +, "198.199.64.217:80 orport=443 id=B1D81825CFD7209BD1B4520B040EF5653C204A23" " ipv6=[2604:a880:400:d0::1a9:b001]:9050" -" weight=10", +, "136.243.214.137:80 orport=443 id=B291D30517D23299AD7CEE3E60DFE60D0E3A4664" -" weight=10", +, "178.16.208.60:80 orport=443 id=B44FBE5366AD98B46D829754FA4AC599BAE41A6A" " ipv6=[2a00:1c20:4089:1234:67bc:79f3:61c0:6e49]:443" -" weight=10", +, "93.115.97.242:9030 orport=9001 id=B5212DB685A2A0FCFBAE425738E478D12361710D" -" weight=10", +, "81.2.209.10:443 orport=80 id=B6904ADD4C0D10CDA7179E051962350A69A63243" " ipv6=[2001:15e8:201:1::d10a]:80" -" weight=10", +, "193.11.114.46:9032 orport=9003 id=B83DC1558F0D34353BB992EF93AFEAFDB226A73E" -" weight=10", +, "85.248.227.164:444 orport=9002 id=B84F248233FEA90CAD439F292556A3139F6E1B82" " ipv6=[2a00:1298:8011:212::164]:9004" -" weight=10", +, "89.163.247.43:9030 orport=9001 id=BC7ACFAC04854C77167C7D66B7E471314ED8C410" " ipv6=[2001:4ba0:fff7:25::5]:9001" -" weight=10", +, "198.96.155.3:8080 orport=5001 id=BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E" -" weight=10", +, "128.199.55.207:9030 orport=9001 id=BCEF908195805E03E92CCFE669C48738E556B9C5" " ipv6=[2a03:b0c0:2:d0::158:3001]:9001" -" weight=10", +, "185.35.202.221:9030 orport=9001 id=C13B91384CDD52A871E3ECECE4EF74A7AC7DCB08" " ipv6=[2a02:ed06::221]:9001" -" weight=10", +, "213.239.217.18:1338 orport=1337 id=C37BC191AC389179674578C3E6944E925FE186C2" " ipv6=[2a01:4f8:a0:746a:101:1:1:1]:1337" -" weight=10", +, "188.138.112.60:1433 orport=1521 id=C414F28FD2BEC1553024299B31D4E726BEB8E788" -" weight=10", +, "85.248.227.163:443 orport=9001 id=C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9" " ipv6=[2a00:1298:8011:212::163]:9003" -" weight=10", +, "178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE" " ipv6=[2a03:b0c0:2:d0::b7:5001]:443" -" weight=10", +, "134.119.3.164:9030 orport=9001 id=D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE" -" weight=10", +, "31.171.155.108:9030 orport=9001 id=D3E5EDDBE5159388704D6785BE51930AAFACEC6F" -" weight=10", +, "37.187.115.157:9030 orport=9001 id=D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A" -" weight=10", +, "166.82.21.200:9030 orport=9029 id=D5C33F3E203728EDF8361EA868B2939CCC43FAFB" -" weight=10", +, "185.14.185.240:9030 orport=443 id=D62FB817B0288085FAC38A6DC8B36DCD85B70260" -" weight=10", +, "46.101.169.151:9030 orport=9001 id=D760C5B436E42F93D77EF2D969157EEA14F9B39C" " ipv6=[2a03:b0c0:3:d0::74f:a001]:9001" -" weight=10", +, "46.4.111.124:9030 orport=9001 id=D9065F9E57899B3D272AA212317AF61A9B14D204" -" weight=10", +, "193.35.52.53:9030 orport=9001 id=DAA39FC00B196B353C2A271459C305C429AF09E4" -" weight=10", +, "178.33.183.251:80 orport=443 id=DD823AFB415380A802DCAEB9461AE637604107FB" " ipv6=[2001:41d0:2:a683::251]:443" -" weight=10", +, "178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10" " ipv6=[2a03:b0c0:0:1010::a4:b001]:9001" -" weight=10", +, "5.34.183.205:80 orport=443 id=DDD7871C1B7FA32CB55061E08869A236E61BDDF8" -" weight=10", +, "78.24.75.53:9030 orport=9001 id=DEB73705B2929AE9BE87091607388939332EF123" -" weight=10", +, "92.222.38.67:80 orport=443 id=DED6892FF89DBD737BA689698A171B2392EB3E82" -" weight=10", +, "166.70.207.2:9030 orport=9001 id=E3DB2E354B883B59E8DC56B3E7A353DDFD457812" -" weight=10", +, "46.252.26.2:45212 orport=49991 id=E589316576A399C511A9781A73DA4545640B479D" -" weight=10", +, "167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48" -" weight=10", +, "131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8" -" weight=10", +, "192.87.28.28:9030 orport=9001 id=ED2338CAC2711B3E331392E1ED2831219B794024" -" weight=10", +, "192.99.212.139:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC" -" weight=10", +, "212.238.208.48:9030 orport=9001 id=F406219CDD339026D160E53FCA0EF6857C70F109" " ipv6=[2001:984:a8fb:1:ba27:ebff:feac:c109]:9001" -" weight=10", +, "46.28.207.141:80 orport=443 id=F69BED36177ED727706512BA6A97755025EEA0FB" -" weight=10", +, "78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" -" weight=10", +, "178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE" -" weight=10", +, "185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216" -" weight=10", +, "86.59.119.83:80 orport=443 id=FC9AC8EA0160D88BCCFDE066940D7DD9FA45495B" -" weight=10", +, "192.187.124.98:9030 orport=9001 id=FD1871854BFC06D7B02F10742073069F0528B5CC" -" weight=10", +, "149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76" -" weight=10", +, "193.11.164.243:9030 orport=9001 id=FFA72BD683BC2FCF988356E6BEC1E490F313FB07" " ipv6=[2001:6b0:7:125::243]:9001" -" weight=10", +, From 561f18e724c15c0ad22d2915786fdb8e6ddd9c30 Mon Sep 17 00:00:00 2001 From: teor Date: Sat, 23 Dec 2017 00:23:12 +1100 Subject: [PATCH 13/30] Add a nickname to each fallback in a C comment This makes it easier for operators to find their relays, and allows stem to use nicknames to identify fallbacks. Implements ticket 24600. --- changes/ticket24600 | 5 +++++ scripts/maint/updateFallbackDirs.py | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 changes/ticket24600 diff --git a/changes/ticket24600 b/changes/ticket24600 new file mode 100644 index 0000000000..c464d0b16e --- /dev/null +++ b/changes/ticket24600 @@ -0,0 +1,5 @@ + o Minor features (fallback directory mirrors): + - Add a nickname to each fallback in a C comment. This makes it easier for + operators to find their relays, and allows stem to use nicknames to + identify fallbacks. + Implements ticket 24600. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 7bd6fae0e3..4e4000dceb 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -1331,6 +1331,7 @@ class Candidate(object): def fallbackdir_info(self, dl_speed_ok): # "address:dirport orport=port id=fingerprint" # "[ipv6=addr:orport]" + # /* nickname=name */ # , # # Do we want a C string, or a commented-out string? @@ -1355,6 +1356,12 @@ class Candidate(object): if self.has_ipv6(): s += '" ipv6=%s:%d"'%(cleanse_c_string(self.ipv6addr), self.ipv6orport) s += '\n' + if not comment_string: + s += '/* ' + s += 'nickname=%s'%(cleanse_c_string(self._data['nickname'])) + if not comment_string: + s += ' */' + s += '\n' s += ',' if comment_string: s += '\n' From 067617608c6314e1ab92e219b247d89ed7ec9591 Mon Sep 17 00:00:00 2001 From: teor Date: Sat, 23 Dec 2017 00:34:52 +1100 Subject: [PATCH 14/30] Add blank nicknames to the current fallback file Using this script: sed -i.bak $'s|^,$|/* nickname= */\\\n,|' src/or/fallback_dirs.inc (Due to embedded newlines, this script only works in bash.) This allows us to check that the code compiles, and the unit tests pass. And it allows downstream users stem and atlas to adapt to the new format. The upcoming fallback rebuild will automatically generate this new format, with actual relay nicknames. Follow-up to 24600. --- src/or/fallback_dirs.inc | 151 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index 397121b128..5624ad49f3 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -17,356 +17,507 @@ Onionoo Source: uptime Date: 2017-05-16 07:00:00 Version: 4.0 URL: https:onionoo.torproject.orguptime?first_seen_days=30-&flag=V2Dir&type=relay&last_seen_days=-0 */ "176.10.104.240:80 orport=443 id=0111BA9B604669E636FFD5B503F382A4B7AD6E80" +/* nickname= */ , "193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524" +/* nickname= */ , "185.100.85.61:80 orport=443 id=025B66CEBC070FCB0519D206CF0CF4965C20C96E" +/* nickname= */ , "185.97.32.18:9030 orport=9001 id=04250C3835019B26AA6764E85D836088BE441088" +/* nickname= */ , "5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB" " ipv6=[2a01:4f8:162:51e2::2]:9001" +/* nickname= */ , "109.163.234.8:80 orport=443 id=0818DAE0E2DDF795AEDEAC60B15E71901084F281" +/* nickname= */ , "163.172.149.155:80 orport=443 id=0B85617241252517E8ECF2CFC7F4C1A32DCD153F" +/* nickname= */ , "5.39.92.199:80 orport=443 id=0BEA4A88D069753218EAAAD6D22EA87B9A1319D6" " ipv6=[2001:41d0:8:b1c7::1]:443" +/* nickname= */ , "178.62.197.82:80 orport=443 id=0D3EBA17E1C78F1E9900BABDB23861D46FCAF163" +/* nickname= */ , "185.100.86.100:80 orport=443 id=0E8C0C8315B66DB5F703804B3889A1DD66C67CE0" +/* nickname= */ , "95.85.8.226:80 orport=443 id=1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423" +/* nickname= */ , "193.11.114.43:9030 orport=9001 id=12AD30E5D25AA67F519780E2111E611A455FDC89" " ipv6=[2001:6b0:30:1000::99]:9050" +/* nickname= */ , "37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2" +/* nickname= */ , "178.16.208.59:80 orport=443 id=136F9299A5009A4E0E96494E723BDB556FB0A26B" " ipv6=[2a00:1c20:4089:1234:bff6:e1bb:1ce3:8dc6]:443" +/* nickname= */ , "144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" " ipv6=[2a01:4f8:190:9490::dead]:443" +/* nickname= */ , "178.62.60.37:80 orport=443 id=175921396C7C426309AB03775A9930B6F611F794" +/* nickname= */ , "204.11.50.131:9030 orport=9001 id=185F2A57B0C4620582602761097D17DB81654F70" +/* nickname= */ , "5.9.158.75:80 orport=443 id=1AF72E8906E6C49481A791A6F8F84F8DFEBBB2BA" " ipv6=[2a01:4f8:190:514a::2]:443" +/* nickname= */ , "46.101.151.222:80 orport=443 id=1DBAED235E3957DE1ABD25B4206BE71406FB61F8" +/* nickname= */ , "91.219.237.229:80 orport=443 id=1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7" +/* nickname= */ , "212.47.229.2:9030 orport=9001 id=20462CBA5DA4C2D963567D17D0B7249718114A68" " ipv6=[2001:bc8:4400:2100::f03]:9001" +/* nickname= */ , "144.76.163.93:9030 orport=9001 id=22F08CF09764C4E8982640D77F71ED72FF26A9AC" +/* nickname= */ , "163.172.176.167:80 orport=443 id=230A8B2A8BA861210D9B4BA97745AEC217A94207" +/* nickname= */ , "37.200.98.5:80 orport=443 id=231C2B9C8C31C295C472D031E06964834B745996" " ipv6=[2a00:1158:3::11a]:993" +/* nickname= */ , "212.47.240.10:82 orport=443 id=2A4C448784F5A83AFE6C78DA357D5E31F7989DEB" +/* nickname= */ , "144.76.26.175:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510" +/* nickname= */ , "97.74.237.196:9030 orport=9001 id=2F0F32AB1E5B943CA7D062C03F18960C86E70D94" +/* nickname= */ , "107.170.101.39:9030 orport=443 id=30973217E70AF00EBE51797FF6D9AA720A902EAA" +/* nickname= */ , "64.113.32.29:9030 orport=9001 id=30C19B81981F450C402306E2E7CFB6C3F79CB6B2" +/* nickname= */ , "212.83.154.33:8080 orport=8443 id=322C6E3A973BC10FC36DE3037AD27BC89F14723B" +/* nickname= */ , "109.105.109.162:52860 orport=60784 id=32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F" " ipv6=[2001:948:7:2::163]:5001" +/* nickname= */ , "163.172.13.165:9030 orport=9001 id=33DA0CAB7C27812EFF2E22C9705630A54D101FEB" " ipv6=[2001:bc8:38cb:201::8]:9001" +/* nickname= */ , "217.79.190.25:9030 orport=9090 id=361D33C96D0F161275EE67E2C91EE10B276E778B" +/* nickname= */ , "37.187.22.87:9030 orport=9001 id=36B9E7AC1E36B62A9D6F330ABEB6012BA7F0D400" " ipv6=[2001:41d0:a:1657::1]:9001" +/* nickname= */ , "62.210.92.11:9130 orport=9101 id=387B065A38E4DAA16D9D41C2964ECBC4B31D30FF" " ipv6=[2001:bc8:338c::1]:9101" +/* nickname= */ , "198.50.191.95:80 orport=443 id=39F096961ED2576975C866D450373A9913AFDC92" +/* nickname= */ , "164.132.77.175:9030 orport=9001 id=3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B" +/* nickname= */ , "212.47.230.49:9030 orport=9001 id=3D6D0771E54056AEFC28BB1DE816951F11826E97" +/* nickname= */ , "176.10.107.180:9030 orport=9001 id=3D7E274A87D9A89AF064C13D1EE4CA1F184F2600" +/* nickname= */ , "217.79.179.177:9030 orport=9001 id=3E53D3979DB07EFD736661C934A1DED14127B684" " ipv6=[2001:4ba0:fff9:131:6c4f::90d3]:9001" +/* nickname= */ , "178.62.86.96:9030 orport=9001 id=439D0447772CB107B886F7782DBC201FA26B92D1" " ipv6=[2a03:b0c0:1:d0::3cf:7001]:9050" +/* nickname= */ , "163.172.157.213:8080 orport=443 id=4623A9EC53BFD83155929E56D6F7B55B5E718C24" +/* nickname= */ , "31.31.78.49:80 orport=443 id=46791D156C9B6C255C2665D4D8393EC7DBAA7798" +/* nickname= */ , "69.162.139.9:9030 orport=9001 id=4791FC0692EAB60DF2BCCAFF940B95B74E7654F6" " ipv6=[2607:f128:40:1212::45a2:8b09]:9001" +/* nickname= */ , "51.254.246.203:9030 orport=9001 id=47B596B81C9E6277B98623A84B7629798A16E8D5" +/* nickname= */ , "37.187.102.186:9030 orport=9001 id=489D94333DF66D57FFE34D9D59CC2D97E2CB0053" " ipv6=[2001:41d0:a:26ba::1]:9001" +/* nickname= */ , "188.165.194.195:9030 orport=9001 id=49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF" +/* nickname= */ , "62.102.148.67:80 orport=443 id=4A0C3E177AF684581EF780981AEAF51A98A6B5CF" +/* nickname= */ , "51.254.101.242:9002 orport=9001 id=4CC9CC9195EC38645B699A33307058624F660CCF" +/* nickname= */ , "81.7.16.182:80 orport=443 id=51E1CF613FD6F9F11FE24743C91D6F9981807D82" " ipv6=[2a02:180:1:1::517:10b6]:993" +/* nickname= */ , "94.23.204.175:9030 orport=9001 id=5665A3904C89E22E971305EE8C1997BCA4123C69" +/* nickname= */ , "95.130.12.119:80 orport=443 id=587E0A9552E4274B251F29B5B2673D38442EE4BF" +/* nickname= */ , "185.21.100.50:9030 orport=9001 id=58ED9C9C35E433EE58764D62892B4FFD518A3CD0" " ipv6=[2a00:1158:2:cd00:0:74:6f:72]:443" +/* nickname= */ , "78.142.142.246:80 orport=443 id=5A5E03355C1908EBF424CAF1F3ED70782C0D2F74" +/* nickname= */ , "120.29.217.46:80 orport=443 id=5E853C94AB1F655E9C908924370A0A6707508C62" +/* nickname= */ , "109.163.234.5:80 orport=443 id=5EB8D862E70981B8690DEDEF546789E26AB2BD24" +/* nickname= */ , "95.128.43.164:80 orport=443 id=616081EC829593AF4232550DE6FFAA1D75B37A90" " ipv6=[2a02:ec0:209:10::4]:443" +/* nickname= */ , "163.172.139.104:8080 orport=443 id=68F175CCABE727AA2D2309BCD8789499CEE36ED7" +/* nickname= */ , "85.214.62.48:80 orport=443 id=6A7551EEE18F78A9813096E82BF84F740D32B911" +/* nickname= */ , "80.127.137.19:80 orport=443 id=6EF897645B79B6CB35E853B32506375014DE3621" " ipv6=[2001:981:47c1:1::6]:443" +/* nickname= */ , "95.183.48.12:80 orport=443 id=7187CED1A3871F837D0E60AC98F374AC541CB0DA" +/* nickname= */ , "85.214.151.72:9030 orport=9001 id=722D365140C8C52DBB3C9FF6986E3CEFFE2BA812" +/* nickname= */ , "85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE" +/* nickname= */ , "176.31.191.26:80 orport=443 id=7350AB9ED7568F22745198359373C04AC783C37C" +/* nickname= */ , "134.119.36.135:80 orport=443 id=763C9556602BD6207771A7A3D958091D44C43228" " ipv6=[2a00:1158:3::2a8]:993" +/* nickname= */ , "188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7" " ipv6=[2a03:b0c0:2:d0::5:f001]:9001" +/* nickname= */ , "81.30.158.213:9030 orport=9001 id=789EA6C9AE9ADDD8760903171CFA9AC5741B0C70" " ipv6=[2001:4ba0:cafe:e84::1]:9001" +/* nickname= */ , "171.25.193.131:80 orport=443 id=79861CF8522FC637EF046F7688F5289E49D94576" +/* nickname= */ , "82.223.21.74:9030 orport=9001 id=7A32C9519D80CA458FC8B034A28F5F6815649A98" " ipv6=[2001:470:53e0::cafe]:9050" +/* nickname= */ , "51.254.136.195:80 orport=443 id=7BB70F8585DFC27E75D692970C0EEB0F22983A63" +/* nickname= */ , "193.11.114.45:9031 orport=9002 id=80AAF8D5956A43C197104CEF2550CD42D165C6FB" +/* nickname= */ , "192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F" " ipv6=[2605:e200:d00c:c01d::1111]:9002" +/* nickname= */ , "192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7" +/* nickname= */ , "188.166.23.127:80 orport=443 id=8672E8A01B4D3FA4C0BBE21C740D4506302EA487" " ipv6=[2a03:b0c0:2:d0::27b:7001]:9050" +/* nickname= */ , "93.180.156.84:9030 orport=9001 id=8844D87E9B038BE3270938F05AF797E1D3C74C0F" +/* nickname= */ , "212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C" +/* nickname= */ , "163.172.194.53:9030 orport=9001 id=8C00FA7369A7A308F6A137600F0FA07990D9D451" " ipv6=[2001:bc8:225f:142:6c69:7461:7669:73]:9001" +/* nickname= */ , "178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422" +/* nickname= */ , "151.80.42.103:9030 orport=9001 id=9007C1D8E4F03D506A4A011B907A9E8D04E3C605" " ipv6=[2001:41d0:e:f67::114]:9001" +/* nickname= */ , "173.255.245.116:9030 orport=9001 id=91E4015E1F82DAF0121D62267E54A1F661AB6DC7" +/* nickname= */ , "51.255.41.65:9030 orport=9001 id=9231DF741915AA1630031A93026D88726877E93A" +/* nickname= */ , "178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A" " ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443" +/* nickname= */ , "91.219.237.244:80 orport=443 id=92ECC9E0E2AF81BB954719B189AC362E254AD4A5" +/* nickname= */ , "204.8.156.142:80 orport=443 id=94C4B7B8C50C86A92B6A20107539EE2678CF9A28" +/* nickname= */ , "163.172.223.200:80 orport=443 id=998BF3ED7F70E33D1C307247B9626D9E7573C438" +/* nickname= */ , "81.7.10.93:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7" +/* nickname= */ , "91.229.20.27:9030 orport=9001 id=9A0D54D3A6D2E0767596BF1515E6162A75B3293F" +/* nickname= */ , "66.111.2.20:9030 orport=9001 id=9A68B85A02318F4E7E87F2828039FBD5D75B0142" +/* nickname= */ , "185.100.86.128:9030 orport=9001 id=9B31F1F1C1554F9FFB3455911F82E818EF7C7883" +/* nickname= */ , "5.9.151.241:9030 orport=4223 id=9BF04559224F0F1C3C953D641F1744AF0192543A" " ipv6=[2a01:4f8:190:34f0::2]:4223" +/* nickname= */ , "86.105.212.130:9030 orport=443 id=9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022" +/* nickname= */ , "178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" +/* nickname= */ , "46.28.110.244:80 orport=443 id=9F7D6E6420183C2B76D3CE99624EBC98A21A967E" +/* nickname= */ , "91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334" " ipv6=[2001:41d0:1:8989::1]:4052" +/* nickname= */ , "178.62.22.36:80 orport=443 id=A0766C0D3A667A3232C7D569DE94A28F9922FCB1" " ipv6=[2a03:b0c0:1:d0::174:1]:9050" +/* nickname= */ , "171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A" " ipv6=[2001:67c:289c:3::77]:443" +/* nickname= */ , "171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE" " ipv6=[2001:67c:289c:3::78]:443" +/* nickname= */ , "163.172.149.122:80 orport=443 id=A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2" +/* nickname= */ , "192.34.63.137:9030 orport=443 id=ABCB4965F1FEE193602B50A365425105C889D3F8" +/* nickname= */ , "109.163.234.9:80 orport=443 id=ABF7FBF389C9A747938B639B20E80620B460B2A9" +/* nickname= */ , "86.59.119.88:80 orport=443 id=ACD889D86E02EDDAB1AFD81F598C0936238DC6D0" +/* nickname= */ , "185.129.62.62:9030 orport=9001 id=ACDD9E85A05B127BA010466C13C8C47212E8A38F" " ipv6=[2a06:d380:0:3700::62]:9001" +/* nickname= */ , "163.172.131.88:80 orport=443 id=AD253B49E303C6AB1E048B014392AC569E8A7DAE" " ipv6=[2001:bc8:4400:2100::2:1009]:443" +/* nickname= */ , "31.185.104.20:80 orport=443 id=ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D" +/* nickname= */ , "37.187.7.74:80 orport=443 id=AEA43CB1E47BE5F8051711B2BF01683DB1568E05" " ipv6=[2001:41d0:a:74a::1]:443" +/* nickname= */ , "46.28.205.170:80 orport=443 id=AF322D83A4D2048B22F7F1AF5F38AFF4D09D0B76" +/* nickname= */ , "5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2" +/* nickname= */ , "212.129.62.232:80 orport=443 id=B143D439B72D239A419F8DCE07B8A8EB1B486FA7" +/* nickname= */ , "198.199.64.217:80 orport=443 id=B1D81825CFD7209BD1B4520B040EF5653C204A23" " ipv6=[2604:a880:400:d0::1a9:b001]:9050" +/* nickname= */ , "136.243.214.137:80 orport=443 id=B291D30517D23299AD7CEE3E60DFE60D0E3A4664" +/* nickname= */ , "178.16.208.60:80 orport=443 id=B44FBE5366AD98B46D829754FA4AC599BAE41A6A" " ipv6=[2a00:1c20:4089:1234:67bc:79f3:61c0:6e49]:443" +/* nickname= */ , "93.115.97.242:9030 orport=9001 id=B5212DB685A2A0FCFBAE425738E478D12361710D" +/* nickname= */ , "81.2.209.10:443 orport=80 id=B6904ADD4C0D10CDA7179E051962350A69A63243" " ipv6=[2001:15e8:201:1::d10a]:80" +/* nickname= */ , "193.11.114.46:9032 orport=9003 id=B83DC1558F0D34353BB992EF93AFEAFDB226A73E" +/* nickname= */ , "85.248.227.164:444 orport=9002 id=B84F248233FEA90CAD439F292556A3139F6E1B82" " ipv6=[2a00:1298:8011:212::164]:9004" +/* nickname= */ , "89.163.247.43:9030 orport=9001 id=BC7ACFAC04854C77167C7D66B7E471314ED8C410" " ipv6=[2001:4ba0:fff7:25::5]:9001" +/* nickname= */ , "198.96.155.3:8080 orport=5001 id=BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E" +/* nickname= */ , "128.199.55.207:9030 orport=9001 id=BCEF908195805E03E92CCFE669C48738E556B9C5" " ipv6=[2a03:b0c0:2:d0::158:3001]:9001" +/* nickname= */ , "185.35.202.221:9030 orport=9001 id=C13B91384CDD52A871E3ECECE4EF74A7AC7DCB08" " ipv6=[2a02:ed06::221]:9001" +/* nickname= */ , "213.239.217.18:1338 orport=1337 id=C37BC191AC389179674578C3E6944E925FE186C2" " ipv6=[2a01:4f8:a0:746a:101:1:1:1]:1337" +/* nickname= */ , "188.138.112.60:1433 orport=1521 id=C414F28FD2BEC1553024299B31D4E726BEB8E788" +/* nickname= */ , "85.248.227.163:443 orport=9001 id=C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9" " ipv6=[2a00:1298:8011:212::163]:9003" +/* nickname= */ , "178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE" " ipv6=[2a03:b0c0:2:d0::b7:5001]:443" +/* nickname= */ , "134.119.3.164:9030 orport=9001 id=D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE" +/* nickname= */ , "31.171.155.108:9030 orport=9001 id=D3E5EDDBE5159388704D6785BE51930AAFACEC6F" +/* nickname= */ , "37.187.115.157:9030 orport=9001 id=D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A" +/* nickname= */ , "166.82.21.200:9030 orport=9029 id=D5C33F3E203728EDF8361EA868B2939CCC43FAFB" +/* nickname= */ , "185.14.185.240:9030 orport=443 id=D62FB817B0288085FAC38A6DC8B36DCD85B70260" +/* nickname= */ , "46.101.169.151:9030 orport=9001 id=D760C5B436E42F93D77EF2D969157EEA14F9B39C" " ipv6=[2a03:b0c0:3:d0::74f:a001]:9001" +/* nickname= */ , "46.4.111.124:9030 orport=9001 id=D9065F9E57899B3D272AA212317AF61A9B14D204" +/* nickname= */ , "193.35.52.53:9030 orport=9001 id=DAA39FC00B196B353C2A271459C305C429AF09E4" +/* nickname= */ , "178.33.183.251:80 orport=443 id=DD823AFB415380A802DCAEB9461AE637604107FB" " ipv6=[2001:41d0:2:a683::251]:443" +/* nickname= */ , "178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10" " ipv6=[2a03:b0c0:0:1010::a4:b001]:9001" +/* nickname= */ , "5.34.183.205:80 orport=443 id=DDD7871C1B7FA32CB55061E08869A236E61BDDF8" +/* nickname= */ , "78.24.75.53:9030 orport=9001 id=DEB73705B2929AE9BE87091607388939332EF123" +/* nickname= */ , "92.222.38.67:80 orport=443 id=DED6892FF89DBD737BA689698A171B2392EB3E82" +/* nickname= */ , "166.70.207.2:9030 orport=9001 id=E3DB2E354B883B59E8DC56B3E7A353DDFD457812" +/* nickname= */ , "46.252.26.2:45212 orport=49991 id=E589316576A399C511A9781A73DA4545640B479D" +/* nickname= */ , "167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48" +/* nickname= */ , "131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8" +/* nickname= */ , "192.87.28.28:9030 orport=9001 id=ED2338CAC2711B3E331392E1ED2831219B794024" +/* nickname= */ , "192.99.212.139:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC" +/* nickname= */ , "212.238.208.48:9030 orport=9001 id=F406219CDD339026D160E53FCA0EF6857C70F109" " ipv6=[2001:984:a8fb:1:ba27:ebff:feac:c109]:9001" +/* nickname= */ , "46.28.207.141:80 orport=443 id=F69BED36177ED727706512BA6A97755025EEA0FB" +/* nickname= */ , "78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" +/* nickname= */ , "178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE" +/* nickname= */ , "185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216" +/* nickname= */ , "86.59.119.83:80 orport=443 id=FC9AC8EA0160D88BCCFDE066940D7DD9FA45495B" +/* nickname= */ , "192.187.124.98:9030 orport=9001 id=FD1871854BFC06D7B02F10742073069F0528B5CC" +/* nickname= */ , "149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76" +/* nickname= */ , "193.11.164.243:9030 orport=9001 id=FFA72BD683BC2FCF988356E6BEC1E490F313FB07" " ipv6=[2001:6b0:7:125::243]:9001" +/* nickname= */ , From 6a27fc62456891f2eec9e2149a3c0eb9b66f6ee9 Mon Sep 17 00:00:00 2001 From: teor Date: Sat, 23 Dec 2017 01:21:49 +1100 Subject: [PATCH 15/30] Add an extrainfo cache flag for each fallback in a C comment This allows stem to use fallbacks to fetch extra-info documents, rather than using authorities. Implements ticket 22759. --- changes/ticket22759 | 5 ++ scripts/maint/updateFallbackDirs.py | 75 ++++++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 changes/ticket22759 diff --git a/changes/ticket22759 b/changes/ticket22759 new file mode 100644 index 0000000000..a393d428a8 --- /dev/null +++ b/changes/ticket22759 @@ -0,0 +1,5 @@ + o Minor features (fallback directory mirrors): + - Add an extrainfo cache flag for each fallback in a C comment. + This allows stem to use fallbacks to fetch extra-info documents, + rather than using authorities. + Implements ticket 22759. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 4e4000dceb..d1f50c70c5 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -47,7 +47,7 @@ import copy import re from stem.descriptor import DocumentHandler -from stem.descriptor.remote import get_consensus +from stem.descriptor.remote import get_consensus, get_server_descriptors, MAX_FINGERPRINTS import logging logging.root.name = '' @@ -565,6 +565,7 @@ class Candidate(object): if not self.has_ipv6(): logging.debug("Failed to get an ipv6 address for %s."%(self._fpr,)) self._compute_version() + self._extra_info_cache = None def _stable_sort_or_addresses(self): # replace self._data['or_addresses'] with a stable ordering, @@ -1332,6 +1333,7 @@ class Candidate(object): # "address:dirport orport=port id=fingerprint" # "[ipv6=addr:orport]" # /* nickname=name */ + # /* extrainfo={0,1} */ # , # # Do we want a C string, or a commented-out string? @@ -1362,6 +1364,14 @@ class Candidate(object): if not comment_string: s += ' */' s += '\n' + # if we know that the fallback is an extrainfo cache, flag it + # and if we don't know, assume it is not + if not comment_string: + s += '/* ' + s += 'extrainfo=%d'%(1 if self._extra_info_cache else 0) + if not comment_string: + s += ' */' + s += '\n' s += ',' if comment_string: s += '\n' @@ -1747,6 +1757,53 @@ class CandidateList(dict): self.fallbacks = family_limit_fallbacks return original_count - len(self.fallbacks) + # try once to get the descriptors for fingerprint_list using stem + # returns an empty list on exception + @staticmethod + def get_fallback_descriptors_once(fingerprint_list): + desc_list = get_server_descriptors(fingerprints=fingerprint_list).run(suppress=True) + return desc_list + + # try up to max_retries times to get the descriptors for fingerprint_list + # using stem. Stops retrying when all descriptors have been retrieved. + # returns a list containing the descriptors that were retrieved + @staticmethod + def get_fallback_descriptors(fingerprint_list, max_retries=5): + # we can't use stem's retries=, because we want to support more than 96 + # descriptors + # + # add an attempt for every MAX_FINGERPRINTS (or part thereof) in the list + max_retries += (len(fingerprint_list) + MAX_FINGERPRINTS - 1) / MAX_FINGERPRINTS + remaining_list = fingerprint_list + desc_list = [] + for _ in xrange(max_retries): + if len(remaining_list) == 0: + break + new_desc_list = CandidateList.get_fallback_descriptors_once(remaining_list[0:MAX_FINGERPRINTS]) + for d in new_desc_list: + try: + remaining_list.remove(d.fingerprint) + except ValueError: + # warn and ignore if a directory mirror returned a bad descriptor + logging.warning("Directory mirror returned unwanted descriptor %s, ignoring", + d.fingerprint) + continue + desc_list.append(d) + return desc_list + + # find the fallbacks that cache extra-info documents + # Onionoo doesn't know this, so we have to use stem + def mark_extra_info_caches(self): + fingerprint_list = [ f._fpr for f in self.fallbacks ] + logging.info("Downloading fallback descriptors to find extra-info caches") + desc_list = CandidateList.get_fallback_descriptors(fingerprint_list) + for d in desc_list: + self[d.fingerprint]._extra_info_cache = d.extra_info_cache + missing_descriptor_list = [ f._fpr for f in self.fallbacks + if f._extra_info_cache is None ] + for f in missing_descriptor_list: + logging.warning("No descriptor for {}. Assuming extrainfo=0.".format(f)) + # try a download check on each fallback candidate in order # stop after max_count successful downloads # but don't remove any candidates from the array @@ -1994,6 +2051,18 @@ class CandidateList(dict): CandidateList.describe_percentage(dir_count, fallback_count))) + # return a list of fallbacks which cache extra-info documents + def fallbacks_with_extra_info_cache(self): + return filter(lambda x: x._extra_info_cache, self.fallbacks) + + # log a message about the proportion of fallbacks that cache extra-info docs + def describe_fallback_extra_info_caches(self): + extra_info_falback_count = len(self.fallbacks_with_extra_info_cache()) + fallback_count = len(self.fallbacks) + logging.warning('%s of fallbacks cache extra-info documents'%( + CandidateList.describe_percentage(extra_info_falback_count, + fallback_count))) + # return a list of fallbacks which have the Exit flag def fallbacks_with_exit(self): return filter(lambda x: x.is_exit(), self.fallbacks) @@ -2193,6 +2262,9 @@ def list_fallbacks(whitelist, blacklist): 'This may take some time.') failed_count = candidates.perform_download_consensus_checks(max_count) + # work out which fallbacks cache extra-infos + candidates.mark_extra_info_caches() + # analyse and log interesting diversity metrics # like netblock, ports, exit, IPv4-only # (we can't easily analyse AS, and it's hard to accurately analyse country) @@ -2201,6 +2273,7 @@ def list_fallbacks(whitelist, blacklist): if HAVE_IPADDRESS: candidates.describe_fallback_netblocks() candidates.describe_fallback_ports() + candidates.describe_fallback_extra_info_caches() candidates.describe_fallback_exit_flag() # output C comments summarising the fallback selection process From c1be0cfdb45d702afa3c1883a5e436cef8115fcd Mon Sep 17 00:00:00 2001 From: teor Date: Sat, 23 Dec 2017 01:24:48 +1100 Subject: [PATCH 16/30] Add all-zero extrainfo cache flags to the current fallback file Using this script: sed -i.bak $'s|^,$|/* extrainfo=0 */\\\n,|' src/or/fallback_dirs.inc (Due to embedded newlines, this script only works in bash.) This allows us to check that the code compiles, and the unit tests pass. And it allows downstream users stem and atlas to adapt to the new format. The upcoming fallback rebuild will automatically generate this new format, with actual relay extrainfo cache flags. Follow-up to 22759. --- src/or/fallback_dirs.inc | 151 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index 5624ad49f3..b7a2a099f5 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -18,506 +18,657 @@ URL: https:onionoo.torproject.orguptime?first_seen_days=30-&flag=V2Dir&type=rela */ "176.10.104.240:80 orport=443 id=0111BA9B604669E636FFD5B503F382A4B7AD6E80" /* nickname= */ +/* extrainfo=0 */ , "193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524" /* nickname= */ +/* extrainfo=0 */ , "185.100.85.61:80 orport=443 id=025B66CEBC070FCB0519D206CF0CF4965C20C96E" /* nickname= */ +/* extrainfo=0 */ , "185.97.32.18:9030 orport=9001 id=04250C3835019B26AA6764E85D836088BE441088" /* nickname= */ +/* extrainfo=0 */ , "5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB" " ipv6=[2a01:4f8:162:51e2::2]:9001" /* nickname= */ +/* extrainfo=0 */ , "109.163.234.8:80 orport=443 id=0818DAE0E2DDF795AEDEAC60B15E71901084F281" /* nickname= */ +/* extrainfo=0 */ , "163.172.149.155:80 orport=443 id=0B85617241252517E8ECF2CFC7F4C1A32DCD153F" /* nickname= */ +/* extrainfo=0 */ , "5.39.92.199:80 orport=443 id=0BEA4A88D069753218EAAAD6D22EA87B9A1319D6" " ipv6=[2001:41d0:8:b1c7::1]:443" /* nickname= */ +/* extrainfo=0 */ , "178.62.197.82:80 orport=443 id=0D3EBA17E1C78F1E9900BABDB23861D46FCAF163" /* nickname= */ +/* extrainfo=0 */ , "185.100.86.100:80 orport=443 id=0E8C0C8315B66DB5F703804B3889A1DD66C67CE0" /* nickname= */ +/* extrainfo=0 */ , "95.85.8.226:80 orport=443 id=1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423" /* nickname= */ +/* extrainfo=0 */ , "193.11.114.43:9030 orport=9001 id=12AD30E5D25AA67F519780E2111E611A455FDC89" " ipv6=[2001:6b0:30:1000::99]:9050" /* nickname= */ +/* extrainfo=0 */ , "37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2" /* nickname= */ +/* extrainfo=0 */ , "178.16.208.59:80 orport=443 id=136F9299A5009A4E0E96494E723BDB556FB0A26B" " ipv6=[2a00:1c20:4089:1234:bff6:e1bb:1ce3:8dc6]:443" /* nickname= */ +/* extrainfo=0 */ , "144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" " ipv6=[2a01:4f8:190:9490::dead]:443" /* nickname= */ +/* extrainfo=0 */ , "178.62.60.37:80 orport=443 id=175921396C7C426309AB03775A9930B6F611F794" /* nickname= */ +/* extrainfo=0 */ , "204.11.50.131:9030 orport=9001 id=185F2A57B0C4620582602761097D17DB81654F70" /* nickname= */ +/* extrainfo=0 */ , "5.9.158.75:80 orport=443 id=1AF72E8906E6C49481A791A6F8F84F8DFEBBB2BA" " ipv6=[2a01:4f8:190:514a::2]:443" /* nickname= */ +/* extrainfo=0 */ , "46.101.151.222:80 orport=443 id=1DBAED235E3957DE1ABD25B4206BE71406FB61F8" /* nickname= */ +/* extrainfo=0 */ , "91.219.237.229:80 orport=443 id=1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7" /* nickname= */ +/* extrainfo=0 */ , "212.47.229.2:9030 orport=9001 id=20462CBA5DA4C2D963567D17D0B7249718114A68" " ipv6=[2001:bc8:4400:2100::f03]:9001" /* nickname= */ +/* extrainfo=0 */ , "144.76.163.93:9030 orport=9001 id=22F08CF09764C4E8982640D77F71ED72FF26A9AC" /* nickname= */ +/* extrainfo=0 */ , "163.172.176.167:80 orport=443 id=230A8B2A8BA861210D9B4BA97745AEC217A94207" /* nickname= */ +/* extrainfo=0 */ , "37.200.98.5:80 orport=443 id=231C2B9C8C31C295C472D031E06964834B745996" " ipv6=[2a00:1158:3::11a]:993" /* nickname= */ +/* extrainfo=0 */ , "212.47.240.10:82 orport=443 id=2A4C448784F5A83AFE6C78DA357D5E31F7989DEB" /* nickname= */ +/* extrainfo=0 */ , "144.76.26.175:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510" /* nickname= */ +/* extrainfo=0 */ , "97.74.237.196:9030 orport=9001 id=2F0F32AB1E5B943CA7D062C03F18960C86E70D94" /* nickname= */ +/* extrainfo=0 */ , "107.170.101.39:9030 orport=443 id=30973217E70AF00EBE51797FF6D9AA720A902EAA" /* nickname= */ +/* extrainfo=0 */ , "64.113.32.29:9030 orport=9001 id=30C19B81981F450C402306E2E7CFB6C3F79CB6B2" /* nickname= */ +/* extrainfo=0 */ , "212.83.154.33:8080 orport=8443 id=322C6E3A973BC10FC36DE3037AD27BC89F14723B" /* nickname= */ +/* extrainfo=0 */ , "109.105.109.162:52860 orport=60784 id=32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F" " ipv6=[2001:948:7:2::163]:5001" /* nickname= */ +/* extrainfo=0 */ , "163.172.13.165:9030 orport=9001 id=33DA0CAB7C27812EFF2E22C9705630A54D101FEB" " ipv6=[2001:bc8:38cb:201::8]:9001" /* nickname= */ +/* extrainfo=0 */ , "217.79.190.25:9030 orport=9090 id=361D33C96D0F161275EE67E2C91EE10B276E778B" /* nickname= */ +/* extrainfo=0 */ , "37.187.22.87:9030 orport=9001 id=36B9E7AC1E36B62A9D6F330ABEB6012BA7F0D400" " ipv6=[2001:41d0:a:1657::1]:9001" /* nickname= */ +/* extrainfo=0 */ , "62.210.92.11:9130 orport=9101 id=387B065A38E4DAA16D9D41C2964ECBC4B31D30FF" " ipv6=[2001:bc8:338c::1]:9101" /* nickname= */ +/* extrainfo=0 */ , "198.50.191.95:80 orport=443 id=39F096961ED2576975C866D450373A9913AFDC92" /* nickname= */ +/* extrainfo=0 */ , "164.132.77.175:9030 orport=9001 id=3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B" /* nickname= */ +/* extrainfo=0 */ , "212.47.230.49:9030 orport=9001 id=3D6D0771E54056AEFC28BB1DE816951F11826E97" /* nickname= */ +/* extrainfo=0 */ , "176.10.107.180:9030 orport=9001 id=3D7E274A87D9A89AF064C13D1EE4CA1F184F2600" /* nickname= */ +/* extrainfo=0 */ , "217.79.179.177:9030 orport=9001 id=3E53D3979DB07EFD736661C934A1DED14127B684" " ipv6=[2001:4ba0:fff9:131:6c4f::90d3]:9001" /* nickname= */ +/* extrainfo=0 */ , "178.62.86.96:9030 orport=9001 id=439D0447772CB107B886F7782DBC201FA26B92D1" " ipv6=[2a03:b0c0:1:d0::3cf:7001]:9050" /* nickname= */ +/* extrainfo=0 */ , "163.172.157.213:8080 orport=443 id=4623A9EC53BFD83155929E56D6F7B55B5E718C24" /* nickname= */ +/* extrainfo=0 */ , "31.31.78.49:80 orport=443 id=46791D156C9B6C255C2665D4D8393EC7DBAA7798" /* nickname= */ +/* extrainfo=0 */ , "69.162.139.9:9030 orport=9001 id=4791FC0692EAB60DF2BCCAFF940B95B74E7654F6" " ipv6=[2607:f128:40:1212::45a2:8b09]:9001" /* nickname= */ +/* extrainfo=0 */ , "51.254.246.203:9030 orport=9001 id=47B596B81C9E6277B98623A84B7629798A16E8D5" /* nickname= */ +/* extrainfo=0 */ , "37.187.102.186:9030 orport=9001 id=489D94333DF66D57FFE34D9D59CC2D97E2CB0053" " ipv6=[2001:41d0:a:26ba::1]:9001" /* nickname= */ +/* extrainfo=0 */ , "188.165.194.195:9030 orport=9001 id=49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF" /* nickname= */ +/* extrainfo=0 */ , "62.102.148.67:80 orport=443 id=4A0C3E177AF684581EF780981AEAF51A98A6B5CF" /* nickname= */ +/* extrainfo=0 */ , "51.254.101.242:9002 orport=9001 id=4CC9CC9195EC38645B699A33307058624F660CCF" /* nickname= */ +/* extrainfo=0 */ , "81.7.16.182:80 orport=443 id=51E1CF613FD6F9F11FE24743C91D6F9981807D82" " ipv6=[2a02:180:1:1::517:10b6]:993" /* nickname= */ +/* extrainfo=0 */ , "94.23.204.175:9030 orport=9001 id=5665A3904C89E22E971305EE8C1997BCA4123C69" /* nickname= */ +/* extrainfo=0 */ , "95.130.12.119:80 orport=443 id=587E0A9552E4274B251F29B5B2673D38442EE4BF" /* nickname= */ +/* extrainfo=0 */ , "185.21.100.50:9030 orport=9001 id=58ED9C9C35E433EE58764D62892B4FFD518A3CD0" " ipv6=[2a00:1158:2:cd00:0:74:6f:72]:443" /* nickname= */ +/* extrainfo=0 */ , "78.142.142.246:80 orport=443 id=5A5E03355C1908EBF424CAF1F3ED70782C0D2F74" /* nickname= */ +/* extrainfo=0 */ , "120.29.217.46:80 orport=443 id=5E853C94AB1F655E9C908924370A0A6707508C62" /* nickname= */ +/* extrainfo=0 */ , "109.163.234.5:80 orport=443 id=5EB8D862E70981B8690DEDEF546789E26AB2BD24" /* nickname= */ +/* extrainfo=0 */ , "95.128.43.164:80 orport=443 id=616081EC829593AF4232550DE6FFAA1D75B37A90" " ipv6=[2a02:ec0:209:10::4]:443" /* nickname= */ +/* extrainfo=0 */ , "163.172.139.104:8080 orport=443 id=68F175CCABE727AA2D2309BCD8789499CEE36ED7" /* nickname= */ +/* extrainfo=0 */ , "85.214.62.48:80 orport=443 id=6A7551EEE18F78A9813096E82BF84F740D32B911" /* nickname= */ +/* extrainfo=0 */ , "80.127.137.19:80 orport=443 id=6EF897645B79B6CB35E853B32506375014DE3621" " ipv6=[2001:981:47c1:1::6]:443" /* nickname= */ +/* extrainfo=0 */ , "95.183.48.12:80 orport=443 id=7187CED1A3871F837D0E60AC98F374AC541CB0DA" /* nickname= */ +/* extrainfo=0 */ , "85.214.151.72:9030 orport=9001 id=722D365140C8C52DBB3C9FF6986E3CEFFE2BA812" /* nickname= */ +/* extrainfo=0 */ , "85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE" /* nickname= */ +/* extrainfo=0 */ , "176.31.191.26:80 orport=443 id=7350AB9ED7568F22745198359373C04AC783C37C" /* nickname= */ +/* extrainfo=0 */ , "134.119.36.135:80 orport=443 id=763C9556602BD6207771A7A3D958091D44C43228" " ipv6=[2a00:1158:3::2a8]:993" /* nickname= */ +/* extrainfo=0 */ , "188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7" " ipv6=[2a03:b0c0:2:d0::5:f001]:9001" /* nickname= */ +/* extrainfo=0 */ , "81.30.158.213:9030 orport=9001 id=789EA6C9AE9ADDD8760903171CFA9AC5741B0C70" " ipv6=[2001:4ba0:cafe:e84::1]:9001" /* nickname= */ +/* extrainfo=0 */ , "171.25.193.131:80 orport=443 id=79861CF8522FC637EF046F7688F5289E49D94576" /* nickname= */ +/* extrainfo=0 */ , "82.223.21.74:9030 orport=9001 id=7A32C9519D80CA458FC8B034A28F5F6815649A98" " ipv6=[2001:470:53e0::cafe]:9050" /* nickname= */ +/* extrainfo=0 */ , "51.254.136.195:80 orport=443 id=7BB70F8585DFC27E75D692970C0EEB0F22983A63" /* nickname= */ +/* extrainfo=0 */ , "193.11.114.45:9031 orport=9002 id=80AAF8D5956A43C197104CEF2550CD42D165C6FB" /* nickname= */ +/* extrainfo=0 */ , "192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F" " ipv6=[2605:e200:d00c:c01d::1111]:9002" /* nickname= */ +/* extrainfo=0 */ , "192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7" /* nickname= */ +/* extrainfo=0 */ , "188.166.23.127:80 orport=443 id=8672E8A01B4D3FA4C0BBE21C740D4506302EA487" " ipv6=[2a03:b0c0:2:d0::27b:7001]:9050" /* nickname= */ +/* extrainfo=0 */ , "93.180.156.84:9030 orport=9001 id=8844D87E9B038BE3270938F05AF797E1D3C74C0F" /* nickname= */ +/* extrainfo=0 */ , "212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C" /* nickname= */ +/* extrainfo=0 */ , "163.172.194.53:9030 orport=9001 id=8C00FA7369A7A308F6A137600F0FA07990D9D451" " ipv6=[2001:bc8:225f:142:6c69:7461:7669:73]:9001" /* nickname= */ +/* extrainfo=0 */ , "178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422" /* nickname= */ +/* extrainfo=0 */ , "151.80.42.103:9030 orport=9001 id=9007C1D8E4F03D506A4A011B907A9E8D04E3C605" " ipv6=[2001:41d0:e:f67::114]:9001" /* nickname= */ +/* extrainfo=0 */ , "173.255.245.116:9030 orport=9001 id=91E4015E1F82DAF0121D62267E54A1F661AB6DC7" /* nickname= */ +/* extrainfo=0 */ , "51.255.41.65:9030 orport=9001 id=9231DF741915AA1630031A93026D88726877E93A" /* nickname= */ +/* extrainfo=0 */ , "178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A" " ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443" /* nickname= */ +/* extrainfo=0 */ , "91.219.237.244:80 orport=443 id=92ECC9E0E2AF81BB954719B189AC362E254AD4A5" /* nickname= */ +/* extrainfo=0 */ , "204.8.156.142:80 orport=443 id=94C4B7B8C50C86A92B6A20107539EE2678CF9A28" /* nickname= */ +/* extrainfo=0 */ , "163.172.223.200:80 orport=443 id=998BF3ED7F70E33D1C307247B9626D9E7573C438" /* nickname= */ +/* extrainfo=0 */ , "81.7.10.93:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7" /* nickname= */ +/* extrainfo=0 */ , "91.229.20.27:9030 orport=9001 id=9A0D54D3A6D2E0767596BF1515E6162A75B3293F" /* nickname= */ +/* extrainfo=0 */ , "66.111.2.20:9030 orport=9001 id=9A68B85A02318F4E7E87F2828039FBD5D75B0142" /* nickname= */ +/* extrainfo=0 */ , "185.100.86.128:9030 orport=9001 id=9B31F1F1C1554F9FFB3455911F82E818EF7C7883" /* nickname= */ +/* extrainfo=0 */ , "5.9.151.241:9030 orport=4223 id=9BF04559224F0F1C3C953D641F1744AF0192543A" " ipv6=[2a01:4f8:190:34f0::2]:4223" /* nickname= */ +/* extrainfo=0 */ , "86.105.212.130:9030 orport=443 id=9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022" /* nickname= */ +/* extrainfo=0 */ , "178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" /* nickname= */ +/* extrainfo=0 */ , "46.28.110.244:80 orport=443 id=9F7D6E6420183C2B76D3CE99624EBC98A21A967E" /* nickname= */ +/* extrainfo=0 */ , "91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334" " ipv6=[2001:41d0:1:8989::1]:4052" /* nickname= */ +/* extrainfo=0 */ , "178.62.22.36:80 orport=443 id=A0766C0D3A667A3232C7D569DE94A28F9922FCB1" " ipv6=[2a03:b0c0:1:d0::174:1]:9050" /* nickname= */ +/* extrainfo=0 */ , "171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A" " ipv6=[2001:67c:289c:3::77]:443" /* nickname= */ +/* extrainfo=0 */ , "171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE" " ipv6=[2001:67c:289c:3::78]:443" /* nickname= */ +/* extrainfo=0 */ , "163.172.149.122:80 orport=443 id=A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2" /* nickname= */ +/* extrainfo=0 */ , "192.34.63.137:9030 orport=443 id=ABCB4965F1FEE193602B50A365425105C889D3F8" /* nickname= */ +/* extrainfo=0 */ , "109.163.234.9:80 orport=443 id=ABF7FBF389C9A747938B639B20E80620B460B2A9" /* nickname= */ +/* extrainfo=0 */ , "86.59.119.88:80 orport=443 id=ACD889D86E02EDDAB1AFD81F598C0936238DC6D0" /* nickname= */ +/* extrainfo=0 */ , "185.129.62.62:9030 orport=9001 id=ACDD9E85A05B127BA010466C13C8C47212E8A38F" " ipv6=[2a06:d380:0:3700::62]:9001" /* nickname= */ +/* extrainfo=0 */ , "163.172.131.88:80 orport=443 id=AD253B49E303C6AB1E048B014392AC569E8A7DAE" " ipv6=[2001:bc8:4400:2100::2:1009]:443" /* nickname= */ +/* extrainfo=0 */ , "31.185.104.20:80 orport=443 id=ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D" /* nickname= */ +/* extrainfo=0 */ , "37.187.7.74:80 orport=443 id=AEA43CB1E47BE5F8051711B2BF01683DB1568E05" " ipv6=[2001:41d0:a:74a::1]:443" /* nickname= */ +/* extrainfo=0 */ , "46.28.205.170:80 orport=443 id=AF322D83A4D2048B22F7F1AF5F38AFF4D09D0B76" /* nickname= */ +/* extrainfo=0 */ , "5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2" /* nickname= */ +/* extrainfo=0 */ , "212.129.62.232:80 orport=443 id=B143D439B72D239A419F8DCE07B8A8EB1B486FA7" /* nickname= */ +/* extrainfo=0 */ , "198.199.64.217:80 orport=443 id=B1D81825CFD7209BD1B4520B040EF5653C204A23" " ipv6=[2604:a880:400:d0::1a9:b001]:9050" /* nickname= */ +/* extrainfo=0 */ , "136.243.214.137:80 orport=443 id=B291D30517D23299AD7CEE3E60DFE60D0E3A4664" /* nickname= */ +/* extrainfo=0 */ , "178.16.208.60:80 orport=443 id=B44FBE5366AD98B46D829754FA4AC599BAE41A6A" " ipv6=[2a00:1c20:4089:1234:67bc:79f3:61c0:6e49]:443" /* nickname= */ +/* extrainfo=0 */ , "93.115.97.242:9030 orport=9001 id=B5212DB685A2A0FCFBAE425738E478D12361710D" /* nickname= */ +/* extrainfo=0 */ , "81.2.209.10:443 orport=80 id=B6904ADD4C0D10CDA7179E051962350A69A63243" " ipv6=[2001:15e8:201:1::d10a]:80" /* nickname= */ +/* extrainfo=0 */ , "193.11.114.46:9032 orport=9003 id=B83DC1558F0D34353BB992EF93AFEAFDB226A73E" /* nickname= */ +/* extrainfo=0 */ , "85.248.227.164:444 orport=9002 id=B84F248233FEA90CAD439F292556A3139F6E1B82" " ipv6=[2a00:1298:8011:212::164]:9004" /* nickname= */ +/* extrainfo=0 */ , "89.163.247.43:9030 orport=9001 id=BC7ACFAC04854C77167C7D66B7E471314ED8C410" " ipv6=[2001:4ba0:fff7:25::5]:9001" /* nickname= */ +/* extrainfo=0 */ , "198.96.155.3:8080 orport=5001 id=BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E" /* nickname= */ +/* extrainfo=0 */ , "128.199.55.207:9030 orport=9001 id=BCEF908195805E03E92CCFE669C48738E556B9C5" " ipv6=[2a03:b0c0:2:d0::158:3001]:9001" /* nickname= */ +/* extrainfo=0 */ , "185.35.202.221:9030 orport=9001 id=C13B91384CDD52A871E3ECECE4EF74A7AC7DCB08" " ipv6=[2a02:ed06::221]:9001" /* nickname= */ +/* extrainfo=0 */ , "213.239.217.18:1338 orport=1337 id=C37BC191AC389179674578C3E6944E925FE186C2" " ipv6=[2a01:4f8:a0:746a:101:1:1:1]:1337" /* nickname= */ +/* extrainfo=0 */ , "188.138.112.60:1433 orport=1521 id=C414F28FD2BEC1553024299B31D4E726BEB8E788" /* nickname= */ +/* extrainfo=0 */ , "85.248.227.163:443 orport=9001 id=C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9" " ipv6=[2a00:1298:8011:212::163]:9003" /* nickname= */ +/* extrainfo=0 */ , "178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE" " ipv6=[2a03:b0c0:2:d0::b7:5001]:443" /* nickname= */ +/* extrainfo=0 */ , "134.119.3.164:9030 orport=9001 id=D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE" /* nickname= */ +/* extrainfo=0 */ , "31.171.155.108:9030 orport=9001 id=D3E5EDDBE5159388704D6785BE51930AAFACEC6F" /* nickname= */ +/* extrainfo=0 */ , "37.187.115.157:9030 orport=9001 id=D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A" /* nickname= */ +/* extrainfo=0 */ , "166.82.21.200:9030 orport=9029 id=D5C33F3E203728EDF8361EA868B2939CCC43FAFB" /* nickname= */ +/* extrainfo=0 */ , "185.14.185.240:9030 orport=443 id=D62FB817B0288085FAC38A6DC8B36DCD85B70260" /* nickname= */ +/* extrainfo=0 */ , "46.101.169.151:9030 orport=9001 id=D760C5B436E42F93D77EF2D969157EEA14F9B39C" " ipv6=[2a03:b0c0:3:d0::74f:a001]:9001" /* nickname= */ +/* extrainfo=0 */ , "46.4.111.124:9030 orport=9001 id=D9065F9E57899B3D272AA212317AF61A9B14D204" /* nickname= */ +/* extrainfo=0 */ , "193.35.52.53:9030 orport=9001 id=DAA39FC00B196B353C2A271459C305C429AF09E4" /* nickname= */ +/* extrainfo=0 */ , "178.33.183.251:80 orport=443 id=DD823AFB415380A802DCAEB9461AE637604107FB" " ipv6=[2001:41d0:2:a683::251]:443" /* nickname= */ +/* extrainfo=0 */ , "178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10" " ipv6=[2a03:b0c0:0:1010::a4:b001]:9001" /* nickname= */ +/* extrainfo=0 */ , "5.34.183.205:80 orport=443 id=DDD7871C1B7FA32CB55061E08869A236E61BDDF8" /* nickname= */ +/* extrainfo=0 */ , "78.24.75.53:9030 orport=9001 id=DEB73705B2929AE9BE87091607388939332EF123" /* nickname= */ +/* extrainfo=0 */ , "92.222.38.67:80 orport=443 id=DED6892FF89DBD737BA689698A171B2392EB3E82" /* nickname= */ +/* extrainfo=0 */ , "166.70.207.2:9030 orport=9001 id=E3DB2E354B883B59E8DC56B3E7A353DDFD457812" /* nickname= */ +/* extrainfo=0 */ , "46.252.26.2:45212 orport=49991 id=E589316576A399C511A9781A73DA4545640B479D" /* nickname= */ +/* extrainfo=0 */ , "167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48" /* nickname= */ +/* extrainfo=0 */ , "131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8" /* nickname= */ +/* extrainfo=0 */ , "192.87.28.28:9030 orport=9001 id=ED2338CAC2711B3E331392E1ED2831219B794024" /* nickname= */ +/* extrainfo=0 */ , "192.99.212.139:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC" /* nickname= */ +/* extrainfo=0 */ , "212.238.208.48:9030 orport=9001 id=F406219CDD339026D160E53FCA0EF6857C70F109" " ipv6=[2001:984:a8fb:1:ba27:ebff:feac:c109]:9001" /* nickname= */ +/* extrainfo=0 */ , "46.28.207.141:80 orport=443 id=F69BED36177ED727706512BA6A97755025EEA0FB" /* nickname= */ +/* extrainfo=0 */ , "78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" /* nickname= */ +/* extrainfo=0 */ , "178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE" /* nickname= */ +/* extrainfo=0 */ , "185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216" /* nickname= */ +/* extrainfo=0 */ , "86.59.119.83:80 orport=443 id=FC9AC8EA0160D88BCCFDE066940D7DD9FA45495B" /* nickname= */ +/* extrainfo=0 */ , "192.187.124.98:9030 orport=9001 id=FD1871854BFC06D7B02F10742073069F0528B5CC" /* nickname= */ +/* extrainfo=0 */ , "149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76" /* nickname= */ +/* extrainfo=0 */ , "193.11.164.243:9030 orport=9001 id=FFA72BD683BC2FCF988356E6BEC1E490F313FB07" " ipv6=[2001:6b0:7:125::243]:9001" /* nickname= */ +/* extrainfo=0 */ , From beedf5fd81c25e67655432e009b047252cd0a970 Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 11:24:29 +1100 Subject: [PATCH 17/30] Remove commas and equals signs from external string inputs to the fallback list This makes sure that list parsers only see one comma per fallback entry, and only see one equals sign per field. Implements ticket 24726. --- changes/ticket24726 | 4 ++++ scripts/maint/updateFallbackDirs.py | 8 ++++++++ 2 files changed, 12 insertions(+) create mode 100644 changes/ticket24726 diff --git a/changes/ticket24726 b/changes/ticket24726 new file mode 100644 index 0000000000..2bbdfa91af --- /dev/null +++ b/changes/ticket24726 @@ -0,0 +1,4 @@ + o Minor features (fallback directory mirrors): + - Remove commas and equals signs from external string inputs to the + fallback list. This avoids format confusion attacks. + Implements ticket 24726. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index d1f50c70c5..52ae886bda 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -284,6 +284,10 @@ def cleanse_c_multiline_comment(raw_string): bad_char_list = '*/' # Prevent a malicious string from using C nulls bad_char_list += '\0' + # Avoid confusing parsers by making sure there is only one comma per fallback + bad_char_list += ',' + # Avoid confusing parsers by making sure there is only one equals per field + bad_char_list += '=' # Be safer by removing bad characters entirely cleansed_string = remove_bad_chars(cleansed_string, bad_char_list) # Some compilers may further process the content of comments @@ -304,6 +308,10 @@ def cleanse_c_string(raw_string): bad_char_list += '\\' # Prevent a malicious string from using C nulls bad_char_list += '\0' + # Avoid confusing parsers by making sure there is only one comma per fallback + bad_char_list += ',' + # Avoid confusing parsers by making sure there is only one equals per field + bad_char_list += '=' # Be safer by removing bad characters entirely cleansed_string = remove_bad_chars(cleansed_string, bad_char_list) # Some compilers may further process the content of strings From 20b96cee6413322d665229c328aaaedff960e27b Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 11:41:41 +1100 Subject: [PATCH 18/30] Update the version header in the current fallback file to 2.0.0 The upcoming fallback rebuild will automatically generate this new format. Follow-up to 24725, due to breaking changes in 24679, 24600, and 22759. --- src/or/fallback_dirs.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index b7a2a099f5..170f1a01a7 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -1,5 +1,5 @@ /* type=fallback */ -/* version=1.0.0 */ +/* version=2.0.0 */ /* Whitelist & blacklist excluded 1326 of 1513 candidates. */ /* To comment-out entries in this file, use C comments, and add * to the start of each line. (stem finds fallback entries using " at the start of a line.) */ /* Checked IPv4 DirPorts served a consensus within 15.0s. */ From b6033f573408e8af4d5d26a63f14401b1614d226 Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 12:50:42 +1100 Subject: [PATCH 19/30] Add a delimiter to the end of each fallback entry This helps external parsers. Also, add comments indicating where to add new fields in the fallback format. Part of 24725. --- changes/ticket24725 | 1 + scripts/maint/updateFallbackDirs.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/changes/ticket24725 b/changes/ticket24725 index 2fe1848ab4..9db7ef8b10 100644 --- a/changes/ticket24725 +++ b/changes/ticket24725 @@ -1,4 +1,5 @@ o Minor features (fallback directory mirrors): - Add a type and version header to the fallback directory mirror file. + Also add a delimiter to the end of each fallback entry. This helps external parsers like stem and Relay Search. Implements ticket 24725. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 52ae886bda..30c63a5b87 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -76,6 +76,8 @@ except ImportError: # * patch changes include changing header comments or other unstructured # content FALLBACK_FORMAT_VERSION = '2.0.0' +SECTION_SEPARATOR_BASE = '=====' +SECTION_SEPARATOR_COMMENT = '/* ' + SECTION_SEPARATOR_BASE + ' */' # Output all candidate fallbacks, or only output selected fallbacks? OUTPUT_CANDIDATES = False @@ -1339,9 +1341,13 @@ class Candidate(object): # comment-out the returned string def fallbackdir_info(self, dl_speed_ok): # "address:dirport orport=port id=fingerprint" + # (insert additional madatory fields here) # "[ipv6=addr:orport]" + # (insert additional optional fields here) # /* nickname=name */ # /* extrainfo={0,1} */ + # (insert additional comment fields here) + # /* ===== */ # , # # Do we want a C string, or a commented-out string? @@ -1363,9 +1369,11 @@ class Candidate(object): self.orport, cleanse_c_string(self._fpr)) s += '\n' + # (insert additional madatory fields here) if self.has_ipv6(): s += '" ipv6=%s:%d"'%(cleanse_c_string(self.ipv6addr), self.ipv6orport) s += '\n' + # (insert additional optional fields here) if not comment_string: s += '/* ' s += 'nickname=%s'%(cleanse_c_string(self._data['nickname'])) @@ -1380,6 +1388,14 @@ class Candidate(object): if not comment_string: s += ' */' s += '\n' + # (insert additional comment fields here) + # The terminator and comma must be the last line in each fallback entry + if not comment_string: + s += '/* ' + s += SECTION_SEPARATOR_BASE + if not comment_string: + s += ' */' + s += '\n' s += ',' if comment_string: s += '\n' @@ -2205,6 +2221,9 @@ def list_fallbacks(whitelist, blacklist): print "/* type=fallback */" print ("/* version={} */" .format(cleanse_c_multiline_comment(FALLBACK_FORMAT_VERSION))) + # end the header with a separator, to make it easier for parsers + print SECTION_SEPARATOR_COMMENT + logging.warning('Downloading and parsing Onionoo data. ' + 'This may take some time.') # find relays that could be fallbacks @@ -2296,6 +2315,9 @@ def list_fallbacks(whitelist, blacklist): for s in fetch_source_list(): print describe_fetch_source(s) + # start the list with a separator, to make it easy for parsers + print SECTION_SEPARATOR_COMMENT + # sort the list differently depending on why we've created it: # if we're outputting the final fallback list, sort by fingerprint # this makes diffs much more stable From c8c0e9167d32994aef073a403f3812e7629a08ec Mon Sep 17 00:00:00 2001 From: teor Date: Sun, 24 Dec 2017 12:54:13 +1100 Subject: [PATCH 20/30] Add delimiters at the end of every fallback entry in the current list Using this script: sed -i.bak $'s|^,$|/* ===== */\\\n,|' src/or/fallback_dirs.inc (Due to embedded newlines, this script only works in bash.) And manually add a delimiter to the end of the header, and the start of the fallback list. This allows us to check that the code compiles, and the unit tests pass. And it allows downstream users stem and atlas to adapt to the new format. The upcoming fallback rebuild will automatically generate this new format. Follow-up to 24725. --- src/or/fallback_dirs.inc | 153 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index 170f1a01a7..dfac15e1e7 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -1,5 +1,6 @@ /* type=fallback */ /* version=2.0.0 */ +/* ===== */ /* Whitelist & blacklist excluded 1326 of 1513 candidates. */ /* To comment-out entries in this file, use C comments, and add * to the start of each line. (stem finds fallback entries using " at the start of a line.) */ /* Checked IPv4 DirPorts served a consensus within 15.0s. */ @@ -16,659 +17,811 @@ URL: https:onionoo.torproject.orgdetails?fields=fingerprint%2Cnickname%2Ccontact Onionoo Source: uptime Date: 2017-05-16 07:00:00 Version: 4.0 URL: https:onionoo.torproject.orguptime?first_seen_days=30-&flag=V2Dir&type=relay&last_seen_days=-0 */ +/* ===== */ "176.10.104.240:80 orport=443 id=0111BA9B604669E636FFD5B503F382A4B7AD6E80" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.171.202.146:9030 orport=9001 id=01A9258A46E97FF8B2CAC7910577862C14F2C524" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.100.85.61:80 orport=443 id=025B66CEBC070FCB0519D206CF0CF4965C20C96E" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.97.32.18:9030 orport=9001 id=04250C3835019B26AA6764E85D836088BE441088" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB" " ipv6=[2a01:4f8:162:51e2::2]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "109.163.234.8:80 orport=443 id=0818DAE0E2DDF795AEDEAC60B15E71901084F281" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.149.155:80 orport=443 id=0B85617241252517E8ECF2CFC7F4C1A32DCD153F" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.39.92.199:80 orport=443 id=0BEA4A88D069753218EAAAD6D22EA87B9A1319D6" " ipv6=[2001:41d0:8:b1c7::1]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.197.82:80 orport=443 id=0D3EBA17E1C78F1E9900BABDB23861D46FCAF163" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.100.86.100:80 orport=443 id=0E8C0C8315B66DB5F703804B3889A1DD66C67CE0" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "95.85.8.226:80 orport=443 id=1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.11.114.43:9030 orport=9001 id=12AD30E5D25AA67F519780E2111E611A455FDC89" " ipv6=[2001:6b0:30:1000::99]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.157.195.87:8030 orport=443 id=12FD624EE73CEF37137C90D38B2406A66F68FAA2" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.16.208.59:80 orport=443 id=136F9299A5009A4E0E96494E723BDB556FB0A26B" " ipv6=[2a00:1c20:4089:1234:bff6:e1bb:1ce3:8dc6]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB" " ipv6=[2a01:4f8:190:9490::dead]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.60.37:80 orport=443 id=175921396C7C426309AB03775A9930B6F611F794" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "204.11.50.131:9030 orport=9001 id=185F2A57B0C4620582602761097D17DB81654F70" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.9.158.75:80 orport=443 id=1AF72E8906E6C49481A791A6F8F84F8DFEBBB2BA" " ipv6=[2a01:4f8:190:514a::2]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.101.151.222:80 orport=443 id=1DBAED235E3957DE1ABD25B4206BE71406FB61F8" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "91.219.237.229:80 orport=443 id=1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.47.229.2:9030 orport=9001 id=20462CBA5DA4C2D963567D17D0B7249718114A68" " ipv6=[2001:bc8:4400:2100::f03]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "144.76.163.93:9030 orport=9001 id=22F08CF09764C4E8982640D77F71ED72FF26A9AC" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.176.167:80 orport=443 id=230A8B2A8BA861210D9B4BA97745AEC217A94207" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.200.98.5:80 orport=443 id=231C2B9C8C31C295C472D031E06964834B745996" " ipv6=[2a00:1158:3::11a]:993" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.47.240.10:82 orport=443 id=2A4C448784F5A83AFE6C78DA357D5E31F7989DEB" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "144.76.26.175:9012 orport=9011 id=2BA2C8E96B2590E1072AECE2BDB5C48921BF8510" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "97.74.237.196:9030 orport=9001 id=2F0F32AB1E5B943CA7D062C03F18960C86E70D94" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "107.170.101.39:9030 orport=443 id=30973217E70AF00EBE51797FF6D9AA720A902EAA" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "64.113.32.29:9030 orport=9001 id=30C19B81981F450C402306E2E7CFB6C3F79CB6B2" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.83.154.33:8080 orport=8443 id=322C6E3A973BC10FC36DE3037AD27BC89F14723B" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "109.105.109.162:52860 orport=60784 id=32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F" " ipv6=[2001:948:7:2::163]:5001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.13.165:9030 orport=9001 id=33DA0CAB7C27812EFF2E22C9705630A54D101FEB" " ipv6=[2001:bc8:38cb:201::8]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "217.79.190.25:9030 orport=9090 id=361D33C96D0F161275EE67E2C91EE10B276E778B" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.187.22.87:9030 orport=9001 id=36B9E7AC1E36B62A9D6F330ABEB6012BA7F0D400" " ipv6=[2001:41d0:a:1657::1]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "62.210.92.11:9130 orport=9101 id=387B065A38E4DAA16D9D41C2964ECBC4B31D30FF" " ipv6=[2001:bc8:338c::1]:9101" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "198.50.191.95:80 orport=443 id=39F096961ED2576975C866D450373A9913AFDC92" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "164.132.77.175:9030 orport=9001 id=3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.47.230.49:9030 orport=9001 id=3D6D0771E54056AEFC28BB1DE816951F11826E97" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "176.10.107.180:9030 orport=9001 id=3D7E274A87D9A89AF064C13D1EE4CA1F184F2600" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "217.79.179.177:9030 orport=9001 id=3E53D3979DB07EFD736661C934A1DED14127B684" " ipv6=[2001:4ba0:fff9:131:6c4f::90d3]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.86.96:9030 orport=9001 id=439D0447772CB107B886F7782DBC201FA26B92D1" " ipv6=[2a03:b0c0:1:d0::3cf:7001]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.157.213:8080 orport=443 id=4623A9EC53BFD83155929E56D6F7B55B5E718C24" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "31.31.78.49:80 orport=443 id=46791D156C9B6C255C2665D4D8393EC7DBAA7798" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "69.162.139.9:9030 orport=9001 id=4791FC0692EAB60DF2BCCAFF940B95B74E7654F6" " ipv6=[2607:f128:40:1212::45a2:8b09]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "51.254.246.203:9030 orport=9001 id=47B596B81C9E6277B98623A84B7629798A16E8D5" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.187.102.186:9030 orport=9001 id=489D94333DF66D57FFE34D9D59CC2D97E2CB0053" " ipv6=[2001:41d0:a:26ba::1]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "188.165.194.195:9030 orport=9001 id=49E7AD01BB96F6FE3AB8C3B15BD2470B150354DF" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "62.102.148.67:80 orport=443 id=4A0C3E177AF684581EF780981AEAF51A98A6B5CF" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "51.254.101.242:9002 orport=9001 id=4CC9CC9195EC38645B699A33307058624F660CCF" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "81.7.16.182:80 orport=443 id=51E1CF613FD6F9F11FE24743C91D6F9981807D82" " ipv6=[2a02:180:1:1::517:10b6]:993" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "94.23.204.175:9030 orport=9001 id=5665A3904C89E22E971305EE8C1997BCA4123C69" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "95.130.12.119:80 orport=443 id=587E0A9552E4274B251F29B5B2673D38442EE4BF" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.21.100.50:9030 orport=9001 id=58ED9C9C35E433EE58764D62892B4FFD518A3CD0" " ipv6=[2a00:1158:2:cd00:0:74:6f:72]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "78.142.142.246:80 orport=443 id=5A5E03355C1908EBF424CAF1F3ED70782C0D2F74" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "120.29.217.46:80 orport=443 id=5E853C94AB1F655E9C908924370A0A6707508C62" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "109.163.234.5:80 orport=443 id=5EB8D862E70981B8690DEDEF546789E26AB2BD24" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "95.128.43.164:80 orport=443 id=616081EC829593AF4232550DE6FFAA1D75B37A90" " ipv6=[2a02:ec0:209:10::4]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.139.104:8080 orport=443 id=68F175CCABE727AA2D2309BCD8789499CEE36ED7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "85.214.62.48:80 orport=443 id=6A7551EEE18F78A9813096E82BF84F740D32B911" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "80.127.137.19:80 orport=443 id=6EF897645B79B6CB35E853B32506375014DE3621" " ipv6=[2001:981:47c1:1::6]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "95.183.48.12:80 orport=443 id=7187CED1A3871F837D0E60AC98F374AC541CB0DA" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "85.214.151.72:9030 orport=9001 id=722D365140C8C52DBB3C9FF6986E3CEFFE2BA812" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "85.235.250.88:80 orport=443 id=72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "176.31.191.26:80 orport=443 id=7350AB9ED7568F22745198359373C04AC783C37C" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "134.119.36.135:80 orport=443 id=763C9556602BD6207771A7A3D958091D44C43228" " ipv6=[2a00:1158:3::2a8]:993" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "188.166.133.133:9030 orport=9001 id=774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7" " ipv6=[2a03:b0c0:2:d0::5:f001]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "81.30.158.213:9030 orport=9001 id=789EA6C9AE9ADDD8760903171CFA9AC5741B0C70" " ipv6=[2001:4ba0:cafe:e84::1]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "171.25.193.131:80 orport=443 id=79861CF8522FC637EF046F7688F5289E49D94576" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "82.223.21.74:9030 orport=9001 id=7A32C9519D80CA458FC8B034A28F5F6815649A98" " ipv6=[2001:470:53e0::cafe]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "51.254.136.195:80 orport=443 id=7BB70F8585DFC27E75D692970C0EEB0F22983A63" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.11.114.45:9031 orport=9002 id=80AAF8D5956A43C197104CEF2550CD42D165C6FB" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.160.102.164:80 orport=9001 id=823AA81E277F366505545522CEDC2F529CE4DC3F" " ipv6=[2605:e200:d00c:c01d::1111]:9002" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.87.28.82:9030 orport=9001 id=844AE9CAD04325E955E2BE1521563B79FE7094B7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "188.166.23.127:80 orport=443 id=8672E8A01B4D3FA4C0BBE21C740D4506302EA487" " ipv6=[2a03:b0c0:2:d0::27b:7001]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "93.180.156.84:9030 orport=9001 id=8844D87E9B038BE3270938F05AF797E1D3C74C0F" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.47.241.21:80 orport=443 id=892F941915F6A0C6E0958E52E0A9685C190CF45C" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.194.53:9030 orport=9001 id=8C00FA7369A7A308F6A137600F0FA07990D9D451" " ipv6=[2001:bc8:225f:142:6c69:7461:7669:73]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "151.80.42.103:9030 orport=9001 id=9007C1D8E4F03D506A4A011B907A9E8D04E3C605" " ipv6=[2001:41d0:e:f67::114]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "173.255.245.116:9030 orport=9001 id=91E4015E1F82DAF0121D62267E54A1F661AB6DC7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "51.255.41.65:9030 orport=9001 id=9231DF741915AA1630031A93026D88726877E93A" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A" " ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "91.219.237.244:80 orport=443 id=92ECC9E0E2AF81BB954719B189AC362E254AD4A5" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "204.8.156.142:80 orport=443 id=94C4B7B8C50C86A92B6A20107539EE2678CF9A28" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.223.200:80 orport=443 id=998BF3ED7F70E33D1C307247B9626D9E7573C438" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "81.7.10.93:31336 orport=31337 id=99E246DB480B313A3012BC3363093CC26CD209C7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "91.229.20.27:9030 orport=9001 id=9A0D54D3A6D2E0767596BF1515E6162A75B3293F" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "66.111.2.20:9030 orport=9001 id=9A68B85A02318F4E7E87F2828039FBD5D75B0142" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.100.86.128:9030 orport=9001 id=9B31F1F1C1554F9FFB3455911F82E818EF7C7883" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.9.151.241:9030 orport=4223 id=9BF04559224F0F1C3C953D641F1744AF0192543A" " ipv6=[2a01:4f8:190:34f0::2]:4223" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "86.105.212.130:9030 orport=443 id=9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.28.110.244:80 orport=443 id=9F7D6E6420183C2B76D3CE99624EBC98A21A967E" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "91.121.84.137:4952 orport=4052 id=9FBEB75E8BC142565F12CBBE078D63310236A334" " ipv6=[2001:41d0:1:8989::1]:4052" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.22.36:80 orport=443 id=A0766C0D3A667A3232C7D569DE94A28F9922FCB1" " ipv6=[2a03:b0c0:1:d0::174:1]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "171.25.193.77:80 orport=443 id=A10C4F666D27364036B562823E5830BC448E046A" " ipv6=[2001:67c:289c:3::77]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "171.25.193.78:80 orport=443 id=A478E421F83194C114F41E94F95999672AED51FE" " ipv6=[2001:67c:289c:3::78]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.149.122:80 orport=443 id=A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.34.63.137:9030 orport=443 id=ABCB4965F1FEE193602B50A365425105C889D3F8" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "109.163.234.9:80 orport=443 id=ABF7FBF389C9A747938B639B20E80620B460B2A9" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "86.59.119.88:80 orport=443 id=ACD889D86E02EDDAB1AFD81F598C0936238DC6D0" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.129.62.62:9030 orport=9001 id=ACDD9E85A05B127BA010466C13C8C47212E8A38F" " ipv6=[2a06:d380:0:3700::62]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "163.172.131.88:80 orport=443 id=AD253B49E303C6AB1E048B014392AC569E8A7DAE" " ipv6=[2001:bc8:4400:2100::2:1009]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "31.185.104.20:80 orport=443 id=ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.187.7.74:80 orport=443 id=AEA43CB1E47BE5F8051711B2BF01683DB1568E05" " ipv6=[2001:41d0:a:74a::1]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.28.205.170:80 orport=443 id=AF322D83A4D2048B22F7F1AF5F38AFF4D09D0B76" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.9.147.226:9030 orport=9001 id=B0553175AADB0501E5A61FC61CEA3970BE130FF2" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.129.62.232:80 orport=443 id=B143D439B72D239A419F8DCE07B8A8EB1B486FA7" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "198.199.64.217:80 orport=443 id=B1D81825CFD7209BD1B4520B040EF5653C204A23" " ipv6=[2604:a880:400:d0::1a9:b001]:9050" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "136.243.214.137:80 orport=443 id=B291D30517D23299AD7CEE3E60DFE60D0E3A4664" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.16.208.60:80 orport=443 id=B44FBE5366AD98B46D829754FA4AC599BAE41A6A" " ipv6=[2a00:1c20:4089:1234:67bc:79f3:61c0:6e49]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "93.115.97.242:9030 orport=9001 id=B5212DB685A2A0FCFBAE425738E478D12361710D" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "81.2.209.10:443 orport=80 id=B6904ADD4C0D10CDA7179E051962350A69A63243" " ipv6=[2001:15e8:201:1::d10a]:80" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.11.114.46:9032 orport=9003 id=B83DC1558F0D34353BB992EF93AFEAFDB226A73E" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "85.248.227.164:444 orport=9002 id=B84F248233FEA90CAD439F292556A3139F6E1B82" " ipv6=[2a00:1298:8011:212::164]:9004" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "89.163.247.43:9030 orport=9001 id=BC7ACFAC04854C77167C7D66B7E471314ED8C410" " ipv6=[2001:4ba0:fff7:25::5]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "198.96.155.3:8080 orport=5001 id=BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "128.199.55.207:9030 orport=9001 id=BCEF908195805E03E92CCFE669C48738E556B9C5" " ipv6=[2a03:b0c0:2:d0::158:3001]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.35.202.221:9030 orport=9001 id=C13B91384CDD52A871E3ECECE4EF74A7AC7DCB08" " ipv6=[2a02:ed06::221]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "213.239.217.18:1338 orport=1337 id=C37BC191AC389179674578C3E6944E925FE186C2" " ipv6=[2a01:4f8:a0:746a:101:1:1:1]:1337" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "188.138.112.60:1433 orport=1521 id=C414F28FD2BEC1553024299B31D4E726BEB8E788" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "85.248.227.163:443 orport=9001 id=C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9" " ipv6=[2a00:1298:8011:212::163]:9003" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE" " ipv6=[2a03:b0c0:2:d0::b7:5001]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "134.119.3.164:9030 orport=9001 id=D1B8AAA98C65F3DF7D8BB3AF881CAEB84A33D8EE" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "31.171.155.108:9030 orport=9001 id=D3E5EDDBE5159388704D6785BE51930AAFACEC6F" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "37.187.115.157:9030 orport=9001 id=D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "166.82.21.200:9030 orport=9029 id=D5C33F3E203728EDF8361EA868B2939CCC43FAFB" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.14.185.240:9030 orport=443 id=D62FB817B0288085FAC38A6DC8B36DCD85B70260" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.101.169.151:9030 orport=9001 id=D760C5B436E42F93D77EF2D969157EEA14F9B39C" " ipv6=[2a03:b0c0:3:d0::74f:a001]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.4.111.124:9030 orport=9001 id=D9065F9E57899B3D272AA212317AF61A9B14D204" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.35.52.53:9030 orport=9001 id=DAA39FC00B196B353C2A271459C305C429AF09E4" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.33.183.251:80 orport=443 id=DD823AFB415380A802DCAEB9461AE637604107FB" " ipv6=[2001:41d0:2:a683::251]:443" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10" " ipv6=[2a03:b0c0:0:1010::a4:b001]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "5.34.183.205:80 orport=443 id=DDD7871C1B7FA32CB55061E08869A236E61BDDF8" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "78.24.75.53:9030 orport=9001 id=DEB73705B2929AE9BE87091607388939332EF123" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "92.222.38.67:80 orport=443 id=DED6892FF89DBD737BA689698A171B2392EB3E82" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "166.70.207.2:9030 orport=9001 id=E3DB2E354B883B59E8DC56B3E7A353DDFD457812" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.252.26.2:45212 orport=49991 id=E589316576A399C511A9781A73DA4545640B479D" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.87.28.28:9030 orport=9001 id=ED2338CAC2711B3E331392E1ED2831219B794024" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.99.212.139:80 orport=443 id=F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "212.238.208.48:9030 orport=9001 id=F406219CDD339026D160E53FCA0EF6857C70F109" " ipv6=[2001:984:a8fb:1:ba27:ebff:feac:c109]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "46.28.207.141:80 orport=443 id=F69BED36177ED727706512BA6A97755025EEA0FB" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "185.96.180.29:80 orport=443 id=F93D8F37E35C390BCAD9F9069E13085B745EC216" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "86.59.119.83:80 orport=443 id=FC9AC8EA0160D88BCCFDE066940D7DD9FA45495B" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "192.187.124.98:9030 orport=9001 id=FD1871854BFC06D7B02F10742073069F0528B5CC" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "149.56.45.200:9030 orport=9001 id=FE296180018833AF03A8EACD5894A614623D3F76" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , "193.11.164.243:9030 orport=9001 id=FFA72BD683BC2FCF988356E6BEC1E490F313FB07" " ipv6=[2001:6b0:7:125::243]:9001" /* nickname= */ /* extrainfo=0 */ +/* ===== */ , From d8ab1b803ab66c3c8c4393c1575b067da95ce73d Mon Sep 17 00:00:00 2001 From: teor Date: Tue, 26 Dec 2017 18:23:11 +1100 Subject: [PATCH 21/30] Remove an incorrect C comment from updateFallbackDirs.py's list generation code Part of #24725. --- scripts/maint/updateFallbackDirs.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 30c63a5b87..54b50c3779 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -2114,10 +2114,6 @@ class CandidateList(dict): def summarise_fallbacks(self, eligible_count, operator_count, failed_count, guard_count, target_count): s = '' - s += '/* To comment-out entries in this file, use C comments, and add *' - s += ' to the start of each line. (stem finds fallback entries using "' - s += ' at the start of a line.) */' - s += '\n' # Report: # whether we checked consensus download times # the number of fallback directories (and limits/exclusions, if relevant) From 70490df76a65387ea56fa2ed307faf5a4a152914 Mon Sep 17 00:00:00 2001 From: teor Date: Tue, 26 Dec 2017 18:26:27 +1100 Subject: [PATCH 22/30] Remove an incorrect C comment in the current fallback list Follow-up to #24725 --- src/or/fallback_dirs.inc | 1 - 1 file changed, 1 deletion(-) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index dfac15e1e7..912a8853c0 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -2,7 +2,6 @@ /* version=2.0.0 */ /* ===== */ /* Whitelist & blacklist excluded 1326 of 1513 candidates. */ -/* To comment-out entries in this file, use C comments, and add * to the start of each line. (stem finds fallback entries using " at the start of a line.) */ /* Checked IPv4 DirPorts served a consensus within 15.0s. */ /* Final Count: 151 (Eligible 187, Target 392 (1963 * 0.20), Max 200) From 9864fcd4e30e9afa2fa7a8bc25cf8399432a5796 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 27 Dec 2017 21:10:46 +1100 Subject: [PATCH 23/30] Add a generated timestamp to the fallback directory header This can act as a revision counter, as requested by atagar in 24742. Part of 24725. --- scripts/maint/updateFallbackDirs.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 54b50c3779..4c0a30a5ef 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -2217,6 +2217,10 @@ def list_fallbacks(whitelist, blacklist): print "/* type=fallback */" print ("/* version={} */" .format(cleanse_c_multiline_comment(FALLBACK_FORMAT_VERSION))) + now = datetime.datetime.utcnow() + timestamp = now.strftime('%Y%m%d%H%M%S') + print ("/* timestamp={} */" + .format(cleanse_c_multiline_comment(timestamp))) # end the header with a separator, to make it easier for parsers print SECTION_SEPARATOR_COMMENT From ca1f808d938939b1bfb5ffed5124d3a32c7d1743 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 27 Dec 2017 21:13:21 +1100 Subject: [PATCH 24/30] Add a timestamp to the header of the current fallback list This timestamp is based on the time that list was first committed. Part of 24725. --- src/or/fallback_dirs.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc index 912a8853c0..2c8fe724a4 100644 --- a/src/or/fallback_dirs.inc +++ b/src/or/fallback_dirs.inc @@ -1,5 +1,6 @@ /* type=fallback */ /* version=2.0.0 */ +/* timestamp=20170526090242 */ /* ===== */ /* Whitelist & blacklist excluded 1326 of 1513 candidates. */ /* Checked IPv4 DirPorts served a consensus within 15.0s. */ From e244738bbd7d0fb58bb17bcec071a0b7b71fd532 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 21:38:12 +1100 Subject: [PATCH 25/30] Add fallback directory mirror helper scripts Add the generateFallbackDirLine.py script for automatically generating fallback directory mirror lines from relay fingerprints. No more typos! Add the lookupFallbackDirContact.py script for automatically looking up operator contact info from relay fingerprints. Implements ticket 24706. --- changes/ticket24706 | 6 ++++ scripts/maint/fallback.blacklist | 2 ++ scripts/maint/fallback.whitelist | 2 ++ scripts/maint/generateFallbackDirLine.py | 41 +++++++++++++++++++++++ scripts/maint/lookupFallbackDirContact.py | 28 ++++++++++++++++ 5 files changed, 79 insertions(+) create mode 100644 changes/ticket24706 create mode 100755 scripts/maint/generateFallbackDirLine.py create mode 100755 scripts/maint/lookupFallbackDirContact.py diff --git a/changes/ticket24706 b/changes/ticket24706 new file mode 100644 index 0000000000..716f88c89b --- /dev/null +++ b/changes/ticket24706 @@ -0,0 +1,6 @@ + o Minor features (fallback directory mirrors): + - Add the generateFallbackDirLine.py script for automatically generating + fallback directory mirror lines from relay fingerprints. No more typos! + Add the lookupFallbackDirContact.py script for automatically looking up + operator contact info from relay fingerprints. + Implements ticket 24706. diff --git a/scripts/maint/fallback.blacklist b/scripts/maint/fallback.blacklist index 1d0edfd0b9..a118cb5919 100644 --- a/scripts/maint/fallback.blacklist +++ b/scripts/maint/fallback.blacklist @@ -3,6 +3,8 @@ # Format: # [ IPv4[:DirPort] ] [ orport= ] [ id= ] ... # [ ipv6=[:] ] +# or use: +# scripts/maint/generateFallbackDirLine.py fingerprint ... # # If a sufficiently specific group of attributes matches, the directory mirror # will be excluded: (each group is listed on its own line) diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist index b8bb82fd03..e9158e1280 100644 --- a/scripts/maint/fallback.whitelist +++ b/scripts/maint/fallback.whitelist @@ -2,6 +2,8 @@ # # Format: # IPv4:DirPort orport= id= [ ipv6=: ] +# or use: +# scripts/maint/generateFallbackDirLine.py fingerprint ... # # All attributes must match for the directory mirror to be included. # If the fallback has an ipv6 key, the whitelist line must also have diff --git a/scripts/maint/generateFallbackDirLine.py b/scripts/maint/generateFallbackDirLine.py new file mode 100755 index 0000000000..b59edc33f5 --- /dev/null +++ b/scripts/maint/generateFallbackDirLine.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +# Generate a fallback directory whitelist/blacklist line for every fingerprint +# passed as an argument. +# +# Usage: +# generateFallbackDirLine.py fingerprint ... + +import sys + +import stem.descriptor.remote as remote + +if len(sys.argv) <= 1: + print "Usage: {} fingerprint ...".format(sys.argv[0]) + sys.exit(-1) + +# we need the full consensus, because it has IPv6 ORPorts +# and we want a fingerprint to router mapping in routers +# +# stem returns document_handler='DOCUMENT' as a list of consensuses +# with one entry +consensus = remote.get_consensus(document_handler='DOCUMENT').run()[0] + +for fingerprint in sys.argv[1:]: + if fingerprint in consensus.routers: + r = consensus.routers[fingerprint] + # Tor clients don't use DirPorts, but old code requires one for fallbacks + if r.dir_port is not None: + # IPv4:DirPort orport=ORPort id=Fingerprint ipv6=[IPv6]:IPv6ORPort # nick + ipv6_or_ap_list = [ apv for apv in r.or_addresses if apv[2] ] + ipv6_str = "" + if len(ipv6_or_ap_list) > 0: + ipv6_or_ap = ipv6_or_ap_list[0] + ipv6_str = " ipv6=[{}]:{}".format(ipv6_or_ap[0], ipv6_or_ap[1]) + print ("{}:{} orport={} id={}{} # {}" + .format(r.address, r.dir_port, r.or_port, r.fingerprint, + ipv6_str, r.nickname)) + else: + print "# {} needs a DirPort".format(fingerprint) + else: + print "# {} not found in current consensus".format(fingerprint) diff --git a/scripts/maint/lookupFallbackDirContact.py b/scripts/maint/lookupFallbackDirContact.py new file mode 100755 index 0000000000..14c53d1282 --- /dev/null +++ b/scripts/maint/lookupFallbackDirContact.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +# Lookup fallback directory contact lines for every fingerprint passed as an +# argument. +# +# Usage: +# lookupFallbackDirContact.py fingerprint ... + +import sys + +import stem.descriptor.remote as remote + +if len(sys.argv) <= 1: + print "Usage: {} fingerprint ...".format(sys.argv[0]) + sys.exit(-1) + +# we need descriptors, because the consensus does not have contact infos +descriptor_list = remote.get_server_descriptors(fingerprints=sys.argv[1:]).run() + +descriptor_list_fingerprints = [] +for d in descriptor_list: + assert d.fingerprint in sys.argv[1:] + descriptor_list_fingerprints.append(d.fingerprint) + print "{} {}".format(d.fingerprint, d.contact) + +for fingerprint in sys.argv[1:]: + if fingerprint not in descriptor_list_fingerprints: + print "{} not found in current descriptors".format(fingerprint) From 2ae33e486e3c4bc4dfa6c9fcda99dd15f74b31e9 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 27 Dec 2017 13:18:05 +1100 Subject: [PATCH 26/30] Revise the generateFallbackDirLine.py script to use descriptors Patch by atagar, part of #24706. --- changes/ticket24706 | 2 +- scripts/maint/generateFallbackDirLine.py | 47 +++++++++++------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/changes/ticket24706 b/changes/ticket24706 index 716f88c89b..fadb7a23be 100644 --- a/changes/ticket24706 +++ b/changes/ticket24706 @@ -3,4 +3,4 @@ fallback directory mirror lines from relay fingerprints. No more typos! Add the lookupFallbackDirContact.py script for automatically looking up operator contact info from relay fingerprints. - Implements ticket 24706. + Implements ticket 24706, patch by teor and atagar. diff --git a/scripts/maint/generateFallbackDirLine.py b/scripts/maint/generateFallbackDirLine.py index b59edc33f5..b856c938bf 100755 --- a/scripts/maint/generateFallbackDirLine.py +++ b/scripts/maint/generateFallbackDirLine.py @@ -7,35 +7,32 @@ # generateFallbackDirLine.py fingerprint ... import sys +import urllib2 -import stem.descriptor.remote as remote +import stem.descriptor.remote +import stem.util.tor_tools if len(sys.argv) <= 1: - print "Usage: {} fingerprint ...".format(sys.argv[0]) - sys.exit(-1) - -# we need the full consensus, because it has IPv6 ORPorts -# and we want a fingerprint to router mapping in routers -# -# stem returns document_handler='DOCUMENT' as a list of consensuses -# with one entry -consensus = remote.get_consensus(document_handler='DOCUMENT').run()[0] + print('Usage: %s fingerprint ...' % sys.argv[0]) + sys.exit(1) for fingerprint in sys.argv[1:]: - if fingerprint in consensus.routers: - r = consensus.routers[fingerprint] - # Tor clients don't use DirPorts, but old code requires one for fallbacks - if r.dir_port is not None: - # IPv4:DirPort orport=ORPort id=Fingerprint ipv6=[IPv6]:IPv6ORPort # nick - ipv6_or_ap_list = [ apv for apv in r.or_addresses if apv[2] ] - ipv6_str = "" - if len(ipv6_or_ap_list) > 0: - ipv6_or_ap = ipv6_or_ap_list[0] - ipv6_str = " ipv6=[{}]:{}".format(ipv6_or_ap[0], ipv6_or_ap[1]) - print ("{}:{} orport={} id={}{} # {}" - .format(r.address, r.dir_port, r.or_port, r.fingerprint, - ipv6_str, r.nickname)) + if not stem.util.tor_tools.is_valid_fingerprint(fingerprint): + print("'%s' isn't a valid relay fingerprint" % fingerprint) + sys.exit(1) + + try: + desc = stem.descriptor.remote.get_server_descriptors(fingerprint).run()[0] + except urllib2.HTTPError as exc: + if exc.code == 404: + print('# %s not found in recent descriptors' % fingerprint) + continue else: - print "# {} needs a DirPort".format(fingerprint) + raise + + if not desc.dir_port: + print("# %s needs a DirPort" % fingerprint) else: - print "# {} not found in current consensus".format(fingerprint) + ipv6_addresses = [(address, port) for address, port, is_ipv6 in desc.or_addresses if is_ipv6] + ipv6_field = ' ipv6=[%s]:%s' % ipv6_addresses[0] if ipv6_addresses else '' + print('%s:%s orport=%s id=%s%s # %s' % (desc.address, desc.dir_port, desc.or_port, fingerprint, ipv6_field, desc.nickname)) From 91a8b37a2ec9dd91ad4b1ce55eb25b1d5de8d4ea Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 21:42:59 +1100 Subject: [PATCH 27/30] Make updateFallbackDirs.py search harder for python (Some OSs don't put it in /usr/bin.) Fixes bug 24708; bugfix on 0.2.8.1-alpha. --- changes/bug24708 | 4 ++++ scripts/maint/updateFallbackDirs.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 changes/bug24708 diff --git a/changes/bug24708 b/changes/bug24708 new file mode 100644 index 0000000000..89eb4f97f0 --- /dev/null +++ b/changes/bug24708 @@ -0,0 +1,4 @@ + o Minor bugfixes (fallback directory mirrors): + - Make updateFallbackDirs.py search harder for python. + (Some OSs don't put it in /usr/bin.) + Fixes bug 24708; bugfix on 0.2.8.1-alpha. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 4c0a30a5ef..81fb26f886 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # Usage: # From befcc56d84f6070013ef2df6d734ac06e7b4533e Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 22 Dec 2017 23:38:37 +1100 Subject: [PATCH 28/30] Update dependency list for the fallback script Comment-only change. Implements #24711. --- scripts/maint/updateFallbackDirs.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 81fb26f886..fafc4f1299 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -14,14 +14,12 @@ # If this is not possible, please disable: # PERFORM_IPV4_DIRPORT_CHECKS and PERFORM_IPV6_DIRPORT_CHECKS # -# Needs dateutil (and potentially other python packages) -# Needs stem available in your PYTHONPATH, or just ln -s ../stem/stem . +# Needs dateutil, stem, and potentially other python packages. # Optionally uses ipaddress (python 3 builtin) or py2-ipaddress (package) -# for netblock analysis, in PYTHONPATH, or just -# ln -s ../py2-ipaddress-3.4.1/ipaddress.py . +# for netblock analysis. # # Then read the logs to make sure the fallbacks aren't dominated by a single -# netblock or port +# netblock or port. # Script by weasel, April 2015 # Portions by gsathya & karsten, 2013 From d30d3fe8ed4b88c070736b22e2de16dcfe9a1b80 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 5 Jan 2018 00:08:11 +1100 Subject: [PATCH 29/30] Adjust fallback selection parameters Avoid selecting fallbacks that change their IP addresses too often. Select more fallbacks by ignoring the Guard flag, and allowing lower cutoffs for the Running and V2Dir flags. Also allow a lower bandwidth, and a higher number of fallbacks per operator (5% of the list). Implements ticket 24785. --- changes/ticket24785 | 6 ++++ scripts/maint/updateFallbackDirs.py | 49 ++++++++++++++++++----------- 2 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 changes/ticket24785 diff --git a/changes/ticket24785 b/changes/ticket24785 new file mode 100644 index 0000000000..39667cb8db --- /dev/null +++ b/changes/ticket24785 @@ -0,0 +1,6 @@ + o Minor features (fallbacks): + - Avoid selecting fallbacks that change their IP addresses too often. + Select more fallbacks by ignoring the Guard flag, and allowing lower + cutoffs for the Running and V2Dir flags. Also allow a lower bandwidth, + and a higher number of fallbacks per operator (5% of the list). + Implements ticket 24785. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index fafc4f1299..9f44bc097b 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -170,25 +170,30 @@ MAX_LIST_FILE_SIZE = 1024 * 1024 # Require fallbacks to have the same address and port for a set amount of time # We used to have this at 1 week, but that caused many fallback failures, which -# meant that we had to rebuild the list more often. +# meant that we had to rebuild the list more often. We want fallbacks to be +# stable for 2 years, so we set it to a few months. # # There was a bug in Tor 0.2.8.1-alpha and earlier where a relay temporarily # submits a 0 DirPort when restarted. # This causes OnionOO to (correctly) reset its stability timer. -# Affected relays should upgrade to Tor 0.2.8.7 or later, which has a fix +# Affected relays should upgrade to Tor 0.2.9 or later, which has a fix # for this issue. -ADDRESS_AND_PORT_STABLE_DAYS = 30 +# +# If a relay changes address or port, that's it, it's not useful any more, +# because clients can't find it +ADDRESS_AND_PORT_STABLE_DAYS = 90 # We ignore relays that have been down for more than this period MAX_DOWNTIME_DAYS = 0 if MUST_BE_RUNNING_NOW else 7 -# What time-weighted-fraction of these flags must FallbackDirs -# Equal or Exceed? -CUTOFF_RUNNING = .90 -CUTOFF_V2DIR = .90 -# Tolerate lower guard flag averages, as guard flags are removed for some time -# after a relay restarts -CUTOFF_GUARD = .80 -# What time-weighted-fraction of these flags must FallbackDirs -# Equal or Fall Under? +# FallbackDirs must have a time-weighted-fraction that is greater than or +# equal to: +# Mirrors that are down half the time are still useful half the time +CUTOFF_RUNNING = .50 +CUTOFF_V2DIR = .50 +# Guard flags are removed for some time after a relay restarts, so we ignore +# the guard flag. +CUTOFF_GUARD = .00 +# FallbackDirs must have a time-weighted-fraction that is less than or equal +# to: # .00 means no bad exits PERMITTED_BADEXIT = .00 @@ -211,13 +216,19 @@ MAX_FALLBACK_COUNT = None if OUTPUT_CANDIDATES else 200 MIN_FALLBACK_COUNT = 0 if OUTPUT_CANDIDATES else MAX_FALLBACK_COUNT*0.5 # The maximum number of fallbacks on the same address, contact, or family -# With 200 fallbacks, this means each operator can see 1% of client bootstraps -# (The directory authorities used to see ~12% of client bootstraps each.) +# +# With 150 fallbacks, this means each operator sees 5% of client bootstraps. +# For comparison: +# - We try to limit guard and exit operators to 5% of the network +# - The directory authorities used to see 11% of client bootstraps each +# +# We also don't want too much of the list to go down if a single operator +# has to move all their relays. MAX_FALLBACKS_PER_IP = 1 MAX_FALLBACKS_PER_IPV4 = MAX_FALLBACKS_PER_IP MAX_FALLBACKS_PER_IPV6 = MAX_FALLBACKS_PER_IP -MAX_FALLBACKS_PER_CONTACT = 3 -MAX_FALLBACKS_PER_FAMILY = 3 +MAX_FALLBACKS_PER_CONTACT = 7 +MAX_FALLBACKS_PER_FAMILY = 7 ## Fallback Bandwidth Requirements @@ -229,11 +240,11 @@ EXIT_BANDWIDTH_FRACTION = 1.0 # If a single fallback's bandwidth is too low, it's pointless adding it # We expect fallbacks to handle an extra 10 kilobytes per second of traffic -# Make sure they can support a hundred times the expected extra load -# (Use 102.4 to make it come out nicely in MByte/s) +# Make sure they can support fifty times the expected extra load +# # We convert this to a consensus weight before applying the filter, # because all the bandwidth amounts are specified by the relay -MIN_BANDWIDTH = 102.4 * 10.0 * 1024.0 +MIN_BANDWIDTH = 50.0 * 10.0 * 1024.0 # Clients will time out after 30 seconds trying to download a consensus # So allow fallback directories half that to deliver a consensus From 65520f1bde36286765424cf29f50d67cbc9d8df1 Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 5 Jan 2018 00:23:52 +1100 Subject: [PATCH 30/30] Stop logging excessive information about fallback netblocks Implements ticket 24791 --- changes/ticket24791 | 3 +++ scripts/maint/updateFallbackDirs.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 changes/ticket24791 diff --git a/changes/ticket24791 b/changes/ticket24791 new file mode 100644 index 0000000000..092ae85111 --- /dev/null +++ b/changes/ticket24791 @@ -0,0 +1,3 @@ + o Code simplification and refactoring (fallbacks): + - Stop logging excessive information about fallback netblocks. + Implements ticket 24791. diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py index 9f44bc097b..dbd15eb519 100755 --- a/scripts/maint/updateFallbackDirs.py +++ b/scripts/maint/updateFallbackDirs.py @@ -1996,7 +1996,7 @@ class CandidateList(dict): # this doesn't actually tell us anything useful #self.describe_fallback_ipv4_netblock_mask(8) self.describe_fallback_ipv4_netblock_mask(16) - self.describe_fallback_ipv4_netblock_mask(24) + #self.describe_fallback_ipv4_netblock_mask(24) # log a message about the proportion of fallbacks in each IPv6 /12 (RIR), # /23 (smaller RIR blocks), /32 (LIR), /48 (Customer), and /64 (Host) @@ -2006,7 +2006,7 @@ class CandidateList(dict): #self.describe_fallback_ipv6_netblock_mask(12) #self.describe_fallback_ipv6_netblock_mask(23) self.describe_fallback_ipv6_netblock_mask(32) - self.describe_fallback_ipv6_netblock_mask(48) + #self.describe_fallback_ipv6_netblock_mask(48) self.describe_fallback_ipv6_netblock_mask(64) # log a message about the proportion of fallbacks in each IPv4 and IPv6