rougail/doc/service/ip.md

2.0 KiB

La gestion d'une IP

La balise IP

La gestion des IP se fait dans un conteneur de service.

La déclaration de l'attribut permet d'associer une IP autorisé à accéder au service.

Il est nécessaire, au minimum, de spécifier son adresse IP et l'interface :

<ip interface="ens3">192.168.0.1</ip>

L'IP peut être un variable :

<ip interface="ens3" ip_type="variable">variable_ip</ip>

Attention, la variable doit être de type "network".

La gestion d'un réseau

L'adresse IP peut être un réseau :

<ip interface="ens3" netmask="255.255.255.0">192.168.0.0</ip>

Le masque de réseau peut être un variable :

<ip interface="ens3" netmask_type="variable" netmask="variable_netmask" ip_type="variable">variable_ip</ip>

Attention, la variable doit être de type "netmask".

L'interface

Il est possible de spécifier le nom de l'interface si on la connait :

<ip interface="ens3">192.168.0.1</ip>

Mais il est possible de calculer automatiquement cette valeur :

<ip interface="auto">192.168.0.1</ip>

Dans ce cas l'interface est déduite à partir de la table de routage.

L'interface peut être un variable :

<ip interface="my_variable" interface_type="variable">192.168.0.1</ip>

Attention, la variable doit être de type "string".

Désactiver la génération d'une IP

Il est possible de définir une condition de type "disabled_if_in" ou "disabled_if_not_in" sur une balise IP :

<services>
    <service name="test">
        <ip interface="ens3" iplist="test_ip">192.168.0.1</ip>
    </service>
</services>
<variables>
    <variable name="condition" type="boolean"/>
</variables>
<constraints>
    <condition name="disabled_if_in" source="condition">
        <param>False</param>
        <target type="iplist">test_ip</target>
    </condition>
</constraints>

Dans ce cas, tous les IP avec un attribut iplist à "test_ip" seront désactivé si la variable "condition" est False.