1 votes

Comment définir un bloc IPv6 /64 dans un hôte virtuel Apache ?

J'ai essayé toutes les combinaisons mais je continue à obtenir l'erreur de redémarrage d'Apache. Quelqu'un sait-il comment définir un bloc à l'intérieur du virtualhost d'Apache ?

<VirtualHost "[2601:9ab4:48af:97::/64]:80" _default_:*>
<VirtualHost [2601:9ab4:48af:97::/64]:80 _default_:*>
<VirtualHost [::/64]:80 _default_:*>
<VirtualHost [::]/64:80 _default_:*>
<VirtualHost [*:/64]:80 _default_:*>

0 votes

Un peu plus de détails sur les raisons pour lesquelles vous essayez de faire cela améliorerait cette question.

2 votes

Voulez-vous vraiment que votre hôte écoute sur 2^64 = 18 446 744 073 709 551 616 adresses IP ? Un VirtualHost est défini dans la documentation d'Apache comme écoutant sur une seule adresse.

0 votes

Pour attraper toutes les adresses IPv6 non définies dans l'hôte virtuel.

3voto

snowdude Points 2790

TLDR ; vous ne pouvez pas utiliser la notation CIDR ou les plages d'adresses IP dans les directives VirtualHost.


Apache est configuré pour répondre aux requêtes soit sur :

  • une seule adresse IP et un seul numéro de port spécifiques avec l'option Listen directive
    Soit une adresse IPv6

    Listen [2601:9ab4:48af:97::1]:80

    ou une adresse IPv4

    Listen 127.0.0.1:80
  • plusieurs adresses IP et numéros de port spécifiques en ajoutant de multiples Listen directives, une pour chaque adresse IP et numéro de port unique.

    Listen [2601:9ab4:48af:97::1]:80
    Listen [2601:9ab4:48af:97::2]:80
    Listen [2601:9ab4:48af:97::3]:80
    Listen 127.0.0.1:80
    Listen 127.0.0.2:81
  • chaque adresse IP configurée sur l'hôte en définissant uniquement le numéro de port :

    Listen 80
    Listen 443

Pour autant que je sache, vous ne pouvez pas utiliser un masque de réseau ou définir une plage d'adresses IP dans la directive Listen.

Une fois qu'apache httpd est configuré pour accepter les connexions entrantes par la ou les directives Listen ci-dessus, vous pouvez éventuellement créer des entrées VirtualHost.

Vous pouvez alors créer Hôtes virtuels basés sur IP (où vous êtes à nouveau limité à une adresse IP spécifique), hôtes virtuels basés sur les noms où le Host: avec un nom de domaine DNS dans les en-têtes de requête http seront traités par l'hôte virtuel avec ce nom d'hôte ou ce modèle de nom d'hôte dans l'en-tête de requête http. ServerName ou ServerAlias et une directive VirtualHost par défaut (généralement la première entrée du VirtualHost) qui gère toutes les demandes qui ne correspondent pas à un VirtualHost plus spécifique basé sur l'IP ou le nom. Voir : https://httpd.apache.org/docs/2.4/vhosts/details.html

2voto

afosbenner Points 29

Tout d'abord, je pense que vous devriez écouter les commentateurs et limiter votre hôte virtuel à une seule adresse IP. Même si vous voulez essayer d'en écouter plus d'une, essayez d'abord d'en faire fonctionner une.

Deuxièmement, je ne pense pas que vous ayez besoin des guillemets autour de l'adresse IP.

Troisièmement, avez-vous essayé l'une d'entre elles sans la notation CIDR "/64" ? En utilisant la deuxième ligne comme exemple :

<VirtualHost [2601:9ab4:48af:97::]:80>

Je ne vois rien sur la notation CIDR dans la documentation d'Apache :

https://httpd.apache.org/docs/2.4/mod/core.html#virtualhost

2 votes

J'ai essayé mais ça n'attrape rien

1 votes

Ce que vous devez faire ici est d'avoir la ligne `<VirtualHost *:80> dans votre fichier de configuration apache. Ensuite, dans votre configuration réseau, listez chacune des 18 quintillions d'adresses IPv6 comme interfaces individuelles dans votre système. Notez que vous aurez probablement besoin de quelques pétaoctets pour stocker le fichier de configuration réseau. Vous aurez également besoin d'une réécriture massive du noyau pour permettre un tel nombre d'interfaces.

1 votes

Assurez-vous également que personne d'autre ne se trouve sur le réseau avec cette adresse déjà utilisée, sinon vous obtiendrez des conflits d'adresses. Si vous utilisez ping6 -c1 sur chaque adresse, vous pourriez finir de vérifier le réseau avant la fin de l'univers.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X