web-dev-qa-db-fra.com

DNSMASQ: Mappage de 2 adresses MAC à la même adresse IP

Est-il possible de cartographier 2 adresses MAC différentes à la même adresse IP?

Pour ma sauvegarde, je dois me connecter du serveur au portable et j'aimerais avoir la même adresse IP à la fois pour le sans fil et l'interface câblée.

L'interface Web OpenWrt n'accepte pas plusieurs entrées DHCP avec la même adresse IP, mais peut-être une solution de contournement?

Clarification ajoutée le 23 mai:

J'aurais dû préciser que Une seule des interfaces réseau du portable est connectée au réseau à une heure donnée (par conséquent, les commutateurs ne devraient pas obtenir confus). Au départ, j'ai eu 2 adresses IP distinctes attribuées aux interfaces, avec le même nom DNS, mais cela ne fonctionnait pas très bien (délais d'attente lorsque j'ai eu la mauvaise adresse IP). Pourtant, je veux utiliser le même nom pour les deux, car il est codé dur dans mon script de sauvegarde.

Désolé pour la confusion.

18
sleepyMonad

(Commentaire semi-apprécié aléatoire: Il est rare de voir ce nombre de réponses et de commentaires imprécis inconstructifs et simples à une question)

Contrairement aux autres ici, je prétends que votre demande est en fait assez élémentaire et a été prise en charge dans DNSMASQ depuis la version 2.46 , IIRC. C'était la seule raison pour laquelle je - commutée de DD-WRT . Après environ une année d'OpenWrt, je sais maintenant qu'il y a de nombreuses raisons de changer, mais c'est à côté du point.

Je cours Backfire 10.04-RC4 :

May 23 17:45:16 gateway dnsmasq[1925]: started, version 2.55 cachesize 150

Ma configuration:

$ cat /etc/config/dhcp

config 'dnsmasq'
    option 'domainneeded' '1'
    option 'boguspriv' '1'
    option 'localise_queries' '1'
    option 'rebind_protection' '1'
    option 'rebind_localhost' '1'
    option 'expandhosts' '1'
    option 'authoritative' '1'
    option 'readethers' '1'
    option 'leasefile' '/tmp/dhcp.leases'
    option 'resolvfile' '/tmp/resolv.conf.auto'
    option 'enable_tftp' '1'
    option 'domain' 'domain.net'
    option 'local' '/domain.net/'

config 'dhcp' 'lan'
    option 'interface' 'lan'
    option 'start' '100'
    option 'limit' '150'
    option 'leasetime' 'infinite'

config 'dhcp' 'wan'
    option 'interface' 'wan'
    option 'ignore' '1'
    option 'dynamicdhcp' '0'

config 'dhcp'
    option 'interface' 'dmz'
    option 'start' '100'
    option 'limit' '150'
    option 'leasetime' '12h'

config 'Host'
    option 'name' 'travelmate'
    option 'mac' '00:11:22:33:44:55 aa:bb:cc:dd:ee:ff'
    option 'ip' '192.168.1.111'

config 'Host'
    option 'name' 'mobilitymac'
    option 'mac' '99:88:77:66:55:44 ff:ee:dd:cc:bb:aa'
    option 'ip' '192.168.1.104'

Profitez de la transition sans soudure Cette configuration fournit, toutes les sessions existantes restent vivantes si vous ne prenez pas trop longtemps avec le commutateur.

30
lkraav

J'ai fait un peu de recherche.

La première chose que j'ai apprise, c'est qu'il est possible d'assigner des baux DHCP en fonction des critères autres que d'une adresse MAC.

Du DHCP [~ # ~] FAQ [~ # ~ # ~] :

Qu'est-ce qu'un identifiant client?

Ce qui est appelé l'ID client aux fins du protocole DHCP est tout ce qui est utilisé par le protocole pour identifier l'ordinateur client. Par défaut, les implémentations DHCP utilisent généralement l'adresse MAC du client à cette fin, mais le protocole DHCP permet d'autres options. Certaines implémentations DHCP ont une option de configuration pour spécifier l'ID client que vous souhaitez. Une alternative à l'adresse MAC est simplement une chaîne de caractères de votre choix. Dans tous les cas, pour que DHCP fonctionne, vous devez être certain qu'aucun autre client n'utilise l'ID client que vous avez sélectionné et vous devez être sûr que le serveur DHCP l'acceptera.

Ensuite, bien que cela ne soit apparemment pas pris en charge par l'interface Web LUCI sur OpenWrt, DNSMASQ lui-même prend en charge Client_ID et plusieurs adresses MAC (avec une certaine avertissement).

De la DNSMASQ HOMME :

-G, --dhcp-host = [hwaddr] [ ID: client_id | *] [ SET: Tag] [ iPaddr] [ nom d'hôte] [ lase_time] [ Ignorer] Spécifier par paramètres d'hôte pour le serveur DHCP pour le serveur DHCP . Cela permet à une machine d'une adresse matérielle particulière à attribuer toujours le même nom d'hôte, l'adresse IP et le temps de bail. Un nom d'hôte spécifié comme celui-ci remplace non fourni par le client DHCP sur la machine. Il est également permis d'utiliser l'adresse matérielle et d'inclure le nom d'hôte, auquel cas l'adresse IP et les temps de location s'appliqueront à n'importe quelle machine revendiquant ce nom. Par exemple - dhcp-host = 00: 20: E0: 3b: 13: AF, WAP, infini indique Dnsmasq de donner à la machine Adresse matérielle 00: 20: E0: 3b: 13: AF Le nom WAP et infini DHCP Location. --DHCP-HOST = LAP, 192.168.0.199 Indique à DNSMASQ d'allouer toujours la machine à allouer l'adresse IP 192.168.0.199.

(...)

Il est permis d'utiliser des identificateurs de clients plutôt que des adresses matérielles pour identifier les hôtes par préfixe avec 'ID: ". Ainsi: --Dhcp-host = ID: 01: 02: 03: 04, ..... fait référence à l'hôte avec identifiant client 01: 02: 03: 04. Il est également autorisé à spécifier l'identifiant du client comme texte, comme celui-ci: --DHCP-host = id: clientIdastext, .....

(...)

En tant que cas particulier, il est possible d'inclure plusieurs adresses matérielles. Par exemple: --Dhcp-host = 11: 22: 33: 44: 55: 78: 90: 12,192.168.0.2 Ceci permet une adresse IP d'être associée à plusieurs adresses matérielles et donne la permission DNSMASQ Abandonner un bail DHCP à l'une des adresses matérielles lorsqu'une autre demande un bail. Attention à ce que c'est une chose dangereuse à faire, il ne fonctionnera de manière fiable que si une seule des adresses matérielles est active à tout moment et qu'il n'y a aucun moyen pour DNSMASQ de l'appliquer. C'est, par exemple, utile d'attribuer une adresse IP stable à un ordinateur portable qui a des interfaces câblées et sans fil.

J'ai opté pour la solution multi-Mac (car je n'ai pas essayé de savoir comment je pourrais spécifier l'ID client du côté client, ce qui doit être fait pour chaque client séparé, et l'alternative multi-Mac est une solution pour tous les portables de la maison.)

J'ai contourné l'interface Luci et ajouté directement à /etc/dnsmasq.conf la ligne suivante:

dHCP-HostSfile =/etc/dnsmasq-dhcphosts.conf

et /etc/dnsmasq-dhcphosts.conf contient des lignes du format suivant:

mac1, Mac2, IP

(Je garde cette configuration dans un fichier séparé pour empêcher de l'avoir écrasé par la prochaine mise à jour.)

Fonctionne bien.

6
sleepyMonad

Votre objectif: d'avoir un nom d'ordinateur portable constant-hostern-Of-of-Ordinateur pointer sur l'ordinateur portable (adresse IP active/interface)? J'aurais pensé que le service combiné DNS-and-DHCP de DNSMASQ le ferait, c'est-à-dire un fichier DHCPDiscover/DHCPRequest, il signale son nom d'hôte et DNSMASQ associe le nom d'hôte avec l'adresse IP. Cela a été mon expérience, mais je dois admettre que je n'ai pas essayé de se connecter avec un réseau I/F, puis déconnectez (sans faire une libération explicite) et de se connecter à nouveau avec un autre.

En supposant un nom d'hôte de "ordinateur portable", que se passe-t-il lorsque vous interrogez le périphérique OpenWrt pour "ordinateur portable", après avoir passé une interface à une autre?

1
Norky

Pourquoi utiliser DHCP?

Vous pouvez configurer manuellement une adresse IP statique sur les deux interfaces, puis utilisez celle que vous préférez (tout en laissant l'autre déconnecté, bien sûr).

1
Massimo

Je serais très surpris si votre commutateur peut supporter cela. Vous pourriez avoir plus de chance donnant aux deux interfaces réseau la même adresse MAC.

En disant que, je suis vraiment d'accord avec Holocryptic, voici des dragons.

0
happyhairydude

Non, ce n'est pas possible. Mais la plupart des NICs vous permettent d'administrer administrer le Mac et vous pourriez définir les deux NIC sur le même Mac.

Sur la plupart * NIX Boxen, vous pouvez généralement le faire, puis configurer une interface de basculement Lagg sur les deux (avec préférence pour le câble filaire) pour permettre à votre chariot la connexion câblée sans déconnexion TCP Sessions.

0
Chris S