rougail/doc/service/ip.md

85 lines
2.0 KiB
Markdown

# La gestion d'une IP
## La balise IP
La gestion des IP se fait dans un conteneur de [service](service.md).
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](../condition/README.md) 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.