AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 571951
Accepted
Debianuser
Debianuser
Asked: 2014-02-04 14:16:57 +0800 CST2014-02-04 14:16:57 +0800 CST 2014-02-04 14:16:57 +0800 CST

具有多个作用域的 Linux dhcpd 服务器根据请求源分配 IP

  • 772

我在同一个接口(eth0)上配置了一个具有多个范围的 Linux dhcpd 服务器。需要这些 IP 地址的设备(DHCP 客户端)位于两个不同的远程网络上。网络团队已完成所有配置,包括中间的 DHCP 中继,因此请求以以下格式到达我的 DHCP 服务器:

DHCPDISCOVER from macaddress via 10.238.16.10 (remote_network_1)

DHCPDISCOVER from macaddress via 10.238.25.20 (remote_network_2)

(我认为上面提到的 IP 属于将 DHCP 请求转发到我的服务器的远程路由器。)

现在,DHCP 服务器成功地将 IP 从第一个配置的范围(10.238.16.x)分配给从 remote_network_1 和 remote_network_2 请求的客户端。

如何配置它,以便当请求来自 10.238.16.10 时,它分配一个 10.238.16.X IP,当它来自 10.238.25.20 时,它分配一个 10.238.25.X IP。

我知道还有其他方法可以解决这个问题——比如将 dhcpd 配置为监听两个不同的接口等,但这对我不起作用。

我尝试了“选项广播地址”,但没有奏效。

我的 dhcpd.conf:

ddns-update-style none;

default-lease-time 6000;
max-lease-time 72000;

authoritative;

log-facility local7;


subnet 10.238.24.0 netmask 255.255.255.248 {
}

shared-network DA {
    subnet 10.238.16.0 netmask 255.255.255.0{
        range 10.238.16.52 10.238.16.254;
        option routers 10.238.24.9;     
        option broadcast-address 10.238.16.255;
    }

    subnet 10.238.25.0 netmask 255.255.255.0{
        range 10.238.25.52 10.238.25.254;
        option routers 10.238.24.9;
        option broadcast-address 10.238.25.255;
    }

}

从系统日志:

Feb  3 13:32:18 linux-server dhcpd: DHCPDISCOVER from b8:5e:7b:1e:c2:89 via 10.238.25.20
Feb  3 13:32:19 linux-server dhcpd: DHCPOFFER on 10.238.16.53 to b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb  3 13:32:19 linux-server dhcpd: DHCPREQUEST for 10.238.16.53 (10.238.24.20) from b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb  3 13:32:19 linux-server dhcpd: DHCPACK on 10.238.16.53 to b8:5e:7b:1e:c2:89 (android-ba98679bfc07f0cb) via 10.238.25.20
Feb  3 13:35:40 linux-server dhcpd: DHCPDISCOVER from 40:f3:08:89:3f:13 via 10.238.16.10
Feb  3 13:35:41 linux-server dhcpd: DHCPOFFER on 10.238.16.54 to 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
Feb  3 13:35:41 linux-server dhcpd: DHCPREQUEST for 10.238.16.54 (10.238.24.20) from 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
Feb  3 13:35:41 linux-server dhcpd: DHCPACK on 10.238.16.54 to 40:f3:08:89:3f:13 (android-47aa390064e91817) via 10.238.16.10
linux
  • 2 2 个回答
  • 9124 Views

2 个回答

  • Voted
  1. hcsteve
    2014-02-21T11:17:27+08:002014-02-21T11:17:27+08:00

    删除了shared-network部分。这不是共享网络。你只需要两个范围。来自man dhcpd.conf:

    shared-network 语句用于通知 DHCP 服务器某些 IP 子网实际上共享相同的物理网络。共享网络中的任何子网都应在 shared-network 语句中声明。在这些子网上引导客户端时将使用 shared-network 语句中指定的参数,除非在子网或主机级别提供的参数覆盖它们。如果共享网络中的任何子网具有可用于动态分配的地址,则这些地址将被收集到该共享网络的公共池中,并根据需要分配给客户端。无法区分客户端应在共享网络的哪个子网上引导。

    您还应该修复option routers每个子网中的线路。此行应列出每个网络的默认网关。

    • 1
  2. Best Answer
    Debianuser
    2014-04-26T00:18:21+08:002014-04-26T00:18:21+08:00

    最后我们发现最好的方法是配置 DHCPD 以根据设备 MAC 地址分配静态 IP。

    我们控制连接到这些网络的设备,而且数量有限,因此该解决方案适合我们。这是一些额外的工作,但也增加了一些安全性。

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve