SUR CETTE PAGE
Exemple : configuration de mécanismes de contrôle hiérarchiques pour limiter les taux de services dans un environnement statique
Cet exemple montre comment configurer un mécanisme de contrôle hiérarchique et l’appliquer au trafic entrant de couche 2 au niveau d’une interface logique sur un routeur MX Series.
Exigences
Avant de commencer, assurez-vous que votre environnement répond aux exigences suivantes :
L’interface sur laquelle vous appliquez le mécanisme de contrôle hiérarchique est une interface hébergée sur un routeur MX Series.
Aucun autre mécanisme de contrôle n’est appliqué à l’entrée de l’interface sur laquelle vous appliquez le mécanisme de contrôle hiérarchique.
Vous savez que, si vous appliquez le mécanisme de contrôle hiérarchique à une interface logique sur laquelle un filtre d’entrée est également appliqué, le mécanisme de contrôle est exécuté en premier.
Aperçu
Dans cet exemple, vous allez configurer un mécanisme de contrôle hiérarchique et l’appliquer au trafic de couche 2 entrant au niveau d’une interface logique. Le Tableau 1 décrit les niveaux hiérarchiques auxquels vous pouvez configurer et appliquer des mécanismes de contrôle hiérarchiques sur les interfaces logiques et physiques.
Configuration du mécanisme de contrôle |
Application de couche 2 |
Points clés |
---|---|---|
Contrôleur hiérarchique
Limite hiérarchiquement le débit du trafic entrant de couche 2 pour toutes les familles de protocoles. Ne peut pas être appliqué au trafic sortant, au trafic de couche 3 ou à un niveau de protocole spécifique de la hiérarchie d’interface. Pris en charge sur les interfaces des concentrateurs de ports denses (DPC) des routeurs MX Series. |
||
Composants de contrôle agrégés et premium d’un mécanisme de contrôle hiérarchique : [edit dynamic-profiles profile-name firewall] hierarchical-policer policer-name { aggregate { if-exceeding { bandwidth-limit bps; burst-size-limit bytes; } then { discard; forwarding-class class-name; loss-priority supported-value; } } premium { if-exceeding { bandwidth-limit bps; burst-size-limit bytes; } then { discard; } } } |
Option A (interface physique) : applique directement au trafic en entrée de couche 2 sur une interface physique : [edit dynamic-profiles profile-name interfaces] interface-name { layer2-policer { input-hierarchical-policer policer-name; } } |
Limite hiérarchiquement le trafic entrant de couche 2 pour toutes les familles de protocoles et les interfaces logiques configurées sur une interface physique. Incluez l’instruction de
Note:
Si vous appliquez un mécanisme de contrôle hiérarchique à une interface physique, vous ne pouvez pas appliquer un mécanisme de contrôle hiérarchique à l’une des interfaces logiques membres. |
Option B (interface logique) : applique directement au trafic en entrée de couche 2 sur une interface logique : [edit dynamic-profiles profile-name interfaces] interface-name { unit unit-number { layer2-policer { input-hierarchical-policer policer-name; } } } |
Limite hiérarchiquement le trafic entrant de couche 2 pour toutes les familles de protocoles configurées sur une interface logique spécifique. Incluez l’instruction de
Note:
Vous devez configurer au moins une famille de protocoles pour l’interface logique. |
Vous appliquez le mécanisme de contrôle à l’interface logique Gigabit Ethernet ge-1/2/0.0, que vous configurez pour le trafic IPv4. Lorsque vous appliquez le mécanisme de contrôle hiérarchique à l’interface logique, le trafic IPv4 est hiérarchiquement limité en débit. Si vous choisissez d’appliquer le mécanisme de contrôle hiérarchique à l’interface physique ge-1/2/0, le contrôle hiérarchique s’applique également au trafic IPv4 sur l’interface logique.
Configuration
L’exemple suivant vous oblige à naviguer à différents niveaux dans la hiérarchie de configuration. Pour plus d’informations sur la navigation dans l’interface de ligne de commande, consultez Utilisation de l’éditeur CLI en mode Configuration.
Pour configurer cet exemple, effectuez les tâches suivantes :
- Configuration rapide de l’interface de ligne de commande
- Configuration d’un profil dynamique de base pour la gestion des abonnés
- Configuration des interfaces
- Configuration du filtre de pare-feu
- Configuration des classes de transfert
- Configuration du mécanisme de contrôle hiérarchique
- Application du mécanisme de contrôle hiérarchique au trafic entrant de couche 2 au niveau d’une interface physique ou logique
Configuration rapide de l’interface de ligne de commande
Pour configurer rapidement cet exemple, copiez les commandes de configuration suivantes dans un fichier texte, supprimez les sauts de ligne, puis collez-les dans l’interface de ligne de commande au niveau de la [edit]
hiérarchie.
set dynamic-profiles basic-profile set dynamic-profiles basic-profile interfaces “$junos-interface-ifd-name” set dynamic-profiles basic-profile interfaces "$junos-interface-ifd-name" unit “$junos-underlying-interface-unit” set dynamic-profiles basic-profile interfaces "$junos-interface-ifd-name" unit $junos-underlying-interface-unit family inet set dynamic-profiles interfaces ge-1/2/0 unit 0 family inet address 203.0.113.80/31 set dynamic-profiles basic-profile firewall family inet filter hierarch-filter set dynamic-profiles basic-profile firewall family inet filter hierarch-filter interface-specific set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1 set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip2 set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1 from precedence critical-ecp protocol set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1 from protocol tcp set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1 then hierarchical-policer hp1-share filter-specific set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip2 from precedence internet-control set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip2 from protocol tcp set dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip2 then hierarchical-policer hp2-share set class-of-service forwarding-classes class fc0 queue-num 0 priority high policing-priority premium set class-of-service forwarding-classes class fc1 queue-num 1 priority low policing-priority normal set class-of-service forwarding-classes class fc2 queue-num 2 priority low policing-priority normal set class-of-service forwarding-classes class fc3 queue-num 3 priority low policing-priority normal set dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem aggregate if-exceeding bandwidth-limit 10m burst-size-limit 100k set dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem aggregate then forwarding-class fc1 set dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem premium if-exceeding bandwidth-limit 2m burst-size-limit 50k set dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem premium then discard set dynamic-profiles basic-profile interfaces ge-1/2/0 unit 0 layer2-policer input-hierarchical-policer policer-agg-prem
Configuration d’un profil dynamique de base pour la gestion des abonnés
Procédure étape par étape
Un profil dynamique est un ensemble de caractéristiques, définies dans un type de modèle, que vous pouvez utiliser pour fournir un accès et des services d’abonné dynamiques pour les applications haut débit. Ces services sont attribués dynamiquement aux interfaces. Un profil de base doit contenir un nom de profil et avoir à la [edit dynamic-profiles profile-name interfaces
fois un nom de variable d’interface (par $junos-interface-ifd-nameexemple, ) et un nom de variable d’interface logique (par $junos-underlying-interface-unit exemple, ou $junos-interface-unit) au niveau de la [edit dynamic-profiles profile-name interfaces variable-interface-name unit]
hiérarchie.
Créez le nouveau profil dynamique.
[edit] user@host# set dynamic-profiles basic-profile
Définissez l’instruction
interface-name
variable avec la variable interne $junos-interface-ifd-name utilisée par le routeur pour correspondre au nom d’interface de l’interface de réception.[edit dynamic-profiles basic-profile] user@host# set interfaces “$junos-interface-ifd-name”
Définissez l’instruction à l’aide
variable-interface-name unit
de la variable interne.Lorsque vous référencez une interface existante, spécifiez la $junos-underlying-interface-unit variable utilisée par le routeur pour correspondre à la valeur unitaire de l’interface de réception.
Lors de la création d’interfaces dynamiques, spécifiez la $junos-interface-unit variable utilisée par le routeur pour générer une valeur unitaire pour l’interface.
[edit dynamic-profiles basic-profile interfaces "$junos-interface-ifd-name"] user@host# set unit $junos-underlying-interface-unit
ou
[edit dynamic-profiles basic-profile interfaces "$junos-interface-ifd-name"] user@host# set unit $junos-interface-unit
Définissez le type d’adresse de famille (inet pour IPv4) pour la $junos-interface-unit variable.
[edit dynamic-profiles basic-profile interfaces "$junos-interface-ifd-name" unit $junos-underlying-interface-unit] user@host# set family inet
Résultats
Confirmez la configuration du profil dynamique en entrant la commande de show dynamic-profiles
configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show dynamic-profiles dynamic-profiles { basic-profile { interfaces { "$junos-interface-ifd-name" { unit "$junos-underlying-interface-unit" { family inet; } } } } }
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Configuration des interfaces
Procédure étape par étape
Définissez les interfaces physiques et logiques pour cet exemple de mécanisme de contrôle hiérarchique.
Configurez l’interface physique.
[edit dynamic-profiles basic-profile] user@host# set interfaces ge-1/2/0
Configurez l’interface logique en tant qu’unité 0 avec son interface de famille de protocoles IPv4 (inet).
[edit dynamic-profiles basic-profile interfaces ge-1/2/0] user@host# set unit 0 family inet address 203.0.113.80/31
Note:Si vous appliquez un mécanisme de contrôle de couche 2 à cette interface logique, vous devez configurer au moins une famille de protocoles.
Résultats
Confirmez la configuration en entrant la commande de show dynamic-profiles basic-profile interfaces
configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show dynamic-profiles basic-profile interfaces ge-1/2/0 { unit 0 { family inet { address 203.0.113.80/31; } } }
Configuration du filtre de pare-feu
Procédure étape par étape
Pour configurer un mécanisme de contrôle hiérarchique en tant qu’action de filtre, vous devez d’abord configurer un filtre de pare-feu.
Configurez le type d’adresse de famille (inet pour IPv4) pour le filtre de pare-feu et spécifiez le nom du filtre.
Nous vous recommandons de nommer le filtre d’une manière qui indique son objectif.
[edit dynamic-profiles basic-profile] user@host# set firewall family inet filter hierarch-filter
Pour remplacer l’agrégation des compteurs et des actions de contrôle et rendre chaque fonction de compteur ou de stratégie spécifique à chaque application d’interface, incluez l’instruction
interface-specific
dans le filtre.[edit dynamic-profiles basic-profile firewall family inet filter hierarch-filter] user@host# set interface-specific
Spécifiez les noms des termes pour le filtre.
Faites en sorte que le nom de chaque terme soit unique et représentez sa fonction.
[edit dynamic-profiles basic-profile firewall family inet filter hierarch-filter] user@host# set term match-ip1 user@host# set term match-ip2
Dans chaque terme de filtre de pare-feu, spécifiez les conditions utilisées pour faire correspondre les composants d’un paquet.
Configurez le premier terme pour qu’il fasse correspondre les paquets IPv4 reçus via TCP avec le champ de priorité IP protocole critical-ecp (0xa0) et appliquez le mécanisme de contrôle hiérarchique en tant qu’action de filtre.
[edit dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1] user@host# set from precedence critical-ecp protocol user@host# set from protocol tcp
Spécifiez les actions à entreprendre lorsque le paquet répond à toutes les conditions du premier terme. Activez tous les mécanismes de contrôle hiérarchiques d’un filtre pour qu’ils partagent la même instance de mécanisme de contrôle dans le moteur de transfert de paquets.
[edit dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip1] user@host# set then hierarchical-policer hp1-share filter-specific
Configurez le second terme pour qu’il fasse correspondre les paquets IPv4 reçus via TCP avec le champ de précédence IP internet-control (0xc0) et appliquez le mécanisme de contrôle hiérarchique en tant qu’action de filtre.
[edit dynamic-profiles basic-profile firewall family inet filter hierarch-filter term match-ip2] user@host# set from precedence internet-control user@host# set from protocol tcp
Spécifiez les actions à entreprendre lorsque le paquet répond à toutes les conditions du second terme.
[edit dynamic-profiles basic-profile firewall family inet filter inet-filter term match-ip2] user@host# set then hierarchical-policer hp2-share
Résultats
Confirmez la configuration en entrant la commande de show dynamic-profiles basic-profile firewall
configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show dynamic-profiles basic-profile firewall family inet { filter hierarch-filter { interface-specific; term match-ip1 { from { precedence critical-ecp protocol; protocol tcp; } then hierarchical-policer hp1-share; } term match-ip2 { from { precedence internet-control; protocol tcp; } then hierarchical-policer hp2-share; } } }
Configuration des classes de transfert
Procédure étape par étape
Définissez les classes de transfert référencées en tant qu’actions de contrôle d’agrégation. Pour que les mécanismes de contrôle hiérarchique fonctionnent, le trafic entrant doit être correctement classé en compartiments premium et non premium. Une configuration de classe de service (CoS) est requise, car le mécanisme de contrôle hiérarchique doit être en mesure de séparer le trafic de transfert premium/accéléré (EF) du trafic non-premium/non-EF.
Activez la configuration des classes de transfert.
[edit] user@host# set class-of-service forwarding-classes
Définissez les classes de transfert CoS de manière à inclure la désignation de la classe de transfert qui est premium. Par défaut, il s’agit de la classe de transfert associée au trafic EF.
[edit class-of-service forwarding-classes] user@host# set class fc0 queue-num 0 priority high policing-priority premium user@host# set class fc1 queue-num 1 priority low policing-priority normal user@host# set class fc2 queue-num 2 priority low policing-priority normal user@host# set class fc3 queue-num 3 priority low policing-priority normal
Résultats
Confirmez la configuration des classes de transfert référencées en tant qu’actions de contrôle d’agrégation en entrant la show class-of-service
commande de configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show class-of-service forwarding-classes { class fc0 queue-num 0 priority high policing-priority premium; class fc1 queue-num 1 priority low policing-priority normal; class fc2 queue-num 2 priority low policing-priority normal; class fc3 queue-num 3 priority low policing-priority normal; }
Configuration du mécanisme de contrôle hiérarchique
Procédure étape par étape
Configurez les composants de contrôle agrégé et premium d’un mécanisme de contrôle hiérarchique.
Activez la configuration du mécanisme de contrôle hiérarchique.
[edit dynamic-profiles basic-profile] user@host# set firewall hierarchical-policer policer-agg-prem
Configurez le mécanisme de contrôle d’agrégation pour qu’une limite de bande passante soit définie sur 10 Mbits/s, que la limite de taille de rafale soit définie sur 100 Ko et que l’action non conforme soit définie pour que la classe de transfert soit définie sur fc1.
[edit dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem] user@host# set aggregate if-exceeding bandwidth-limit 10m burst-size-limit 100k user@host# set aggregate then forwarding-class fc1
Note:Pour les mécanismes de contrôle d’agrégation, les actions configurables pour un paquet dans un flux non conforme consistent à ignorer le paquet, à modifier la priorité de perte ou à modifier la classe de transfert.
Configurez le mécanisme de contrôle Premium pour qu’une limite de bande passante soit définie sur 2 Mbit/s, une limite de taille de rafale définie sur 50 Ko et une action non conforme définie sur la suppression des paquets.
[edit dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem] user@host# set premium if-exceeding bandwidth-limit 2m burst-size-limit 50k user@host# set premium then discard
Note:La limite de bande passante du mécanisme de contrôle Premium ne doit pas être supérieure à celle du mécanisme de contrôle agrégé. Pour les mécanismes de contrôle Premium, la seule action configurable pour un paquet dans un flux de trafic non conforme consiste à ignorer le paquet.
Résultats
Confirmez la configuration du mécanisme de contrôle hiérarchique en entrant la show dynamic-profiles basic-profile firewall
commande de configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show dynamic-profiles basic-profile firewall hierarchical-policer policer-agg-prem { aggregate { if-exceeding { bandwidth-limit 10m; burst-size-limit 100k; } then { forwarding-class fc1; } } premium { if-exceeding { bandwidth-limit 2m; burst-size-limit 50k; } then { discard; } } }
Application du mécanisme de contrôle hiérarchique au trafic entrant de couche 2 au niveau d’une interface physique ou logique
Procédure étape par étape
Vous pouvez appliquer des mécanismes de contrôle directement à une interface ou les appliquer à travers un filtre pour affecter uniquement le trafic correspondant. Dans la plupart des cas, vous pouvez appeler une fonction de contrôle à l’entrée, à la sortie ou dans les deux sens.
Pour les interfaces physiques, un mécanisme de contrôle hiérarchique utilise une instance unique du mécanisme de contrôle pour limiter le débit de toutes les interfaces logiques et familles de protocoles configurées sur une interface physique, même si les interfaces logiques ont des familles mutuellement exclusives telles que inet ou bridge.
Pour les interfaces logiques, un mécanisme de contrôle hiérarchique peut contrôler le trafic de plusieurs familles de protocoles sans nécessiter d’instanciation distincte d’un mécanisme de contrôle pour chacune de ces familles sur l’interface logique.
Pour limiter hiérarchiquement le trafic entrant de couche 2 pour le trafic IPv4 sur l’interface logique ge-1/2/0.0, référencez le mécanisme de contrôle à partir de la configuration de l’interface logique.
Configurez l’interface logique.
[edit dynamic-profiles basic-profile] user@host# set interfaces ge-1/2/0 unit 0
Lorsque vous appliquez un mécanisme de contrôle au trafic de couche 2 au niveau d’une interface logique, vous devez définir au moins une famille de protocoles pour l’interface logique.
Appliquez le mécanisme de contrôle à l’interface logique.
[edit dynamic-profiles basic-profile interfaces ge-1/2/0 unit 0] user@host# set layer2-policer input-hierarchical-policer policer-agg-prem
Sinon, pour limiter hiérarchiquement le trafic entrant de couche 2 pour toutes les familles de protocoles et pour toutes les interfaces logiques configurées sur l’interface physique ge-1/2/0, référencez le mécanisme de contrôle à partir de la configuration de l’interface physique.
Résultats
Confirmez la configuration du mécanisme de contrôle hiérarchique en entrant la show dynamic-profiles basic-profile interfaces
commande de configuration. Si la sortie de la commande n’affiche pas la configuration prévue, répétez les instructions de cette procédure pour corriger la configuration.
[edit] user@host# show dynamic-profiles basic-profile interfaces ge-1/2/0 { unit 0 { layer2-policer { input-hierarchical-policer policer-agg-prem; } family inet { address 203.0.113.80/31; } } }
Vérification
Vérifiez que la configuration fonctionne correctement.
- Affichage des statistiques de trafic de l’interface
- Affichage du nombre de paquets contrôlés par le mécanisme de contrôle spécifié
Affichage des statistiques de trafic de l’interface
But
Vérifiez le flux de trafic via l’interface physique.
Action
Utilisez la commande mode opérationnel pour l’interface show interfaces
physique ge-1/2/0 et incluez l’option detail
ou extensive
.
user@host> show interfaces ge-1/2/0 extensive Physical interface: ge-1/2/0, Enabled, Physical link is Down Interface index: 156, SNMP ifIndex: 630, Generation: 159 Link-level type: Ethernet, MTU: 1514, MRU: 1522, Speed: 1000mbps, BPDU Error: None, MAC-REWRITE Error: None, Loopback: Disabled, Source filtering: Disabled, Flow control: Enabled, Auto-negotiation: Enabled, Remote fault: Online Pad to minimum frame size: Disabled Device flags : Present Running Down Interface flags: Hardware-Down SNMP-Traps Internal: 0x4000 Link flags : None CoS queues : 8 supported, 8 maximum usable queues Schedulers : 0 Hold-times : Up 0 ms, Down 0 ms Current address: 00:00:5E:00:53:4c, Hardware address: 00:00:5E:00:53:4c Last flapped : 2014-11-10 13:36:25 EST (01:26:30 ago) Statistics last cleared: Never Traffic statistics: Input bytes : 0 0 bps Output bytes : 42 0 bps Input packets: 0 0 pps Output packets: 1 0 pps IPv6 transit statistics: Input bytes : 0 Output bytes : 0 Input packets: 0 Output packets: 0 Dropped traffic statistics due to STP State: Input bytes : 0 Output bytes : 0 Input packets: 0 Output packets: 0 Input errors: Errors: 0, Drops: 0, Framing errors: 0, Runts: 0, Policed discards: 0, L3 incompletes: 0, L2 channel errors: 0, L2 mismatch timeouts: 0, FIFO errors: 0, Resource errors: 0 Output errors: Carrier transitions: 0, Errors: 0, Drops: 0, Collisions: 0, Aged packets: 0, FIFO errors: 0, HS link CRC errors: 0, MTU errors: 0, Resource errors: 0 Egress queues: 8 supported, 8 in use Queue counters: Queued packets Transmitted packets Dropped packets 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 Queue number: Mapped forwarding classes 0 best-effort 1 expedited-forwarding 2 assured-forwarding 3 network-control 4 be1 5 ef1 6 af1 7 nc1 Active alarms : LINK Active defects : LINK MAC statistics: Receive Transmit Total octets 0 0 Total packets 0 0 Unicast packets 0 0 Broadcast packets 0 0 Multicast packets 0 0 CRC/Align errors 0 0 FIFO errors 0 0 MAC control frames 0 0 MAC pause frames 0 0 Oversized frames 0 Jabber frames 0 Fragment frames 0 VLAN tagged frames 0 Code violations 0 Total errors 0 0 Filter statistics: Input packet count 0 Input packet rejects 0 Input DA rejects 0 Input SA rejects 0 Output packet count 0 Output packet pad count 0 Output packet error count 0 CAM destination filters: 0, CAM source filters: 0 Autonegotiation information: Negotiation status: Incomplete Packet Forwarding Engine configuration: Destination slot: 0 (0x00) CoS information: Direction : Output CoS transmit queue Bandwidth Buffer Priority Limit % bps % usec 0 best-effort 95 950000000 95 0 low none 3 network-control 5 50000000 5 0 low none Interface transmit statistics: Disabled
Signification
La section de sortie de la commande répertorie Traffic statistics le nombre d’octets et de paquets reçus et transmis sur l’interface.
Affichage du nombre de paquets contrôlés par le mécanisme de contrôle spécifié
But
Vérifiez le nombre de paquets évalués par le mécanisme de contrôle. Les compteurs de contrôle Premium ne sont pas pris en charge.
Action
Utilisez la commande mode show policer
opérationnel et spécifiez éventuellement le nom du mécanisme de contrôle policer-agg-prem
. La sortie de la commande affiche le nombre de paquets évalués par le mécanisme de contrôle spécifié dans chaque direction.
user@host> show policer policer-agg-prem Policers: Name Bytes Packets policer-agg-prem-ge-1/2/0.0-inet-i 10372300 103723
Le -inet-i suffixe indique un mécanisme de contrôle appliqué au trafic d’entrée IPv4. Dans cet exemple, le mécanisme de contrôle s’applique uniquement au trafic d’entrée.
Signification
La sortie de la commande affiche le nombre de paquets évalués par le mécanisme de contrôle spécifié dans chaque direction.