response

Resumen

Descripción

El envoltorio response realiza cambios en las respuestas retornadas por el componente.

Configuración

  • El valor de class debe de ser response.

  • Admite campos opcionales en opts.

Tabla 1. Listado de campos opcionales de response
Opción Tipo de dato Explicación

clean

boolean

limpia de la razón los datos de políticas y puntuaciones

aggregate

boolean

realiza el agregado de los datos de puntuaciones y políticas

threshold

int

establece un umbral de puntuación para que devuelva una respuesta afirmativa

negate

boolean

invierte la respuesta

ttl

int

sobreescribe el ttl en caso de respuesta afirmativa

negativettl

int

sobreescribe el ttl en caso de respuesta negativa

reason

string

sobreescribe la razón de la respuesta

prefixid

string

establece el identificador de la definición de la lista como prefijo en las respuestas

prefix

string

agrega el prefijo a las respuestas

Ejemplos de uso

Uso básico

Ejemplo de response con reason y ttl
[
    {
        "id": "response1",
        "class": "mock",
        "resources": [
            "ip4"
        ],
        "source": "true",
        "opts": {
            "reason": "mock response"
        },
        "wrappers": [
            {
                "class": "response",
                "opts": {
                    "reason": "response1 response",
                    "ttl": 30
                }
            }
        ]
    }
]

El resultado de Ejemplo de response con reason y ttl será:

$ xlistc 1.1.1.1
ip4,1.1.1.1: true,"response1 response",30 (828.807µs)
Ejemplo de response con negate
[
    {
        "id": "response2",
        "class": "mock",
        "resources": [
            "ip4"
        ],
        "source": "false,true",
        "wrappers": [
            {
                "class": "response",
                "opts": {
                    "negate": true,
                    "reason": "response1 response"
                }
            }
        ]
    }
]

El resultado de Ejemplo de response con negate será:

$ xlistc 1.1.1.1
ip4,1.1.1.1: true,"response1 response",0 (880.92µs)
$ xlistc 2.2.2.2
ip4,2.2.2.2: false,"",0 (616.196µs)
Ejemplo de response con preffixid
[
    {
        "id": "response3",
        "class": "dnsxl",
        "resources": [
            "ip4"
        ],
        "source": "b.barracudacentral.org",
        "opts": {
            "resolvreason": true
        },
        "wrappers": [
            {
                "class": "response",
                "opts": {
                    "preffixid": true
                }
            }
        ]
    }
]

El resultado de Ejemplo de response con preffixid será:

$ xlistc 127.0.0.2
ip4,127.0.0.2: true,"response3: Client host blocked using Barracuda Reputation, see http://www.barracudanetworks.com/reputation/?r=1&ip=127.0.0.2",299 (375.87615ms)

Uso avanzado

Ejemplo de response con aggregate y threshold
[
    {
        "id": "blacklist1",
        "class": "mem",
        "resources": [
            "ip4"
        ],
        "opts": {
            "reason": "blacklist1 response",
            "data": [
                {
                    "type": "ip4",
                    "value": "1.1.1.1"
                },
                {
                    "type": "ip4",
                    "value": "2.2.2.2"
                }
            ]
        }
    },
    {
        "id": "blacklist2",
        "class": "mem",
        "resources": [
            "ip4"
        ],
        "opts": {
            "reason": "blacklist2 response",
            "data": [
                {
                    "type": "ip4",
                    "value": "1.1.1.1"
                },
                {
                    "type": "ip4",
                    "value": "3.3.3.3"
                }
            ]
        }
    },
    {
        "id": "response4",
        "class": "sequence",
        "resources": [
            "ip4"
        ],
        "contains": [
            {
                "id": "blacklist1",
                "wrappers": [
                    {
                        "class": "score",
                        "opts": {
                            "value": 10
                        }
                    }
                ]
            },
            {
                "id": "blacklist2",
                "wrappers": [
                    {
                        "class": "score",
                        "opts": {
                            "value": 10
                        }
                    }
                ]
            }
        ],
        "wrappers": [
            {
                "class": "response",
                "opts": {
                    "aggregate": true,
                    "threshold": 10
                }
            }
        ]
    }
]
$ xlistc 1.1.1.1
ip4,1.1.1.1: true,"[score]20[/score]blacklist1 response;blacklist2 response",0 (780.512µs)
$ xlistc 2.2.2.2
ip4,2.2.2.2: false,"",0 (646.086µs)
$ xlistc 3.3.3.3
ip4,3.3.3.3: false,"",0 (880.809µs)