La Chine a sa propre conception d'Internet et il est très difficile pour une entreprise internationale ou un expat de se satisfaire de la connexion internet par défaut offerte sur place.
En effet, Google, Facebook, WhatsApp, Snapchat, Instagram et bien d'autres services sont inaccessibles ce qui rend la communication avec la famille à l'étranger compliqué, tout comme l'accès aux documents partagé par d'autres entreprises via Google drive par exemple.
Pour bloquer cela, la Chine a mis en place divers moyens : blocage IP, filtrage URL, redirection DNS...
Pour surmonter cela, les expatriés vont ainsi naturellement vite se tourner vers un fournisseur VPN tel qu'Astril ou ExpressVPN. Ces services permettent souvent de contourner la censure, mais ne sont pas infaillibles, la Chine ayant trouvé des moyens de bloquer ou ralentir ces VPN quand bon leur semble.
Pour le cas d'une entreprise, des compagnies offrent des solutions permettant d'établir un VPN entre votre site en Chine et un point de sortie à Hong-Kong sans que ce VPN soit bloqué. Généralement ces compagnies ont mis en place une ligne dédiée dont ils vous font ensuite profiter.
On pourrait penser qu'ensuite il suffirait d'utiliser cette ligne pour tout votre trafic internet, mais faire cela vous empêcherait d'accéder à l'internet "Chinois", ce qui sera défavorable à vos collaborateurs locaux et ralentirait considérablement votre trafic.
En effet, si vous veniez à utiliser un serveur DNS comme celui de Google via votre ligne internationale, vos utilisateurs locaux ne pourrait plus accéder à la version chinoise de nombreux sites internet. Le serveur DNS renverrait des IP correspondants aux versions internationales des sites web.
Optimiser le trafic internet d'une société en Chine
Ainsi si vous avez une société en Chine, un moyen d'optimiser votre trafic est de trouver une compagnie qui va vous vendre une ligne vous offrant une sortie à l'internationale et de souscrire à un abonnement à un FAI chinois.
En amont de ces deux lignes, il faudra que vous installiez votre propre routeur ou pare-feu.
Configurer votre routeur pour rediriger l'ensemble des blocs IP chinois à travers votre FAI chinois.
Vous pouvez obtenir cette liste sur le dépôt GitHub suivant : https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt
Ensuite, il sera question d'optimiser votre serveur DNS d'entreprise. Pour cela vous avez la possibilité de mettre en place un serveur DNS nommé dnsmasq et d'utiliser le dépôt suivant pour l'alimenter : https://github.com/felixonmars/dnsmasq-china-list
Ce dépôt liste les domaines chinois et fait en sorte qu'ils soient résolu avec un serveur DNS chinois 114.114.114.114, propriété de Cogent, FAI Chinois.
Ainsi lorsque votre PC tentera d'accéder à Taobao.com, il contactera votre serveur dnsmasq pour obtenir l'IP de Taobao.com, qui lui-même contactera le serveur DNS 114.114.114.114. Et cela à travers votre FAI Chinois grâce à l'optimisation réseau évoqué précédemment. En fin de compte cela permet à votre ordinateur d'obtenir la bonne IP pour accéder à la version chinoise de Taobao et non à la version monde.
Maintenant si votre PC essaie d'accéder à Google.com et bien votre serveur dnsmasq contactera le serveur DNS configuré par défaut sur votre serveur dnsmasq, par exemple 8.8.8.8 (propriété de Google), et cette fois-ci vous obtiendrez la bonne IP de Google.com et non une IP empoisonné ce qui vous aurez empêché d'accéder au site.
Installation de la solution
Vous pouvez installer la solution présente sur ce dépôt https://github.com/felixonmars/dnsmasq-china-list en quelques étapes simples.
Sous Debian/Ubuntu:
- Installez dnsmasq:
sudo apt install dnsmasq
- Téléchargez le script suivant :
wget https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/install.sh
- Rendez le code exécutable :
chmod +x install.sh
- Exécutez le script :
sudo ./install.sh
Et voilà, vous devriez désormais être prêt à utiliser ce serveur DNS. Ce script devra être exécuté régulièrement afin de télécharger les mises à jour en provenance de GitHub. Je ne recommande pas forcément d’exécuter le script sans surveillance, car celui-ci ne semble pas disposer de mécanisme empêchant son exécution si jamais le dépôt distant n’existait plus.