Is AS6939 blocked by Brave Search

Description of the issue:

Beginning yesterday morning, attempts to use Brave Search are refused. The message tells me to use different IPs, but I have been using the same IPv6 addresses for years longer than Brave has even existed. I rely on Hurricane Electric TunnelBroker because my previous ISP had nonexistent IPv6 support and my current one only has IPv6RD which is not a viable replacement. I tested from another VLAN that uses addresses from my routed /48 just to confirm that the block is not affecting only my /64.

Brave Version (check About Brave):

Brave 1.95.104, Chromium 153.0.8010.53

Operating System:

Android 16; Build/BP2A.250605.031.A3

Question:

Can you share whether my suspicion of this being a quiet policy change banning TunnelBroker address space is correct and whether this policy is permanent? If there are no plans to fix this issue, there is little point in me continuing to check whether Brave Search is working again. I sincerely hope that Brave Search is able to find an effective solution to whatever issue it is mitigating, without disrupting people who rely on TunnelBroker through collateral damage.

Yep, also seeing this behavior using my Hurricane Electric tunnel.

Route64 doesn’t work either.

I would love an official statement from Brave about their IPv6 tunnel policy. Many of us don’t have native IPv6 support from our ISPs.

It’s certainly frustrating. Even when Reddit has gotten overly zealous about TunnelBroker, they at least have a way to sign in and still use their sevice.

I had to switch my default search to another provider. It would be nice of there was somewhere to reliably track this issue to know when I can resume using Brave Search again.

Completely agree, I am also being forced to use another search right now, and I would prefer to continue using Brave Search. =\

Not to mention Route64 is fairly small, not sure why they need to block those IPs.

With HE I understand the concern, but the local blocks are reserved and maybe they should only block the ones actually abusing the service.

My Internet connection: Guest Wi-Fi + a VPN server

MacOS Terminal.app window:

Using command: curl -v --http1.1 https://search.brave.com

I suggest testing via the command, and comparing your results with the following … Result (not all of the result, but leading portion of it as follows):

$ curl -v --http1.1 https://search.brave.com
* Host search.brave.com:443 was resolved.
* IPv6: 2600:9000:2807:7600:5:a6ac:6100:93a1, 2600:9000:2807:200:5:a6ac:6100:93a1, 2600:9000:2807:8200:5:a6ac:6100:93a1, 2600:9000:2807:6a00:5:a6ac:6100:93a1, 2600:9000:2807:400:5:a6ac:6100:93a1, 2600:9000:2807:f200:5:a6ac:6100:93a1, 2600:9000:2807:ee00:5:a6ac:6100:93a1, 2600:9000:2807:5600:5:a6ac:6100:93a1
* IPv4: 3.168.102.77, 3.168.102.34, 3.168.102.104, 3.168.102.129
*   Trying 3.168.102.77:443...
*   Trying [2600:9000:2807:7600:5:a6ac:6100:93a1]:443...
* Immediate connect fail for 2600:9000:2807:7600:5:a6ac:6100:93a1: No route to host
*   Trying [2600:9000:2807:200:5:a6ac:6100:93a1]:443...
* Immediate connect fail for 2600:9000:2807:200:5:a6ac:6100:93a1: No route to host
*   Trying [2600:9000:2807:8200:5:a6ac:6100:93a1]:443...
* Immediate connect fail for 2600:9000:2807:8200:5:a6ac:6100:93a1: No route to host
*   Trying [2600:9000:2807:6a00:5:a6ac:6100:93a1]:443...
* Immediate connect fail for 2600:9000:2807:6a00:5:a6ac:6100:93a1: No route to host
*   Trying [2600:9000:2807:400:5:a6ac:6100:93a1]:443...
* Immediate connect fail for 2600:9000:2807:400:5:a6ac:6100:93a1: No route to host
* Connected to search.brave.com (3.168.102.77) port 443
* ALPN: curl offers http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256 / [blank] / UNDEF
* ALPN: server accepted http/1.1
* Server certificate:
*  subject: CN=search.brave.com
*  start date: Sep  1 00:00:00 2026 GMT
*  expire date: Mar 17 23:59:59 2027 GMT
*  subjectAltName: host "search.brave.com" matched cert's "search.brave.com"
*  issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M04
*  SSL certificate verify ok.
* using HTTP/1.x
> GET / HTTP/1.1
> Host: search.brave.com
> User-Agent: curl/8.7.1
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Content-Length: 809055
< Connection: keep-alive
< Date: Sun, 04 Oct 2026 05:48:59 GMT
< Onion-Location: https://search.brave4 ...

Here’s my curl output.

❯ curl -v --http1.1 https://search.brave.com
* Host search.brave.com:443 was resolved.
* IPv6: 2600:9000:201e:1400:5:a6ac:6100:93a1, 2600:9000:201e:4800:5:a6ac:6100:93a1, 2600:9000:201e:6c00:5:a6ac:6100:93a1, 2600:9000:201e:8000:5:a6ac:6100:93a1, 2600:9000:201e:a000:5:a6ac:6100:93a1, 2600:9000:201e:b000:5:a6ac:6100:93a1, 2600:9000:201e:bc00:5:a6ac:6100:93a1, 2600:9000:201e:cc00:5:a6ac:6100:93a1
* IPv4: 52.85.151.33, 52.85.151.45, 52.85.151.76, 52.85.151.19
*   Trying [2600:9000:201e:1400:5:a6ac:6100:93a1]:443...
* ALPN: curl offers http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* SSL Trust Anchors:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / RSASSA-PSS
* ALPN: server accepted http/1.1
* Server certificate:
*   subject: CN=search.brave.com
*   start date: Sep  1 00:00:00 2026 GMT
*   expire date: Mar 17 23:59:59 2027 GMT
*   issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M04
*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   subjectAltName: "search.brave.com" matches cert's "search.brave.com"
* OpenSSL verify result: 0
* SSL certificate verified via OpenSSL.
* Established connection to search.brave.com (2600:9000:201e:1400:5:a6ac:6100:93a1 port 443) from 2a11:6c7:2500:f500:3d7e:e632:9cdd:964f port 56624 
* using HTTP/1.x
> GET / HTTP/1.1
> Host: search.brave.com
> User-Agent: curl/8.22.0
> Accept: */*
> 
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 403 Forbidden
< Server: CloudFront
< Date: Mon, 05 Oct 2026 00:47:55 GMT
< Content-Type: text/html
< Content-Length: 919
< Connection: keep-alive
< X-Cache: Error from cloudfront
< Via: 1.1 5fa19949620deb5ea219d7070e76b034.cloudfront.net (CloudFront)
< X-Amz-Cf-Pop: SFO53-P12
< Alt-Svc: h3=":443"; ma=86400
< X-Amz-Cf-Id: Yh17vL651x96NDK8Vc7mu7BswJOYrqv0iwMscRoxTYtHdEV9pQry1g==
< 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: Yh17vL651x96NDK8Vc7mu7BswJOYrqv0iwMscRoxTYtHdEV9pQry1g==
</PRE>
<ADDRESS>
</ADDRESS>
* Connection #0 to host search.brave.com:443 left intact
</BODY></HTML>%

@quest

Please test: curl -4 -v --http1.1 https://search.brave.com

We are looking at layers between device and website.

Application
↓
TLS
↓
TCP
↓
IPv4 / IPv6
↓
VPN / tunnel
↓
local network
↓
ISP / transit
↓
CDN / CloudFront
↓
origin

origin is the backend resource that CloudFront retrieves the content from. It could be:

  • the website’s actual web server;
  • an application server;
  • an AWS service such as S3; ← (Brave uses S3)
  • or another backend/CDN endpoint.

In my example, IPv6 failed but I do not force that; in fact, I usuallly (but not always) set up for IPv4 only. Also, in some other connection attempts (re other site testing for other issues) - I have encountered failure at the TLS layer.

You seem to be encountering failure at the IPv6 layer.

cc: @Mattches … see following test result by @quest

Yeah my failure is definitely only IPv6 related, because I use a 6in4 tunnel. IPv4 works just fine.

Can you test again? It should be working now.

Hooray! I am seeing Brave Search again.

I’m looking forward to switching my default search settings back to Brave Search.

Did you only fix it for Hurricane Electric?

It would be awesome if you could also fix it for Route64!

I am still seeing failures. Their ASN is AS212895

Any update on fixing the Route64 ASN? AS212895