How to disable IPv4 on your website » History » Version 2
Nico Schottelius, 02/05/2019 03:35 PM
| 1 | 1 | Nico Schottelius | h1. How to disable IPv4 on your website |
|---|---|---|---|
| 2 | |||
| 3 | {{toc}} |
||
| 4 | |||
| 5 | h2. Status |
||
| 6 | |||
| 7 | This document is *IN PROGRESS*. |
||
| 8 | |||
| 9 | h2. Introduction |
||
| 10 | |||
| 11 | This article is for you, if you want to only allow IPv6 traffic to |
||
| 12 | your website or some parts of your website. This article is also for |
||
| 13 | you if you are running a website on an IPv6 only webserver / VM. |
||
| 14 | |||
| 15 | h2. IPv6 only webservers |
||
| 16 | |||
| 17 | If you are running an IPv6 only webserver, IPv4 clients cannot reach |
||
| 18 | you. They will be presented with an error message from the |
||
| 19 | browser. |
||
| 20 | |||
| 21 | This is clearly not an expected behaviour and your visitors will |
||
| 22 | likely be confused. |
||
| 23 | |||
| 24 | To solve this problem, you can add a DNS "A" entry for your website |
||
| 25 | pointing to 185.203.114.115. IPv4 only visitors will then be presented |
||
| 26 | with the content of https://no-ipv4-here.ungleich.ch/ that explains to |
||
| 27 | them that they need IPv6 to visit your website. |
||
| 28 | |||
| 29 | h3. Summary |
||
| 30 | |||
| 31 | If you want to help IPv4 visitors to visit IPv6 only websites, you can |
||
| 32 | add a DNS A entry pointing to 185.203.114.115. Below is the example |
||
| 33 | code for the BIND DNS server: |
||
| 34 | |||
| 35 | <pre> |
||
| 36 | ; The first one should already be present |
||
| 37 | example.com. IN AAAA your:ipv6:address:: |
||
| 38 | |||
| 39 | ; This one allows visitors to get a hint |
||
| 40 | example.com. IN A 185.203.114.115 |
||
| 41 | </pre> |
||
| 42 | |||
| 43 | 2 | Nico Schottelius | h2. Dual Stack Webserver: Disabling IPv4 traffic on (parts of) your website |
| 44 | 1 | Nico Schottelius | |
| 45 | If you are running a Dual Stack website (reachable by IPv6 and IPv4) |
||
| 46 | and you want to disable IPv4 traffic, you can redirect the user to |
||
| 47 | 2 | Nico Schottelius | http://no-ipv4-here.ungleich.ch?back_to=https://www.example.com/your-url |
| 48 | 1 | Nico Schottelius | |
| 49 | |||
| 50 | h3. Sample nginx configuration for disabling IPv4 traffic |
||
| 51 | |||
| 52 | Assuming that you want to disable |
||
| 53 | <pre> |
||
| 54 | geo $iptype { |
||
| 55 | 0.0.0.0/0 ipv4; |
||
| 56 | } |
||
| 57 | |||
| 58 | |||
| 59 | server { |
||
| 60 | ... |
||
| 61 | location ~* ^/ipv6/work/(login|logout|signup|jobs)/(.*)$ { |
||
| 62 | if ($iptype) { |
||
| 63 | return 302 https://no-ipv4-here.ungleich.ch/?back_to=$scheme://$host$uri; |
||
| 64 | } |
||
| 65 | proxy_pass https://www-server.ipv6.work/$1/$2; |
||
| 66 | } |
||
| 67 | ... |
||
| 68 | } |
||
| 69 | |||
| 70 | Checkout our |
||
| 71 | "blog entry":https://ungleich.ch/en-us/cms/blog/2019/01/27/how-to-distinguish-ipv6-and-ipv4-traffic-with-nginx/ |
||
| 72 | for more information about the nginx configuration. |