mem

Resumen

Descripción

El componente mem permite la creación de RBLs que utiliza la información del contenido de un fichero en formato xlist o de un array de datos que se de en la misma definición. Para ello, el componente cargará en memoria la información.

Configuración

  • El valor de class debe de ser mem.

  • Admite ip4, ip6 y domain en el campo resources.

  • El campo source NO es obligatorio, si se utiliza, deberá indicar el path path al fichero xlist del que cargará la información.

  • Admite campos opcionales en opts.

Tabla 1. Campos opcionales de mem
Opción Tipo de dato Explicación

reason

string

motivo que devolverá en caso de resultado afirmativo

data

[]map[string]string

datos a cargar

Ejemplos de uso

Uso básico

Para crear una lista mem es necesario definir el identificador, la clase mem y los tipos de recurso que va a ofrecer. El componente únicamente realizará la carga de datos durante su inicialización.

Ejemplo de lista mem vacía
[
    {
        "id": "mem1",
        "class": "mem",
        "name": "Empty memory list",
        "resources": [
            "ip4",
            "domain"
        ]
    }
]

En la configuración del Ejemplo de lista mem vacía tenemos una lista vacía que responderá a todas las solicitudes de tipo ip4 y domain devolviendo que no existe el recurso.

Ejemplo de lista mem desde fichero
[
    {
        "id": "mem2",
        "class": "mem",
        "name": "Memory list from file",
        "resources": [
            "ip4",
            "domain"
        ],
        "source": "testfile1.xlist"
    }
]

En la configuración del Ejemplo de lista mem desde fichero tenemos una lista que utilizará el fichero testfile1.xlist como origen de datos.

El path definido en source puede ser relativo o absoluto. En caso de que sea relativo, se hará de acuerdo al parámetro de configuración xlist.sourcesdir. Si este parámetro no se indica, se usará el directorio actual.
Recuerde que la carga de datos de este componente únicamente se realiza durante la inicialización, por lo que si cambia el contenido del fichero NO se reflejarán los cambios hasta el siguiente reinicio del servicio. Para el uso de ficheros le recomendamos el componente file.

Uso avanzado

Además del valor estándar de source, el componente ofrece soporte a las opciones de la tabla resumen Campos opcionales de mem que pueden alterar su comportamiento.

Ejemplo de mem con reason
[
    {
        "id": "mem3",
        "class": "mem",
        "name": "Memory list from file with reason",
        "resources": [
            "ip4"
        ],
        "source": "testfile1.xlist",
        "opts": {
            "reason": "ip found"
        }
    }
]
Ejemplo de mem con data
[
    {
        "id": "mem4",
        "class": "mem",
        "name": "Memory list from data with reason",
        "resources": [
            "ip4",
            "domain"
        ],
        "opts": {
            "reason": "found in data",
            "data": [
                {
                    "type": "ip4",
                    "value": "1.1.1.1"
                },
                {
                    "type": "ip4",
                    "value": "1.2.3.4"
                },
                {
                    "type": "domain",
                    "value": "www.micasa.com"
                },
                {
                    "type": "cidr4",
                    "value": "12.1.1.0/24"
                }
            ]
        }
    }
]
Los valores válidos para type son los mismos definidos en el formato xlist.