ADC

GrPC avec la stratégie de répondeur

La configuration de stratégie GrPC avec répondeur explique comment une appliance Citrix ADC fournit différentes réponses aux demandes GrPC via le protocole HTTP/2. Lorsque les utilisateurs demandent une page d’accueil de site Web, vous pouvez fournir une page d’accueil différente en fonction de l’emplacement de chaque utilisateur ou du navigateur utilisé par l’utilisateur.

Le diagramme suivant montre les composants qui interagissent.

GrPC avec une stratégie de répondeur

  1. Activez la fonction de répondeur sur l’appliance.
  2. Configurez l’action du répondeur pour générer une réponse personnalisée, rediriger une requête vers une autre page Web ou réinitialiser une connexion.
  3. Configurez la stratégie de répondeur pour déterminer les requêtes GRPC (trafic) sur lesquelles une action doit être effectuée.
  4. Liez la stratégie de répondeur au serveur virtuel d’équilibrage de charge pour vérifier si le trafic correspond à l’expression de stratégie.
  5. En utilisant une stratégie de répondeur, vous pouvez effectuer les opérations suivantes en fonction du code d’état GrPC.

Configurer la terminaison d’appel GrPC avec la stratégie de répondeur à l’aide de l’interface de ligne de commande

Pour configurer la terminaison d’appel GRPC avec la stratégie de répondeur, vous devez effectuer les étapes suivantes :

  1. Activer la fonction répondeur
  2. Ajouter une action de répondeur
  3. Ajouter une stratégie de répondeur et une action de répondeur associé
  4. Lier la stratégie du répondeur au serveur virtuel d’équilibrage de charge

Activer la fonction répondeur

Pour utiliser la fonction répondeur, vous devez d’abord l’activer.

À l’invite de commandes, tapez :

enable ns responder

Ajouter l’action du répondeur

Après avoir activé la fonctionnalité, vous devez configurer l’action du répondeur pour gérer la réponse GRPC en fonction du code d’état renvoyé par le serveur principal.

À l’invite de commandes, tapez :

add responder action <name> <type>

Exemple :

add responder action grpc-act respondwith "HTTP/1.1 200 OK\r\nServer: NS-Responder\r\nContent-Type:application/grpc\r\ngrpc-status: 12\r\ngrpc-message: Not Implemented\r\n\r\n" + "Method: " + HTTP.REQ.URL+ "is not implemented."

Ajout d’une stratégie de répondeur

Après avoir configuré une action de répondeur, vous devez ensuite configurer une stratégie de répondeur pour sélectionner la demande GRPC à laquelle l’appliance Citrix ADC doit répondre.

À l’invite de commandes, tapez :

add responder policy <name> <expression> <action> [<undefaction>]-appFlowaction <actionName> Exemple :

add responder policy grpc-resp-pol1 HTTP.REQ.URL.NE(“/helloworld.Greeter/SayHello”) grpc-act

Lier la stratégie de répondeur au serveur virtuel d’équilibrage de charge

Pour mettre une stratégie en vigueur, vous devez la lier au serveur virtuel d’équilibrage de charge avec le service gRPC.

À l’invite de commandes, tapez :

bind responder global <policyName> <priority> [<gotoPriorityExpression> [-type <type>] [-invoke (<labelType> <labelName>)]

Exemple :

bind lb vserver lb-grpc svc-grpc -policyName grpc-resp-pol1 –priority 100

Pour plus d’informations sur la stratégie de répondeur, consultez la rubrique Stratégie de répondeur .

Expressions de stratégie pour correspondre aux champs tampon du protocole GrPC

L’appliance Citrix ADC prend en charge les expressions de stratégie suivantes dans la configuration GrPC :

  • Accès au champ tampon du protocole GrPC. L’appel d’API GrPC arbitraire correspond au numéro du champ de message avec les nouvelles expressions de stratégie. Dans une configuration IP, les correspondances sont effectuées uniquement en utilisant les « numéros de champ » et le « chemin d’accès API ».

  • Filtrage des en-têtes GrPC. Les paramètres « HttpProfile » pour GrPC sont utilisés pour ajuster le comportement par défaut de l’analyse GrPC (y compris les expressions de stratégie GrPC). Les paramètres suivants s’appliquent aux expressions de stratégie GrPC :

    • Délimitation de la longueur du GRPC. Il est activé par défaut et s’attend à ce que les tampons de protocole soient présentés avec un message délimité par la longueur.

    • Limite de cholestérol GRP. La valeur par défaut est 131072. Il s’agit de la taille maximale du message tampon de protocole en octets. Il s’agit également de la longueur de chaîne maximale et de la longueur maximale du champ « octet ».

Configurer les expressions de stratégie avancée GrPC à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set ns httpProfile <name> -http2 \( ENABLED | DISABLED ) -gRPCLengthDelimitation \( ENABLED | DISABLED ) -gRPCHoldLimit <int>

Exemple :

set ns httpProfile http2gRPC -http2 ENABLED -gRPCLengthDelimitation ENABLED -gRPCHoldLimit 131072

Configurer les paramètres de filtrage des en-têtes GrPC à l’aide de l’interface graphique

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.

  2. Sur la page Créer un profil HTTP, faites défiler jusqu’à la section HTTP/3, sélectionnez Délimitation de longueur GrPC.

    Délimitation de la longueur GrPC

L’exemple d’expression de stratégie suivant montre une valeur dans le message 5, le sous-message 4 et le champ 3. Il s’agit d’un int 32 bits égal à 2.

http.req.body(1000).grpc.message(5).message(4).int32(3).eq(2)

Les expressions de stratégie suivantes sont ajoutées pour correspondre aux champs de message tampon du protocole GrPC par numéro :

  • message
  • double
  • flotte
  • int32
  • int64
  • uint32
  • uint64
  • sint64
  • sint32
  • fixed32
  • fixed64
  • sfixed32
  • sfixed64
  • Bool
  • string
  • enum
  • octets

Correspondance des chemins API

La correspondance du chemin d’accès de l’API est utilisée pour correspondre à l’appel d’API GrPC correct lorsque plusieurs API sont utilisées. Faites correspondre le chemin d’accès de l’API, qui se trouve dans le pseudo en-tête « : path » de la requête HTTP.

Exemple :

http.req.header(":path").eq("acme.inventory.v1/ListBooks")
GrPC avec la stratégie de répondeur