4 votes

Se connecter à une url de dépôt différente selon que l'on se trouve dans le réseau domestique ou non.

J'ai une copie de travail subversion sur mon ordinateur portable, et le dépôt correspondant sur mon NAS. Lorsque je ne suis pas chez moi, je mets à jour et commit par internet via une connexion cryptée à un nom de domaine qui se résout à mon IP externe. Lorsque je suis à la maison et connecté via mon réseau domestique, je voudrais mettre à jour et commit sur une connexion non cryptée vers mon IP interne (réseau domestique).

Je préférerais ne pas utiliser le cryptage ou mon adresse IP externe lorsque je suis à la maison, car les deux ralentissent la vitesse de connexion (10 MB/s sans cryptage et avec IP interne, 1 MB/s avec cryptage et IP interne, et 0,5 MB/s avec ou sans cryptage et avec IP externe).

Existe-t-il un moyen de faire en sorte que ma copie de travail renvoie à une URL différente selon que je suis ou non connecté à mon réseau domestique ? Ou existe-t-il un autre moyen de résoudre le problème de vitesse ?

1voto

Etienne Perot Points 272

Quelques options :

  • Si c'est par ssh ( svn+ssh://... ), vous pouvez alors modifier votre .ssh/config pour spécifier des alias pour les hôtes. Vous pourriez alors écrire un script qui édite ce fichier de configuration lors d'un changement de réseau afin que l'alias pointe vers le bon nom d'hôte.
  • Si ce n'est pas le cas (par http ou autre), vous pourriez faire tourner un serveur DNS local qui résout un nom de domaine spécial que vous pouvez composer avec l'adresse IP du nom de domaine correct en fonction du réseau sur lequel se trouve l'ordinateur.
  • (Exécutez un relais TCP sur votre ordinateur local sur un port quelconque, et faites-le pointer vers l'un ou l'autre des serveurs en fonction du réseau sur lequel vous vous trouvez. Par exemple, vous pourriez le faire pointer sur localhost:8080 et le faire suivre à myserver:80 sur le réseau 1, publicserver:80 sur le réseau 2. Vous pourriez alors avoir besoin d'effectuer un contrôle à partir de cette adresse ( svn checkout http://localhost:8080/... ).

Juste quelques idées au hasard, mais toutes semblent être des solutions de rechange. Il y a peut-être un moyen plus simple.

Ou bien vous pouvez passer à un système de contrôle de version distribué comme git, qui vous permettra de pousser vers la télécommande de votre choix ( git push -u someremote branchname donde someremote fait référence à l'un des serveurs).

1voto

cptScarlet Points 2414

J'ai résolu un problème similaire hier, de sorte que les dépôts git sur mon ordinateur portable peuvent être synchronisés avec une télécommande sur mon ordinateur de bureau, sans avoir à utiliser une télécommande différente selon que je suis sur le réseau local ou loin de chez moi.

J'ai couru dnsmasq sur mon bureau, avec cette configuration :

domain-needed
bogus-priv
no-poll
local=/localdomain/
addn-hosts=/etc/extra_hosts

/etc/extra_hosts contient une seule entrée avec l'IP de mon bureau sur le LAN et le nom de domaine qui se résout à mon IP externe, par ex.

192.168.0.72 jwakely.example.com

Ensuite, sur mon ordinateur portable, modifiez la configuration de NetworkManager pour ma connexion wifi LAN en "Adresses DHCP uniquement" et définissez 192.168.0.72 comme serveur DNS primaire, et mon routeur comme secondaire (pour faire cela sans l'interface graphique de NetworkManager, définissez simplement DNS1 et DNS2 et PEERDNS=no, ou mettez les serveurs de noms dans /etc/resolv.conf manuellement)

Il a fonctionné parfaitement une fois que je me suis souvenu d'autoriser les requêtes DNS (port 53) à travers le pare-feu de mon ordinateur.

Lorsque je suis sur le réseau local de ma maison, l'ordinateur portable utilise l'ordinateur de bureau pour les requêtes DNS, et obtient donc l'adresse IP interne pour l'ordinateur de bureau. jwakely.example.com et toutes les autres requêtes DNS sont redirigées vers le serveur DNS habituel de mon ordinateur de bureau (qui se trouve être mon routeur ADSL). dnsmasq Tous les autres hôtes du réseau local utilisent toujours le routeur pour le DNS, comme d'habitude. Si mon ordinateur portable est sur le réseau local mais que mon ordinateur de bureau ne fonctionne pas, l'ordinateur portable utilise son serveur DNS secondaire et ne peut pas obtenir l'adresse IP interne pour le routeur. jwakely.example.com mais ce n'est pas grave car la machine ne fonctionne pas de toute façon.

0voto

Lazy Badger Points 3648

J'espère que vous connaissez la méthode de Subversion. relocate commandement. Vous pouvez l'utiliser à la main. Si vous utilisez des noms d'hôtes pour l'accès interne et externe, qui ne sont résolus qu'à un seul endroit respectivement, l'erreur svn sur toute opération liée au répertoire rappelle de relocaliser

Une autre (mauvaise) idée est d'utiliser la connexion VPN dans les réseaux externes pour sécuriser les données. accès au serveur et à l'utilisation insécurité commune pour l'accès au dépôt - dans le réseau domestique, vous n'avez pas besoin d'un lien VPN. Les avantages de cette méthode sont les suivants : URL unique, sécurité à la demande, simplicité sans risque d'erreur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X