是否可以映射2个不同的MAC地址到相同的IP地址?
对于我的备份,我需要从服务器连接到便携式计算机,并且我希望为无线和有线接口使用相同的IP。
openwrt web界面不接受多个具有相同IP地址的dhcp条目,但也许有一个解决方法?
23日澄清说 :
我应该明确指出, 在任何时候 , 只有便携式networking接口中的一个networking接口连接到networking (因此交换机不应该感到困惑)。 最初,我有2个不同的IP地址分配给接口,具有相同的DNS名称,但是这不工作得很好(当我得到错误的IP超时)。 但是我想为两者使用相同的名称,因为它在我的备份脚本中是硬编码的。
对困惑感到抱歉。
(随意的半自己的评论:很难看到这个高度的无法解决的,普通的不准确的答案和对一个问题的评论)
与其他人相比,我声称你的请求实际上是相当初级的,并且自从2.46版本以来 , 在dnsmasq中得到了支持 。 这是我从dd-wrt切换的唯一原因。 在运行OpenWRT大约一年之后,我现在知道实际上有更多的理由需要切换,但是这不是重点。
我正在运行Backfire 10.04-rc4 :
May 23 17:45:16 gateway dnsmasq[1925]: started, version 2.55 cachesize 150
我的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'
享受这个设置提供的无缝过渡,所有现有的会话保持活着,如果你不花太长的时间与交换机。
我做了一些研究。
我学到的第一件事就是可以根据MAC地址以外的标准分配DHCP租约。
从dhcp FAQ :
什么是客户端ID?
用于DHCP协议的客户端ID是协议用来识别客户端计算机的内容。 默认情况下,DHCP实现通常使用客户端的MAC地址用于此目的,但DHCP协议允许其他选项。 一些DHCP实现有一个设置选项来指定你想要的客户端ID。 MAC地址的一个替代scheme就是您所select的string。 无论如何,为了使DHCP正常工作,您必须确定没有其他客户端正在使用您select的客户端ID,并且您必须确定DHCP服务器将接受它。
然后,虽然openWRT显然不支持luci web界面,但dnsmasq本身支持client_id和多个MAC地址(有一些警告)。
从dnsmasq 手册页 :
-G,–dhcp-host = [hwaddr] [,id:client_id | *] [,set:tag] [,ipaddr] [,hostname] [,lease_time] [,ignore]指定DHCP服务器的每个主机参数。 这允许具有特定硬件地址的机器始终被分配相同的主机名,IP地址和租用时间。 这样指定的主机名将覆盖机器上的DHCP客户机提供的任何主机名。 也可以省略硬件地址并包含主机名称,在这种情况下,IP地址和租用时间将适用于声明该名称的任何机器。 例如–dhcp-host = 00:20:e0:3b:13:af,wap,infinite会告诉dnsmasq为机器提供硬件地址00:20:e0:3b:13:af名字wap, DHCP租约。 –dhcp-host = lap,192.168.0.199告诉dnsmasq总是分配机器圈IP地址192.168.0.199。
(……)
允许使用客户端标识符而不是硬件地址通过以“id:”作为前缀来标识主机。 因此:–dhcp-host = id:01:02:03:04,…..表示客户端标识符为01:02:03:04的主机。 它也被允许指定客户端ID为文本,如下所示:–dhcp-host = id:clientidastext,…..
(……)
作为特殊情况,可以包含多个硬件地址。 例如:–dhcp-host = 11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2这允许一个IP地址与多个硬件地址关联,并且给出dnsmasq许可当另一个请求租约时放弃DHCP租约到其中一个硬件地址。 请注意,这是一件危险的事情,只有在任何时候只有一个硬件地址处于活动状态,并且dnsmasq无法执行此操作时,它才能可靠工作。 例如,为具有有线和无线接口的笔记本电脑分配稳定的IP地址是有用的。
我select了multi-mac解决scheme(因为我没有试图找出如何在客户端指定客户端ID,这是每个单独的客户端必须完成的事情,而多mac替代scheme是为家中的所有便携式设备提供一个解决scheme。)
我绕过了luci接口,直接添加到/etc/dnsmasq.conf下面一行:
DHCP-hosts文件=的/ etc /的dnsmasq-dhcphosts.conf
和/etc/dnsmasq-dhcphosts.conf包含以下格式的行:
MAC1,MAC2,IP
(我把这个configuration保存在一个单独的文件中,以防止它被下一次更新覆盖。)
工作正常。
您的目标是:让笔记本电脑的常数名称始终指向(笔记本电脑的活动IP地址/接口)? 我以为dnsmasq的组合DNS和DHCP服务会这样做,即当客户端执行DHCPDISCOVER / DHCPREQUEST时报告其主机名,而dnsmasq将主机名与分配的任何IP地址相关联。 这是我的经验,但是我必须承认,我没有尝试连接一个networkingI / F,然后断开连接(没有做一个明确的释放),再次连接。
假设“笔记本电脑”的主机名,在从一个接口切换到另一个接口之后,当您查询“膝上型电脑”的OpenWRT设备时会发生什么?
为什么使用DHCP?
您可以在两个接口上手动configuration一个静态IP地址,然后使用您喜欢的(当然,另一个断开连接)。
如果您的交换机可以支持,我会非常惊讶。 给两个networking接口使用相同的MAC地址可能会有更多的运气。
说,我绝对同意Holocryptic,这里是龙。
不,这是不可能的。 但是大多数网卡允许您以pipe理方式设置MAC,并且可以将两个网卡设置为相同的MAC。
在大多数* nix boxen中,您通常可以执行此操作,然后将两个故障转移LAGG接口设置为(有线连接优先),以便在不断开TCP会话的情况下热插拔有线连接。