# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Apache CloudStack Administration RTD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-06-30 12:52+0200\n"
"PO-Revision-Date: 2016-10-09 11:59+0200\n"
"Language-Team: French (http://www.transifex.com/ke4qqq/apache-cloudstack-"
"administration-rtd/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Last-Translator: \n"
"X-Generator: Poedit 1.8.9\n"

# 453abc0964244620ab303e8bbdd16340
#: ../../troubleshooting.rst:18
msgid "TroubleShooting"
msgstr "Dépannage"

# b90eea0457d64f3cb90be7deabcaa0c3
#: ../../troubleshooting.rst:21
msgid "Working with Server Logs"
msgstr "Travailler avec les logs du serveur"

# 9d89b655688d4af2bfc8302c8a0c9134
#: ../../troubleshooting.rst:23
msgid ""
"The CloudStack Management Server logs all web site, middle tier, and "
"database activities for diagnostics purposes in `/var/log/cloudstack/"
"management/`. The CloudStack logs a variety of error messages. We recommend "
"this command to find the problematic output in the Management Server log:."
msgstr ""
"Le serveur de gestion de CloudStack consigne toutes les activités du site "
"web, du middle tier, et de la base de données à des fins de diagnostique "
"dans `/var/log/cloudstack/management/`. CloudStack enregistre une variété "
"de messages d'erreurs. Nous recommandons cette commande pour trouver la "
"sortie problématique parmi les enregistrements du serveur de gestion :"

# 3fc8e92bb3a741c3bd3a67d67cf0e9a3
#: ../../troubleshooting.rst:30
msgid ""
"When copying and pasting a command, be sure the command has pasted as a "
"single line before executing. Some document viewers may introduce unwanted "
"line breaks in copied text."
msgstr ""
"Lors du copier/coller d'une commande, soyez certain que la commande est "
"collée sur une seule ligne avant de l'exécuter. Certains lecteur de "
"document peuvent introduire un saut de ligne indésirable dans le texte "
"copié."

# 845cfc971cf84bbca9edce162a942ad2
#: ../../troubleshooting.rst:38
msgid ""
"The CloudStack processes requests with a Job ID. If you find an error in "
"the logs and you are interested in debugging the issue you can grep for "
"this job ID in the management server log. For example, suppose that you "
"find the following ERROR message:"
msgstr ""
"CloudStack traite les requêtes avec un identifiant de travail. Si vous "
"trouver une error dans les logs et que vous êtes intéressés dans le "
"dépannage de ce problème, vous pouvez faire un grep pour cet ID de travail "
"dans les logs du serveur de gestion. Par example, en supposant que vous "
"trouviez le message ERROR suivant :"

# f7529d9ff27a4e27bdad7d8a6435087a
#: ../../troubleshooting.rst:47
msgid ""
"Note that the job ID is 1076. You can track back the events relating to job "
"1076 with the following grep:"
msgstr ""
"Noter que l'identifiant du travail est 1076. Vous pouvez tracer les "
"évènements en relation avec le travail 1076 avec le grep suivant :"

# 4da5450950cc43b79b6d4391e28f4f41
#: ../../troubleshooting.rst:54
msgid ""
"The CloudStack Agent Server logs its activities in `/var/log/cloudstack/"
"agent/`."
msgstr ""
"L'agent CloudStack enregistre ses activités dans `/var/log/cloudstack/agent/"
"`."

# ba4670a0c5444406a2eb230cb99333d5
#: ../../troubleshooting.rst:58
msgid "Data Loss on Exported Primary Storage"
msgstr "Données perdues sur un stockage primaire exporté."

# b0ef204b69a54f32bd49070c4b9b6a91
# 96d811275eea4240af38ec923db3c739
# 03085fe48e6f4b379bcb1b827fff32d4
# 83a83346af6342ae960e60c796e896d3
# dc69c8f4922e4f69a378d3a16a609df7
# 3970143e5afb4c03a4b3aed0f9e50fc7
#: ../../troubleshooting.rst:61 ../../troubleshooting.rst:99
#: ../../troubleshooting.rst:140 ../../troubleshooting.rst:162
#: ../../troubleshooting.rst:185 ../../troubleshooting.rst:219
msgid "Symptom"
msgstr "Symptôme"

# a5727b8982354aaeb9aaa3eaccf41ef9
#: ../../troubleshooting.rst:63
msgid ""
"Loss of existing data on primary storage which has been exposed as a Linux "
"NFS server export on an iSCSI volume."
msgstr ""
"La perte de données existante sur le stockage primaire qui a été exposé "
"comme un export de serveur Linux NFS sur un volume ISCSI."

# 77646ea81e804cb9ada6c17c6289cbbe
# e5b68ba31d5948388069cf4e01357332
# 48d47c0902414b5194a1d38398971eb6
# 8c13e9a8446c49ef90ae29a314ee0d33
# 8a80e812487d4bf6b38f6cdc6feddae0
# 350e1aaa22b5432f8065bdf94cc27e02
#: ../../troubleshooting.rst:68 ../../troubleshooting.rst:106
#: ../../troubleshooting.rst:146 ../../troubleshooting.rst:168
#: ../../troubleshooting.rst:197 ../../troubleshooting.rst:226
msgid "Cause"
msgstr "Cause"

# 8ca868ba6d9349e6b0d83564a152f19e
#: ../../troubleshooting.rst:70
msgid ""
"It is possible that a client from outside the intended pool has mounted the "
"storage. When this occurs, the LVM is wiped and all data in the volume is "
"lost"
msgstr ""
"Il est possible qu'un client depuis l'extérieur du pool attendu ait monté "
"le stockage. Lorsque cela arrive, le LVM est corrompu et toutes les données "
"du volume sont perdus."

# 4934510ae4ce4c79a0ed5d6ee26fea0a
# df9bd94f2f95481f93b741b643baedfb
# 5d33b8b45f404f25abcb9d3fbfeafb70
# 044a6cc8e613432ab218a02d3bbde2a1
# 4445e221c952428fb2585060c4540dee
# 7c3b4d63c42d4990999e96195fe72cca
#: ../../troubleshooting.rst:76 ../../troubleshooting.rst:112
#: ../../troubleshooting.rst:153 ../../troubleshooting.rst:176
#: ../../troubleshooting.rst:207 ../../troubleshooting.rst:235
msgid "Solution"
msgstr "Solution"

# 990ebb2f5e854a479d94d06df1280a15
#: ../../troubleshooting.rst:78
msgid ""
"When setting up LUN exports, restrict the range of IP addresses that are "
"allowed access by specifying a subnet mask. For example:"
msgstr ""
"Lors de la configuration de l'exportation d'un LUN, restreindre la plage "
"des adresses IP autorisées à y accéder en spécifiant un masque de sous "
"réseau. Par exemple :"

# 17f9dff87a0b4b848b2938ad46c42bfc
#: ../../troubleshooting.rst:85
msgid "Adjust the above command to suit your deployment needs."
msgstr ""
"Ajuster la commande ci-dessous pour correspondre aux besoins de votre "
"déploiement."

# 9dd74bb044b640dcb1b4e410db1a44e2
#: ../../troubleshooting.rst:89
msgid "More Information"
msgstr "Plus d'information"

# 6c10365641b54f549e84579ccb8d4fe2
#: ../../troubleshooting.rst:91
msgid ""
"See the export procedure in the \"Secondary Storage\" section of the "
"CloudStack Installation Guide"
msgstr ""
"Voir la procédure d'exportation dans la section \"Stockage secondaire\" du "
"guide d'installation de CloudStack"

# 08ecc200c09045599e0c1f960186fdc4
#: ../../troubleshooting.rst:96
msgid "Recovering a Lost Virtual Router"
msgstr "Récupérer un routeur virtuel perdu"

# db28bc81f196417980c31fd2d4b63f29
#: ../../troubleshooting.rst:101
msgid ""
"A virtual router is running, but the host is disconnected. A virtual router "
"no longer functions as expected."
msgstr ""
"Un routeur virtuel fonctionne, mais l'hôte est déconnecté. Un routeur "
"virtuel ne fonctionne plus comme attendu."

# a6ac53ae9be44b4e8b3602647222e9ac
#: ../../troubleshooting.rst:108
msgid "The Virtual router is lost or down."
msgstr "Le routeur virtuel est perdu ou stoppé."

# 1bd58bc5e2314d0cbf2e0059b096bf0a
#: ../../troubleshooting.rst:114
msgid ""
"If you are sure that a virtual router is down forever, or no longer "
"functions as expected, destroy it. You must create one afresh while keeping "
"the backup router up and running (it is assumed this is in a redundant "
"router setup):"
msgstr ""
"Si vous êtes certain que le routeur est définitivement stoppé, ou qu'il ne "
"fonctionne plus comme attendu, le détruire. Vous devez en créer un de "
"nouveau tout en conservant le routeur de secours démarré et en "
"fonctionnement (ceci suppose qu'il s'agit d'une configuration avec routeur "
"redondant) :"

# 19e8516bc79a4b7faeb2645670f3a6a1
#: ../../troubleshooting.rst:119
msgid ""
"Force stop the router. Use the stopRouter API with forced=true parameter to "
"do so."
msgstr ""
"Forcer l'arrêt du routeur. Utiliser l'API stopRouter avec le paramètre "
"forced=true pour le faire."

# 340f24e153484784bc1cf3b493c32ea3
#: ../../troubleshooting.rst:122
msgid ""
"Before you continue with destroying this router, ensure that the backup "
"router is running. Otherwise the network connection will be lost."
msgstr ""
"Avant de continuer avec la destruction de ce routeur, assurez vous que le "
"routeur de secours est en fonctionnement. Sinon la connexion au réseau sera "
"perdue."

# c2db1e8bd10547bfacb3e2d044ca6d06
#: ../../troubleshooting.rst:126
msgid "Destroy the router by using the destroyRouter API."
msgstr "Détruire le routeur en utilisant l'API destroyRouter."

# af3e07ca34034b49b6dba68eb7da16f3
#: ../../troubleshooting.rst:128
msgid ""
"Recreate the missing router by using the restartNetwork API with "
"cleanup=false parameter. For more information about redundant router setup, "
"see Creating a New Network Offering."
msgstr ""
"Recréer le routeur manquant en utilisant l'API restartNetwork avec le "
"paramètre cleanup=false. Pour plus d'information à propos de la "
"configuration redondante des routeurs, voir Créer une nouvelle offre de "
"réseau."

# 25bdb5c7a6a7454ea25d62c3f0a02c57
#: ../../troubleshooting.rst:132
msgid ""
"For more information about the API syntax, see the API Reference at `http://"
"cloudstack.apache.org/docs/api/ <http://cloudstack.apache.org/docs/api/>`_."
msgstr ""
"Pour plus d'information sur la syntaxe de l'API, voir la Référence de l'API "
"à l'adresse `http://cloudstack.apache.org/docs/api/ <http://cloudstack."
"apache.org/docs/api/>`_."

# d1a32a2023024c72907911b8c7757cae
#: ../../troubleshooting.rst:137
msgid "Maintenance mode not working on vCenter"
msgstr "Le mode de maintenance ne fonctionne pas sur un vCenter"

# bd6813f30ddc4a0da8cf13b7725c9748
#: ../../troubleshooting.rst:142
msgid ""
"Host was placed in maintenance mode, but still appears live in vCenter."
msgstr ""
"L'hôte a été placé en mode maintenance, mais apparaît toujours vivant dans "
"le vCenter."

# 7241c889dd0842189f0c38eda241d14b
#: ../../troubleshooting.rst:148
msgid ""
"The CloudStack administrator UI was used to place the host in scheduled "
"maintenance mode. This mode is separate from vCenter's maintenance mode."
msgstr ""
"L'interface d'administration de CloudStack a été utilisée pour basculer "
"l'hôte en mode de maintenance programmée. Ce mode est différent du mode de "
"maintenance du vCenter."

# a959d82ede064a89ad631ce910f8f7df
#: ../../troubleshooting.rst:155
msgid "Use vCenter to place the host in maintenance mode."
msgstr "Utiliser le vCenter pour basculer l'hôte en mode maintenance."

# f3c4a03f0b5042009b2e858d5b259496
#: ../../troubleshooting.rst:159
msgid "Unable to deploy VMs from uploaded vSphere template"
msgstr ""
"Impossible de déployer des VMs depuis un modèle téléchargé depuis vSphere"

# f0d6310e9be647eda1506c7161d33a8b
#: ../../troubleshooting.rst:164
msgid "When attempting to create a VM, the VM will not deploy."
msgstr ""
"Lors de la tentative de création d'une VM, la VM ne va pas se déployer."

# 82efe5f025f8468c99e720b0e00c067e
#: ../../troubleshooting.rst:170
msgid ""
"If the template was created by uploading an OVA file that was created using "
"vSphere Client, it is possible the OVA contained an ISO image. If it does, "
"the deployment of VMs from the template will fail."
msgstr ""
"Si le modèle a été créé en téléchargeant un fichier OVA qui a été créé en "
"utilisant un client vSphere, il est possible que l'OVA contienne une image "
"ISO. Si c'est le cas, le déploiement des VMs depuis le modèle va échouer."

# c61b5fec4b5d4b75afac37386a78b766
#: ../../troubleshooting.rst:178
msgid "Remove the ISO and re-upload the template."
msgstr "Ejecter l'ISO et télécharger de nouveau le modèle."

# 7d4b56be6f504129860c6d5c12fd73d5
#: ../../troubleshooting.rst:182
msgid "Unable to power on virtual machine on VMware"
msgstr "Impossible d'allumer une machine virtuelle sur VMware"

# bb0c46e2f09647f9a260c9e676f72afb
#: ../../troubleshooting.rst:187
msgid "Virtual machine does not power on. You might see errors like:"
msgstr ""
"La machine virtuelle ne démarre pas. Vous devriez voir des erreurs comme :"

# 92c768be206b4267bb993ce6b1b74d77
#: ../../troubleshooting.rst:189
msgid "Unable to open Swap File"
msgstr "Impossible d'ouvrir le fichier Swap"

# a63cf9eda829479b835aff2d3b017460
#: ../../troubleshooting.rst:191
msgid "Unable to access a file since it is locked"
msgstr "Accès impossible à un fichier avec verrou"

# 0deea4202b4b41d9a4fab5ae3dad09bf
#: ../../troubleshooting.rst:193
msgid "Unable to access Virtual machine configuration"
msgstr "Accès impossible à la configuration d'une machine virtuelle"

# 0605d083a0fa4569ad92e3ea1cfe6634
#: ../../troubleshooting.rst:199
msgid ""
"A known issue on VMware machines. ESX hosts lock certain critical virtual "
"machine files and file systems to prevent concurrent changes. Sometimes the "
"files are not unlocked when the virtual machine is powered off. When a "
"virtual machine attempts to power on, it can not access these critical "
"files, and the virtual machine is unable to power on."
msgstr ""
"Une erreur connue sur les machines VMware. Les hôtes ESX verrouille "
"certains fichiers et systèmes de fichiers de machine virtuelle critique "
"pour prévenir de changement concurrent. Parfois, les fichiers ne sont pas "
"déverouillés quand la machine virtuelle est éteinte. Quand la machine "
"virtuelle essaie de redémarrer, elle ne peut pas accéder à ces fichiers "
"critiques, et la machine virtuelle n'est pas capable de démarrer."

# 177329a9571d49b5bce7dc8d84731724
#: ../../troubleshooting.rst:209
msgid "See the following:"
msgstr "Voir ce qui suit :"

# 344210667a0d414a89c35ba8bce56ca0
#: ../../troubleshooting.rst:211
msgid ""
"`VMware Knowledge Base Article <http://kb.vmware.com/selfservice/microsites/"
"search.do?language=en_US&cmd=displayKC&externalId=10051/>`_"
msgstr ""
"`Article de la base de connaissance VMware  <http://kb.vmware.com/"
"selfservice/microsites/search.do?"
"language=en_US&cmd=displayKC&externalId=10051/>`_"

# 7e82b8b3093b42cfb1088af2632abacf
#: ../../troubleshooting.rst:216
msgid "Load balancer rules fail after changing network offering"
msgstr ""
"Les règles du répartiteur de charge échouent après un changement d'offre "
"réseau"

# 8feb8c6245fb490d835881b4996a3504
#: ../../troubleshooting.rst:221
msgid ""
"After changing the network offering on a network, load balancer rules stop "
"working."
msgstr ""
"Après le changement d'offre réseau sur un réseau, les règles du répartiteur "
"de charge ne fonctionnent plus."

# dea9609b31dc4131b77505535e3aca09
#: ../../troubleshooting.rst:228
msgid ""
"Load balancing rules were created while using a network service offering "
"that includes an external load balancer device such as NetScaler, and later "
"the network service offering changed to one that uses the CloudStack "
"virtual router."
msgstr ""
"Les règles de répartitions de charge ont été créées lors de l'utilisation "
"d'une offre de service qui inclue un répartiteur de charge physique externe "
"comme un NetScaler, et plus tard l'offre de service réseau à changée pour "
"une qui utilise un routeur virtuel CloudStack."

# e344e7e16a5145ee9dfeb6c9057e6cb6
#: ../../troubleshooting.rst:237
msgid ""
"Create a firewall rule on the virtual router for each of your existing load "
"balancing rules so that they continue to function."
msgstr ""
"Créer une règle de firewall sur le routeur virtuel pour chacune de vos "
"règles de répartition de charge afin qu'elles continuent à fonctionner."

# 8bc5100986b347c1a08bbeb52b64f7f7
#: ../../troubleshooting.rst:242
msgid "Troubleshooting Internet Traffic"
msgstr "Dépanner le trafic Internet"

# 5f383b9190f34ebcbdd6bb92b713ee21
#: ../../troubleshooting.rst:244
msgid ""
"Below are a few troubleshooting steps to check whats going wrong with your "
"network..."
msgstr ""
"Ci-dessous les quelques étapes de dépannage pour vérifier ce qui ne va pas "
"avec votre réseau..."

# 07599df9fe734016810667b0edbc9a49
#: ../../troubleshooting.rst:249
msgid "Trouble Shooting Steps"
msgstr "Étapes de dépannage"

# 1a82d41b488b46c2bef892a561b3756c
#: ../../troubleshooting.rst:251
msgid ""
"The switches have to be configured correctly to pass VLAN traffic. You can "
"verify if VLAN traffic is working by bringing up a tagged interface on the "
"hosts and pinging between them as below..."
msgstr ""
"Les commutateurs doivent être configurés correctement pour laisser passer "
"le trafic VLAN. Vous pouvez vérifier si le trafic VLAN fonctionne en "
"montant une interface sur les hôtes et en pinguant entre eux comme ci-"
"dessous..."

# 6b44f2f662ed49199d66820be6f6de02
#: ../../troubleshooting.rst:255
msgid "On *host1 (kvm1)*"
msgstr "Sur *host1 (kvm1)*"

# 5120295551574a56817a504f54bfe602
#: ../../troubleshooting.rst:263
msgid "On *host2 (kvm2)*"
msgstr "Sur *host2 (kvm2)*"

# 417a511656394e62ab6533726322a54e
#: ../../troubleshooting.rst:271
msgid ""
"If the pings dont work, run *tcpdump(8)* all over the place to check who is "
"gobbling up the packets. Ultimately, if the switches are not configured "
"correctly, CloudStack networking wont work so fix the physical networking "
"issues before you proceed to the next steps"
msgstr ""
"Si les pings ne fonctionne pas, utiliser *tcpdump(8)* un peu partout pour "
"vérifier qui absorbe les paquets. En définitive, si les commutateurs ne "
"sont pas configurés correctement, le réseau CloudStack ne fonctionnera pas "
"alors corriger les pannes réseaux physiques avant de poursuivre avec les "
"étapes suivantes"

# 63be4a452fb043e1ad03834e2b6afc37
#: ../../troubleshooting.rst:276
msgid ""
"Ensure `Traffic Labels <http://cloudstack.apache.org/docs/en-US/"
"Apache_CloudStack/4.2.0/html/Installation_Guide/about-physical-networks."
"html>`_ are set for the Zone."
msgstr ""
"S'assurer que les `Labels Trafics <http://cloudstack.apache.org/docs/en-US/"
"Apache_CloudStack/4.2.0/html/Installation_Guide/about-physical-networks."
"html>`_ sont renseignés pour cette Zone."

# 997b8cf202374996adfbc66cf272e85d
#: ../../troubleshooting.rst:278
msgid ""
"Traffic labels need to be set for all hypervisors including XenServer, KVM "
"and VMware types. You can configure traffic labels when you creating a new "
"zone from the *Add Zone Wizard*."
msgstr ""
"Les labels de trafic doivent être renseignés sur tous les hyperviseurs "
"incluant les types XenServer, KVM et VMware. Vous pouvez configurer les "
"labels de trafic quand vous créez une nouvelle zone depuis l'*Assistant "
"d'Ajout de Zone*."

# 7f2757fe05a54b7890d5b634724bd166
#: ../../troubleshooting.rst:284
msgid ""
"On an existing zone, you can modify the traffic labels by going to "
"*Infrastructure, Zones, Physical Network* tab."
msgstr ""
"Sur une zone existante, vous pouvez modifier les labels de trafic en allant "
"sur l'onglet *Infrastructure, Zones, Réseau physique*."

# de6b7290f1874731bab19679f2b1c123
#: ../../troubleshooting.rst:289
msgid "List labels using *CloudMonkey*"
msgstr "Lister les labels en utilisant *CloudMonkey*"

# d7be5d89abc2416a81c2e11ae80e5c5e
#: ../../troubleshooting.rst:321
msgid ""
"KVM traffic labels require to be named as *\"cloudbr0\"*, *\"cloudbr2\"*, *"
"\"cloudbrN\"* etc and the corresponding bridge must exist on the KVM hosts. "
"If you create labels/bridges with any other names, CloudStack (atleast "
"earlier versions did) seems to ignore them. CloudStack does not create the "
"physical bridges on the KVM hosts, you need to create them **before** "
"before adding the host to Cloudstack."
msgstr ""
"Les labels de trafic KVM nécessitent d'être nommés comme *\"cloudbr0\"*, *"
"\"cloudbr2\"*, *\"cloudbrN\"* etc et le pont correspondant doit exister sur "
"les hôtes KVM. Si vous créez des labels/ponts avec n'importe quel autre "
"nom, CloudStack (au moins les versions anciennes le font) semble les "
"ignorer. CloudStack ne crée pas les ponts physiques sur les hôtes KVM, vous "
"devez les créer **avant** d'ajouter l'hôte dans CloudStack."

# 4d5d185d16bb4379b29d90b15b9e9855
#: ../../troubleshooting.rst:340
msgid ""
"The Virtual Router, SSVM, CPVM *public* interface would be bridged to a "
"physical interface on the host. In the example below, *cloudbr0* is the "
"public interface and CloudStack has correctly created the virtual "
"interfaces bridge. This virtual interface to physical interface mapping is "
"done automatically by CloudStack using the traffic label settings for the "
"Zone. If you have provided correct settings and still dont have a working "
"working Internet, check the switching layer before you debug any further. "
"You can verify traffic using tcpdump on the virtual, physical and bridge "
"interfaces."
msgstr ""
"L'interface publique du Routeur Virtuel, de la SSVM et de la CPVM doivent "
"être attachées à l'interface physique sur l'hôte. Dans l'exemple ci-"
"dessous, *cloudbr0* est l'interface publique et CloudStack a correctement "
"crée le pont des interfaces virtuelles. L'attachement de l'interface "
"virtuelle à l'interface physique est automatiquement effectuée par "
"CloudStack, en s'appuyant sur le paramètre de label du trafic pour la zone. "
"Si vous avez fourni les paramètres correctes et que vous n'avez toujours "
"pas de connexion Internet, vérifier la couche réseau avant de débugger plus "
"loin. Vous pouvez vérifier le trafic en utilisant tcpdump sur les "
"interfaces virtuelles, les interfaces physiques et les ponts."

# f261f43d727440edbeaf4c36ca611f7c
#: ../../troubleshooting.rst:372
msgid ""
"Pre-create labels on the XenServer Hosts. Similar to KVM bridge setup, "
"traffic labels must also be pre-created on the XenServer hosts before "
"adding them to CloudStack."
msgstr ""
"Pré-créer les labels sur les hôtes XenServer. Similaire à la configuration "
"du pont KVM, les labels de trafics doivent aussi être pré-créés sur les "
"hôtes XenServer avant de les ajouter à CloudStack."

# e75bf706d6a745c9a94ee34516e86d1f
#: ../../troubleshooting.rst:385
msgid ""
"The Internet would be accessible from both the SSVM and CPVM instances by "
"default. Their public IPs will also be directly pingable from the Internet. "
"Please note that these test would work only if your switches and traffic "
"labels are configured correctly for your environment. If your SSVM/CPVM "
"cant reach the Internet, its very unlikely that the Virtual Router (VR) can "
"also the reach the Internet suggesting that its either a switching issue or "
"incorrectly assigned traffic labels. Fix the SSVM/CPVM issues before you "
"debug VR issues."
msgstr ""
"Internet devrait être accessible depuis à la fois les instances SSVM et "
"CPVM par défaut. Leurs IP publiques seront également directement pingable "
"depuis Internet. Merci de prendre note que ces tests ne fonctionneront que "
"si vos commutateurs et les labels de trafic sont correctement configurés "
"dans votre environnement. Si vos SSVM/CPVM ne peuvent pas joindre Internet, "
"il y a peu de chance que le Routeur Virtuel puisse également le faire, ce "
"qui indique un problème de commutateur ou de labels de trafic mal "
"attribués. Fixer les problèmes SSVM/CPVM avant de débugger les problèmes de "
"VR."

# c1f11bc2b9ea470382b5f863e8d1a146
#: ../../troubleshooting.rst:417
msgid ""
"The Virtual Router (VR) should also be able to reach the Internet without "
"having any Egress rules. The Egress rules only control forwarded traffic "
"and not traffic that originates on the VR itself."
msgstr ""
"Le routeur virtuel (VR) devrait aussi être capable d'atteindre Internet "
"sans avoir des règles Egress. Les règles Egress contrôlent seulement le "
"trafic transféré et pas le trafic qui provient du VR lui-même."

# fd961e75e43d4c48a4b779ef136e1d12
#: ../../troubleshooting.rst:432
msgid ""
"However, the Virtual Router's (VR) Source NAT Public IP address **WONT** be "
"reachable until appropriate Ingress rules are in place. You can add "
"*Ingress* rules under *Network, Guest Network, IP Address, Firewall* "
"setting page."
msgstr ""
"Toutefois, les adresses IP publique de Source NAT du Routeur Virtuel (VR) "
"**ne seront pas** accessible tant que les règles entrantes ne sont pas en "
"place. Vous pouvez ajouter les règles *Ingress*  sous la page de "
"configuration *Réseau, Réseau Invité, Adresse IP, Parefeu*."

# 7a1ba3d03cd64a0cb60486d361453ebd
#: ../../troubleshooting.rst:439
msgid ""
"The VM Instances by default wont be able to access the Internet. Add Egress "
"rules to permit traffic."
msgstr ""
"Les instances de VM ne peuvent pas accéder par défaut à Internet. Ajouter "
"les règles Egress pour permettre le trafic."

# 2d798a14dcd149af8197080268c1b12b
#: ../../troubleshooting.rst:444
msgid ""
"Some users have reported that flushing IPTables rules (or changing routes) "
"on the SSVM, CPVM or the Virtual Router makes the Internet work. This is "
"not expected behaviour and suggests that your networking settings are "
"incorrect. No IPtables/route changes are required on the SSVM, CPVM or the "
"VR. Go back and double check all your settings."
msgstr ""
"Certains utilisateurs ont rapportés qu'en réinitialisant les règles "
"IPTables (ou en changeant les routes) sur la SSVM, CPVM ou sur le Routeur "
"Virtuel font fonctionner internet. Ce n'est pas un comportement normal et "
"cela suggère que vos paramètres réseaux sont incorrectes. Aucun changement "
"de règles IPTables ou de route ne sont nécessaires sur la SSVM, CPVM ou le "
"VR. Revenir et refaire une vérification de tous vos paramètres."

# e14dab36e181467a9fd09fb6d0283176
#: ../../troubleshooting.rst:451
msgid ""
"In a vast majority of the cases, the problem has turned out to be at the "
"switching layer where the L3 switches were configured incorrectly."
msgstr ""
"Dans une grande majorité des cas, le problème s'est avéré être un problème "
"de commutateur où la couche 3 des commutateurs était incorrectement "
"configurée."

# 5fff1dc7083a4412a9e4051f2e239180
#: ../../troubleshooting.rst:454
msgid ""
"This section was contibuted by Shanker Balan and was originally published "
"on `Shapeblue's blog <http://shankerbalan.net/blog/internet-not-working-on-"
"cloudstack-vms/>`_"
msgstr ""
"Cette section est une contribution de Shanker Balan et a été publié à "
"l'origine sur le `Blog Shapeblue <http://shankerbalan.net/blog/internet-not-"
"working-on-cloudstack-vms/>`_"
