Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:mirror_redirect_squid [2012/10/05 17:10]
james ajout tags
sysadmin:mirror_redirect_squid [2014/10/28 18:33] (Version actuelle)
james ajout IPv6
Ligne 1: Ligne 1:
-{{tag>​squid proxy jesred URL réécriture miroir debian}}+{{tag>​squid ​squid3 ​proxy jesred URL réécriture miroir debian ​ubuntu apt-cacher apt-cacher-ng bande-passante}}
 ====== Redirection transparente vers les miroirs locaux ====== ====== Redirection transparente vers les miroirs locaux ======
  
 Dans un article précédent nous avons vu comment [[sysadmin:​debian_mirror|créer un miroir debian local]]. Dans un article précédent nous avons vu comment [[sysadmin:​debian_mirror|créer un miroir debian local]].
  
-Nous allons maintenant aller plus loin et effectuer une redirection transparente vers ce miroir.+Nous allons maintenant aller plus loin et effectuer une redirection transparente vers ce miroir. Note que dans la suite de cet article quand on utilisera le terme "​miroir"​ il pourra s'agir soit d'un miroir "​complet"​ soit bien d'un miroir partiel (apt-cacher-ng,​ apt-cacher...),​ les deux étant fonctionnellement (presque : voir note plus bas :p ) identiques pour ce qui nous intéresse.
  
 L'​avantage est donc de n'​avoir aucun travail à effectuer sur les postes : ils utilisent toujours les dépots classiques, comme par exemple "​ftp.fr.debian.org"​ mais sont redirigés silencieusement vers le dépôt local, d'où des gains énormes en  bande passante et en simplicité. L'​avantage est donc de n'​avoir aucun travail à effectuer sur les postes : ils utilisent toujours les dépots classiques, comme par exemple "​ftp.fr.debian.org"​ mais sont redirigés silencieusement vers le dépôt local, d'où des gains énormes en  bande passante et en simplicité.
Ligne 14: Ligne 14:
  
 Nous allons nous baser sur : Nous allons nous baser sur :
-  * un proxy web (squid) configuré en mode transparent (peut etre un jour un article la dessus) +  * un proxy web ([[http://​www.squid-cache.org/​|squid]]) configuré en mode transparent (peut etre un jour un article la dessus) 
-  * une réécriture d'URL au sein de ce proxy +  * une réécriture d'URL au sein de ce proxy via jesred 
-  * tout ce petit monde sera installé comme à l'​accoutumée sur une Debian Stable (lenny a l'​heure actuelle)+  * tout ce petit monde sera installé comme à l'​accoutumée sur une Debian Stable (<del>lenny a l'​heure actuelle</​del>​wheezy pour la mise a jour de cet article)
  
 ===== Installation ===== ===== Installation =====
-Cette etape est simple : il suffit d'​installer //jesred// , le module qui nous servira a réécrire les URL au niveau du proxy squid.+Cette etape est simple : il suffit d'​installer //​[[http://​www.linofee.org/​~jel/​webtools/jesred/|jesred]]// , le module qui nous servira a réécrire les URL au niveau du proxy squid.
 <​code>​apt-get install jesred</​code>​ <​code>​apt-get install jesred</​code>​
  
Ligne 26: Ligne 26:
 ==== configuration de squid ==== ==== configuration de squid ====
 Pour activer la réécriture d'URL il faut ajouter des directives dans le fichier de conf de squid ( /​etc/​squid/​squid.conf) :<​code>​ Pour activer la réécriture d'URL il faut ajouter des directives dans le fichier de conf de squid ( /​etc/​squid/​squid.conf) :<​code>​
-cat << EOF >> /etc/squid/squid.conf+cat << EOF >> /etc/squid3/squid.conf
 # redirection transparente pour apt-cacher debian et ubuntu # redirection transparente pour apt-cacher debian et ubuntu
 redirect_program /​usr/​lib/​squid/​jesred redirect_program /​usr/​lib/​squid/​jesred
Ligne 33: Ligne 33:
  
 ==== configuration de jesred ==== ==== configuration de jesred ====
- * On active les logs de reecriture d'URL pour débugguer plus facilement :<​code>​sed -i -e "s,# rewrite_log =,​rewrite_log =," /​etc/​jesred.conf</​code>​ + 
- * On ajoute son sous réseau IP dans les ACL de réécriture (adapter a votre réseau) : <​code>​echo "​192.168.0.0/​24"​ >> /​etc/​jesred.acl</​code>​+  * On active les logs de reecriture d'URL pour débugguer plus facilement :<​code>​ 
 +sed -i -e "s,# rewrite_log =,​rewrite_log =," /​etc/​jesred.conf</​code>​ 
 +  * Si vous êtes sous debian wheezy avec squid3 au lieu de squid, adapter les chemins de log :<​code>​ 
 +sed -i -e "​s,/​var/​log/​squid/,/​var/​log/​squid3/,"​ /​etc/​jesred.conf</​code>​ 
 +  ​* On ajoute son sous réseau IP dans les ACL de réécriture (adapter a votre réseau ​: format X.Y.Z.T/​masque classique) : <​code>​echo "​192.168.0.0/​24"​ >> /​etc/​jesred.acl</​code>​
 <​note>​il est possible d'​exclure des machines/​subnets en utilisant la syntaxe !192.168.0.42/​32 par exemple</​note>​ <​note>​il est possible d'​exclure des machines/​subnets en utilisant la syntaxe !192.168.0.42/​32 par exemple</​note>​
 <​note>​C'​est par exemple une très bonne idée d'​exclure le serveur hébergeant le miroir local pour qu'il puisse se mettre à jour sur le dépot externe</​note>​ <​note>​C'​est par exemple une très bonne idée d'​exclure le serveur hébergeant le miroir local pour qu'il puisse se mettre à jour sur le dépot externe</​note>​
Ligne 51: Ligne 55:
 regex ^http://​security.debian.org/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$ regex ^http://​security.debian.org/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$
 # mais le reste si # mais le reste si
-regex ^http://​security.debian.org/​((dists|pool)/​.*(deb|bz2|gz|Packages|Packages.gz|Release|Release.gpg|))$ http://​debian-mirror.mondomaine.com/​debian-security/​\1+regex ^http://(security.debian.org/​((dists|pool)/​.*(deb|bz2|gz|Packages|Packages.gz|Release|Release.gpg|)))$ http://​debian-mirror.mondomaine.com/​debian-security/​\1
 # idem pour les backports # idem pour les backports
 regex ^http://​www.backports.org/​debian/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$ regex ^http://​www.backports.org/​debian/​(dists|pool)/​.*/​source/​(Release|Sources|Sources\.(bz2|gz|diff/​.*))$
Ligne 71: Ligne 75:
 </​code>​ </​code>​
  
-==== Vérification du fonctionnement ==== +<​note>​L'​utilisateur averti aura remarqué une légère différence de conmportement entre l'​utilisation d'un miroir local complet ou d'un apt-cacher-ng par exemple : 
-Pour prendre en compte ces modifications il faut bien sur faire recharger a squid sa configuration :<​code>/​etc/​init.d/​squid reload</​code>​+notre miroir debian est composé de :  
 +  * <​nowiki>​http://​debian-mirror.mondomaine.com/​debian/</​nowiki>​ pour la copie du miroir classique 
 +  * <​nowiki>​http://​debian-mirror.mondomaine.com/​debian-backports/</​nowiki>​ pour la copie du miroir de backports 
 +  * <​nowiki>​http://​debian-mirror.mondomaine.com/​debian-security/</​nowiki>​ pour la copie du miroir debian-security 
 +  * ... 
 +en conséquence en ce qui concerne la redirection pour un fichier disons <​nowiki>​http://​ftp.fr.debian.org/​debian/​dists/​wheezy/​Release</​nowiki>​ il faut que la redirection s'​effectue sur : 
 +  * dans le cas d'un miroir local : <​nowiki>​http://​debian-mirror.mondomaine.com/</​nowiki>​**debian**<​nowiki>/​dists/​wheezy/​Release</​nowiki>​ 
 +  * dans le cas d'un apt-cacher-ng : <​nowiki>​http://​debian-mirror.mondomaine.com:​3142/</​nowiki>​**<​nowiki>​ftp.fr.debian.org/​debian</​nowiki>​**/​dists/​wheezy/​Release 
 +d'ou les différences de parenthésage dans les règles pour faire le match sur l'url complete/​partielle et le port : les miroirs partiels ont besoin d'une url complète 
 +</​note>​ 
 +===== Vérification du fonctionnement ​===== 
 +Pour prendre en compte ces modifications il faut bien sur faire recharger a squid sa configuration :<​code>/​etc/​init.d/​squid3 ​reload</​code>​
  
-Le bon fonctionnement peut etre vérifié en regardant dans le fichier de log /var/log/squid/​jesred-rewrite.log lorsque vous tentez d'​installer un paquet, comme par exemple :+Le bon fonctionnement peut etre vérifié en regardant dans le fichier de log /var/log/squid3/​jesred-rewrite.log lorsque vous tentez d'​installer un paquet, comme par exemple :
 <​code>​ <​code>​
 1282816088.239 192.168.0.65/​- http://​ftp.fr.debian.org/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb http://​debian-mirror.mondomaine.com/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb 9 1282816088.239 192.168.0.65/​- http://​ftp.fr.debian.org/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb http://​debian-mirror.mondomaine.com/​debian/​pool/​main/​j/​jesred/​jesred_1.2pl1-16_amd64.deb 9
 1282816088.254 192.168.0.65/​- http://​security.debian.org/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb http://​debian-mirror.mondomaine.com/​debian-security/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb 11</​code>​ 1282816088.254 192.168.0.65/​- http://​security.debian.org/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb http://​debian-mirror.mondomaine.com/​debian-security/​pool/​updates/​main/​s/​squid/​squid-common_2.7.STABLE3-4.1lenny1_all.deb 11</​code>​
  
 +===== Aller un peu plus loin : IPv6 =====
 +{{tag>​squid squid3 proxy jesred URL réécriture miroir debian ubuntu apt-cacher apt-cacher-ng bande-passante ipv6}}
 +En installant la version "​1.2pl1-19"​ de jesred disponible sur la debian testing/​unstable à l'​heure ou j'​écris ces lignes : https://​packages.debian.org/​search?​keywords=jesred il est maintenant possible de réécrire les URLs pour des clients utilisant de l'IPv6 (pas en proxy transparent cependant ;-) ) : voici à quoi ressemble un fichier /​etc/​jesred.acl comportant des IPv4 et des IPv6 : <​code>​
 +192.168.0.0/​24
 +192.168.1.0/​24
 +192.168.2.0/​24
  
- +# merci le backport de la version wheezy 1.2pl1-19 pour le support d'ipv6 =) 
- +2a01:​e32:​833f:​e2a:​2::/​112 
- +2a01:​e32:​833f:​e2a:​3::/​112 
-FIXME continuer ;-)+2a01:​e32:​833f:​e2a:​4::/​112 
 +</​code>​
sysadmin/mirror_redirect_squid.1349449826.txt.gz · Dernière modification: 2012/10/05 17:10 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0