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 / 问题 / 791613
Accepted
Arseni Mourzenko
Arseni Mourzenko
Asked: 2016-07-24 16:20:50 +0800 CST2016-07-24 16:20:50 +0800 CST 2016-07-24 16:20:50 +0800 CST

我可以防止 Debian 在安装过程中两次访问 DHCP 服务器吗?

  • 772

我有一个 DHCP 服务器用于无人值守安装 Debian:从 PXE 引导,然后使用预种子安装操作系统。

DHCP 服务器(Debian 的isc-dhcp-server软件包)被配置为在分发新租约时执行操作(执行 HTTP POST):

subnet 192.168.0.0 netmask 255.255.252.0 {
    [...]
    filename "pxelinux.0";

    on commit {
        set client_ip = binary-to-ascii(10, 8, ".", leased-address);
        execute("curl", "-X", "POST", [...])
    }
}

[...]

host vmhost2 {
    hardware ethernet 00:19:66:60:c3:61;
    fixed-address 192.168.1.13;
}

我注意到在无人值守的安装过程中,HTTP POST 进行了两次:第一次是在机器启动几秒钟后(这是预期的),大约三十秒后 Debian 安装程序正在配置网络。

我没想到第二个请求。其实这是对应的preseed配置:

di netcfg/get_hostname 字符串 vmhost2
di netcfg/get_domain 字符串 pelicandd.com

di netcfg/choose_interface 选择自动
di netcfg/disable_autoconfig 布尔值 true
di netcfg/disable_dhcp 布尔值 true
di netcfg/dhcp_failed 说明
di netcfg/dhcp_options 选择手动配置网络

di netcfg/get_ipaddress 字符串 192.168.1.13
di netcfg/get_netmask 字符串 255.255.252.0
di netcfg/get_gateway 字符串 192.168.1.1
di netcfg/get_nameservers 字符串 192.168.1.3 192.168.1.4 8.8.8.8 8.8.4.4
di netcfg/confirm_static boolean true

我认为该netcfg/disable_dhcp选项表明安装程序不需要联系 DHCP 服务器,但它仍然需要。

问题:

  • 尽管有预置选项,为什么安装程序第二次联系 DHCP 服务器?

  • 有没有办法阻止它这样做,或者通过预置选项,或者通过修改 ISC DHCP 服务器的配置以忽略第二个租约?

dhcp isc-dhcp preseed
  • 1 1 个回答
  • 1679 Views

1 个回答

  • Voted
  1. Best Answer
    Pat
    2016-07-25T01:26:54+08:002016-07-25T01:26:54+08:00

    第一个 DHCP DORA(发现、提供、请求、接受)序列由尝试查找 IP/MASK 和 PXE 数据(NBP + TFTP 位置)的客户端 PXE 固件触发。

    PXE 固件然后 TFTP 检索并运行相应的内核+initrd。当这个内核开始运行时,它需要一个 IP/MASK,然后它会触发第二个 DHCP DORA 序列(这是一个常规的“非 PXE”DHCP 请求)

    为了避免第二次 DHCP 命中,您必须在“内核”命令行上手动设置静态网络配置;您不能在必须通过网络检索的压缩文件上设置此信息,因为内核将被迫使用 DHCP 来使其网络服务正常工作以检索预种子文件...您能看到鸡蛋问题吗?

    您可以将相应的静态网络预置变量“附加”到内核命令行或使用 Pxelinuxipappend命令。

    注意:请考虑在 preseed 文件或内核命令行中使用 preseed 变量的语法略有不同,即:

    d-i netcfg/get_ipaddress string 192.168.1.13     <<< preseed file
    netcfg/get_ipaddress=192.168.1.13                <<< kernel command line
    

    决赛append应该是这样的。去掉换行符,这里添加的只是为了增强可读性和防止水平滚动。

    append
        [...]
        netcfg/get_ipaddress=192.168.1.13
        netcfg/get_netmask=255.255.252.0
        netcfg/get_gateway=192.168.1.1
        netcfg/get_nameservers=192.168.1.3
        netcfg/disable_autoconfig=true
    
    • 4

相关问题

  • DHCP 无法更新 DNS,没有 Active Directory

  • 在 SBS 2008 上禁用 DHCP?

  • 如何在 Ubuntu 中设置搜索域(和其他 resolv.conf 参数)?

  • DHCP/网络问题

  • 在一个 LAN 中使用两台 DHCP 服务器

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