Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sysadmin:mirror_redirect_squid [2014/10/21 17:25] james [Regles de réécriture] typo regexp |
sysadmin:mirror_redirect_squid [2014/10/28 18:33] 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. 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 identiques pour ce qui nous intéresse. | + | 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 49: | Ligne 49: | ||
regex ^http://ftp\.[a-z][a-z].debian.org/debian/dists/.*/installer-.*/.*$ | regex ^http://ftp\.[a-z][a-z].debian.org/debian/dists/.*/installer-.*/.*$ | ||
# le reste est en local | # le reste est en local | ||
- | regex ^http://(ftp\.[a-z][a-z].debian.org/debian/((dists|pool)/.*(udeb|deb|bz2|Packages|Packages.gz|Release|Release.gpg)))$ http://debian-mirror.mondomaine.com/debian/\1 | + | regex ^http://ftp\.[a-z][a-z].debian.org/debian/((dists|pool)/.*(udeb|deb|bz2|Packages|Packages.gz|Release|Release.gpg))$ http://debian-mirror.mondomaine.com/debian/\1 |
</code>Si vous avez de l'espace disque et que vous avez un miroir complet (incluant les sources), il suffit de retirer les deux premières regexp qui empêchent la réécriture des adresses des paquets source : tout sera alors redirigé vers le miroir local. | </code>Si vous avez de l'espace disque et que vous avez un miroir complet (incluant les sources), il suffit de retirer les deux premières regexp qui empêchent la réécriture des adresses des paquets source : tout sera alors redirigé vers le miroir local. | ||
* Le meme principe peu bien sûr etre utilisé pour ldes dépots de securité, archive, backports, ... comme le montrent les exemples suivants : <code> | * Le meme principe peu bien sûr etre utilisé pour ldes dépots de securité, archive, backports, ... comme le montrent les exemples suivants : <code> | ||
Ligne 58: | Ligne 58: | ||
# 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/.*))$ | ||
- | regex ^http://(www.backports.org/debian/((dists|pool)/.*(deb|bz2|Contents-.*gz|Packages|Packages.gz|Release|Release.gpg)))$ http://debian-mirror.mondomaine.com/debian-backports/\1 | + | regex ^http://www.backports.org/debian/((dists|pool)/.*(deb|bz2|Contents-.*gz|Packages|Packages.gz|Release|Release.gpg))$ http://debian-mirror.mondomaine.com/debian-backports/\1 |
</code> | </code> | ||
* Le même principe fonctionnerait bien sûr sur un dépot ubuntu en adaptant les URLs, cependant je n'utilise pas un dépot ubuntu complet (moins de postes, et donc moins de besoinse en terme d'installations/MAJs, ...) mais un dépot "partiel" utilisant apt-cacher , voici les lignes utilisées pour rediriger toute demande vers l'apt-cacher local (dont l'IP doit bien sur aussi être exclue des ACL de réécriture) pour les principaux dépots utilisés :<code> | * Le même principe fonctionnerait bien sûr sur un dépot ubuntu en adaptant les URLs, cependant je n'utilise pas un dépot ubuntu complet (moins de postes, et donc moins de besoinse en terme d'installations/MAJs, ...) mais un dépot "partiel" utilisant apt-cacher , voici les lignes utilisées pour rediriger toute demande vers l'apt-cacher local (dont l'IP doit bien sur aussi être exclue des ACL de réécriture) pour les principaux dépots utilisés :<code> | ||
Ligne 75: | Ligne 75: | ||
</code> | </code> | ||
+ | <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 : | ||
+ | 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 ===== | ===== 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> | Pour prendre en compte ces modifications il faut bien sur faire recharger a squid sa configuration :<code>/etc/init.d/squid3 reload</code> | ||
Ligne 83: | Ligne 94: | ||
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 | ||
+ | 2a01:e32:833f:e2a:4::/112 | ||
+ | </code> |