Bonjour,
Petite question aux experts Tomcat, je cherche simplement à faire écouter un Tomcat 7 pour son connecteur HTTP en ipv4 et en ipv6.
J'ai tenté plein de façon différentes en forçant les variables : -Djava.net.preferIPv6Stack=true -Djava.net.preferIPv6Addresses=true
- mettre un address=[::] - faire deux connecteur un en v4 only et l'autre en v6 only
Bref à chaque fois j'ai que le v4 qui s'active tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Du coup j'en arrive à me poser la question de savoir si ipv6 a bien été compilé dans les dernières versions de Tomcat 7 (7.0.35) proposées par Apache. Mais impossible de trouver les options de compilations qui ont été utilisées.
Si quelqu'un saurait m'aider à avancer, merci par avance.
Bonjour,
A priori ton Tomcat n'est pas en frontend, si ? Parce que tu peux contourner le problème assez facilement (moyennant peut être des pertes de performance): * le garder en v4 si le réseau le permet (sans vouloir troller le principal ce n'est pas de migrer son infra en IPv6 mais les front) * faire tourner un nginx ou autre, ou même socat en local * monter un tunnel v4 over v6 vers tes front * du bump-in-the-stack sur ton serveur (voir IPv6 Care) * du NAT64 * ...
Pour le Tomcat en IPv6 je ne sais pas, il faudrait aller jeter un coup d'oeil au code...
Cordialement Emmanuel Thierry
Le 23 janv. 2013 à 17:42, Wallace a écrit :
Bonjour,
Petite question aux experts Tomcat, je cherche simplement à faire écouter un Tomcat 7 pour son connecteur HTTP en ipv4 et en ipv6.
J'ai tenté plein de façon différentes en forçant les variables : -Djava.net.preferIPv6Stack=true -Djava.net.preferIPv6Addresses=true
- mettre un address=[::]
- faire deux connecteur un en v4 only et l'autre en v6 only
Bref à chaque fois j'ai que le v4 qui s'active tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Du coup j'en arrive à me poser la question de savoir si ipv6 a bien été compilé dans les dernières versions de Tomcat 7 (7.0.35) proposées par Apache. Mais impossible de trouver les options de compilations qui ont été utilisées.
Si quelqu'un saurait m'aider à avancer, merci par avance.
Liste de diffusion du FRsAG http://www.frsag.org/
Le 23/01/2013 18:04, Emmanuel Thierry a écrit :
Bonjour,
A priori ton Tomcat n'est pas en frontend, si ? Parce que tu peux contourner le problème assez facilement (moyennant peut être des pertes de performance):
- le garder en v4 si le réseau le permet (sans vouloir troller le principal ce n'est pas de migrer son infra en IPv6 mais les front)
- faire tourner un nginx ou autre, ou même socat en local
- monter un tunnel v4 over v6 vers tes front
- du bump-in-the-stack sur ton serveur (voir IPv6 Care)
- du NAT64
- ...
Je vais préciser le contexte, chez nous les machines sont en ipv6 par défaut et ipv4 si un service front est présent ou si pas de firewall / reverse en amont. Chaque machine a son fqdn qui résoud en A et en AAAA. Là un applicatif client php/nginx (tiens on y revient :D) fait appel à des web services Tomcat (Solr et autres persos). Les différents modules dont Tomcat sont appelés par requêtes dns (oui on préfère cela que mettre des ips dans le code) qui pointent sur les fqdn des machines. Du coup la résolution se fait prioritairement en ipv6.
L'idée c'est aussi à court terme d'enlever l'ipv4 du serveur car elle ne sert à rien. Chaque serveur ipv6 only chez nous est branché sur un DNS64 et a une route vers le NAT64 pour joindre le monde v4 pour les mises à jour ou autre requêtes sortantes.
J'ai testé d'enlever l'ipv4 pour voir si Tomcat démarre en v6 mais là non plus pas de succès.
J'ai pensé à mettre un socat mais je trouve pas cela super propre et puis quand je vois (ML, forum) ceux qui se battent pour enlever l'ipv6 de Tomcat alors que je souhaite l'inverse ... doit bien y avoir une solution propre.
Pour le Tomcat en IPv6 je ne sais pas, il faudrait aller jeter un coup d'oeil au code...
On Wed, Jan 23, 2013, at 18:04, Emmanuel Thierry wrote:
A priori ton Tomcat n'est pas en frontend, si ? Parce que tu peux contourner le problème assez facilement (moyennant peut être des pertes de performance):
- le garder en v4 si le réseau le permet (sans vouloir troller le
principal ce n'est pas de migrer son infra en IPv6 mais les front)
STOP ! L'idee avec IPv6 est de finir dans un environnement 100% IPv6, 0% autre protocole (IPv4 compris). Le fait d'avoir que les services externes exposes en v6, c'etait suppose etre juste un hack transitoire, quick-and-dirty. De nos jours (2013), il faut egalement penser au back-end. Si c'est pour avoir des choses a moitie faites, autant laisser tomber directement, avec le classique " tout le monde a une connectivite v4, mais pas tout le monde en a une en v6".
Pour revenir au sujet, la question etait "comment faire marcher tomcat over IPv6", pas si c'est necessaire ou pas. De mon cote, FC17, openjdk-1.7.0-icedtea, tomcat 7.0.35 "apache default build", ca marche sur v6 sans toucher la conf. Au pif, tu as bien les deux addresses (127.0.0.1 et ::1) declares comme "localhost" dans /etc/hosts . Ok, ca n'a pas beaucoup de sens, mais il y a/avait d'autres applis qui posait problemes comme ca.
Le 24 janv. 2013 à 12:09, Radu-Adrian Feurdean a écrit :
On Wed, Jan 23, 2013, at 18:04, Emmanuel Thierry wrote:
A priori ton Tomcat n'est pas en frontend, si ? Parce que tu peux contourner le problème assez facilement (moyennant peut être des pertes de performance):
- le garder en v4 si le réseau le permet (sans vouloir troller le
principal ce n'est pas de migrer son infra en IPv6 mais les front)
STOP ! L'idee avec IPv6 est de finir dans un environnement 100% IPv6, 0% autre protocole (IPv4 compris). Le fait d'avoir que les services externes exposes en v6, c'etait suppose etre juste un hack transitoire, quick-and-dirty. De nos jours (2013), il faut egalement penser au back-end. Si c'est pour avoir des choses a moitie faites, autant laisser tomber directement, avec le classique " tout le monde a une connectivite v4, mais pas tout le monde en a une en v6".
Quand tu as encore des services qui ne tournent qu'en IPv4 et que tu n'as pas le choix, tu es obligé de hacker pour passer tes services en v6. C'est dommage mais c'est comme ça. De la même manière que tu es obligé de hacker quand ton hébergeur te ne propose que du v4 et donc de tirer un tunnel pour aller chopper ta connectivité IPv6. Il se trouve que là Tomcat existe en v6 natif, tant mieux ce sera possible de le faire proprement.
Cordialement Emmanuel Thierry
Le 24/01/2013 12:09, Radu-Adrian Feurdean a écrit :
On Wed, Jan 23, 2013, at 18:04, Emmanuel Thierry wrote:
A priori ton Tomcat n'est pas en frontend, si ? Parce que tu peux contourner le problème assez facilement (moyennant peut être des pertes de performance):
- le garder en v4 si le réseau le permet (sans vouloir troller le
principal ce n'est pas de migrer son infra en IPv6 mais les front)
STOP ! L'idee avec IPv6 est de finir dans un environnement 100% IPv6, 0% autre protocole (IPv4 compris). Le fait d'avoir que les services externes exposes en v6, c'etait suppose etre juste un hack transitoire, quick-and-dirty. De nos jours (2013), il faut egalement penser au back-end. Si c'est pour avoir des choses a moitie faites, autant laisser tomber directement, avec le classique " tout le monde a une connectivite v4, mais pas tout le monde en a une en v6".
De notre côté on est déjà à l'étape ipv6 en remplacement du rfc1918. Donc lan v6 only et du v4 uniquement sur les front, on est donc potentiellement déjà prêt à désactiver le v4 mais bon c'est pas demain. Je suis encore choqué de voir que peu de monde s'inquiète du passage ipv6 qui maintenant est encore plus d'actualité avec l'arrivée du NAT pour les FAI, si l'ipv6 n'arrive pas en complément du nat ça va être un beau bordel.
Y a aussi de l'évangélisation à faire côté client, si ils comprennent qu'on fait les sauvegardes et la supervision système en v6 only (plus supervision des services v4) quand je leur annonce que leur site migré chez nous est à présent compatible ipv6, des DT et webmasters me disent "oui et ça change quoi?" J'essaye d'expliquer qu'ils sont prêt pour l'évolution du réseau, je rappel qu'il n'y a plus d'adresse ip disponible (en mode journalistique à sensation) et j'annonce que c'est une migration technique en moins à faire pour eux. Bref ce n'est pas compris à sa juste valeur.
Pour revenir au sujet, la question etait "comment faire marcher tomcat over IPv6", pas si c'est necessaire ou pas. De mon cote, FC17, openjdk-1.7.0-icedtea, tomcat 7.0.35 "apache default build", ca marche sur v6 sans toucher la conf. Au pif, tu as bien les deux addresses (127.0.0.1 et ::1) declares comme "localhost" dans /etc/hosts . Ok, ca n'a pas beaucoup de sens, mais il y a/avait d'autres applis qui posait problemes comme ca.
Pour le fichier hosts je suis sur ce modèle, à tester peut être que passer les déclarations sur la ligne ::1 devrait aider. Cela voudrait dire que Tomcat privilégie la détection et non la configuration pour déterminer son inet à utiliser.
127.0.0.1 servername.domain.net servername localhost localhost.localdomain ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
2013/1/23 Wallace wallace@morkitu.org
- mettre un address=[::]
- faire deux connecteur un en v4 only et l'autre en v6 only
Bref à chaque fois j'ai que le v4 qui s'active tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
Du coup j'en arrive à me poser la question de savoir si ipv6 a bien été compilé dans les dernières versions de Tomcat 7 (7.0.35) proposées par Apache. Mais impossible de trouver les options de compilations qui ont été utilisées.
Si quelqu'un saurait m'aider à avancer, merci par avance.
la version 7.0.27 fonctionne bien avec IPv6 chez nous, nous utilisons Oracle JDK1.6 sur Debian Squeeze avec tomcat7.
Nous n'avons ajouté aucune configuration pour la notion IPv6. Je vais d'ailleurs mettre de côté des infos au besoin.
Le 23/01/2013 19:07, Francois BAYART a écrit :
la version 7.0.27 fonctionne bien avec IPv6 chez nous, nous utilisons Oracle JDK1.6 sur Debian Squeeze avec tomcat7.
Nous n'avons ajouté aucune configuration pour la notion IPv6. Je vais d'ailleurs mettre de côté des infos au besoin.
Debian aussi en stable à jour,
JDK 1.7 d'Oracle java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
Tomcat Apache 7.0.35
Au niveau de la conf à part ajouter la déclaration de context de Solr et des autres webapps dans le localhost, on a rien changé.
Au niveau du connecteur http on avait cela par défaut qui montait en v4 only
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
On a essayé un autre protocol http capable de gérer v4 et v6 sans déclarer deux protocoles mais sans succès.
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
En option on a : CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 \ -Djava.net.preferIPv6Stack=true \ -Djava.net.preferIPv6Addresses=true \ -server -Xms512m -Xmx512m \ -Dsolr.home=/usr/local/solr"
Rien de particulier pourtant pour cette installation, je comprends pas.
Merci
A présent j'ai un autre comportement étrange. J'ai installé deux nouvelles machines pour un client qui sont identique à la première et qui servent à faire tourner un applicatif java (propriétaire) sans tomcat. Les serveurs sont strictement identiques (déploiement automatique), seul les hostname, ip changent.
Java est exactement la même version sur chaque serveur java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
L'applicatif est synchronisé par rsync donc en tout logique identique lui aussi.
Lorsque je démarre l'application sur les deux nouvelles machines, l'une écoute en tcp6 :::8080 comme sur la première l'autre en tcp 0.0.0.0:8080 alors que l'ipv6 est bien activé et fonctionnel puisque la supervision système, l'administration et la sauvegarde passe uniquement en v6.
C'est vraiment bizarre comme comportement, vous avez déjà rencontré cela?
Bonsoir j'utilise un serveur Asterisk 1.8 avec un SVI et un T2 ( 30 lignes ) - j'aimerai ajouter la fonction Text to Speech - j'ai vu qu'il y a plusieurs solutions sous linux mbrola, espeak, festival etc.. mais je trouve que la compréhension des messages lus est médiocre en Français. j'ai essayé "googletts" donc le résultat est remarquable en Français, avec un simple script perl. Par contre mon Serveur dépend de ma connexion internet et de la disponibilité de Google.... Ce que je n'aime pas trop... je ne sais pas non plus, comment Google va ce comporter si je lui demande des centaines de conversions . Est ce que quelqu'un a une solution de TTS qui fonctionne bien ? c'est à dire que l'on comprend bien ce que lit le serveur ? Merci Hugues.