使用 DHCP 和 DNS 配置具有不同主机名的多个接口

Rie*_*ies 5 freebsd networking ubuntu dns dhcp

我有一台运行 Ubuntu 12.04 服务器的机器,有两个接口(eth0、eth1)连接到网络。我们的网络被设置为一个基于 FreeBSD 的 DHCP 服务器分发租约,并将客户端提供的主机名注册到同一网络上的 DNS 服务器。

这两个接口需要有不同的主机名才能在 DNS 上注册。在 /etc/network/interfaces 中,我为 eth1 添加了主机名:

# The primary network interface (hostname: host0)
auto eth0
iface eth0 inet dhcp

# Secondary interface 
auto eth1
iface eth1 inet dhcp
  hostname host1
Run Code Online (Sandbox Code Playgroud)

dhcp 客户端配置如下所示:

    option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

    send host-name "<hostname>";
    request subnet-mask, broadcast-address, time-offset, routers,
            domain-name, domain-name-servers, domain-search, host-name,
            netbios-name-servers, netbios-scope, interface-mtu,
            rfc3442-classless-static-routes, ntp-servers,
            dhcp6.domain-search, dhcp6.fqdn,
            dhcp6.name-servers, dhcp6.sntp-servers;
Run Code Online (Sandbox Code Playgroud)

获得的租约如下所示:


# /var/run/resolvconf/interface/eth0.dhclient
lease {
  interface "eth0";
  fixed-address 192.168.28.249;
  option subnet-mask 255.255.255.0;
  option routers 192.168.28.30;
  option dhcp-lease-time 129600;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.28.1,192.168.24.58;
  option dhcp-server-identifier 192.168.28.1;
  option ntp-servers 192.168.28.1,192.168.58.43,192.168.24.58;
  option broadcast-address 192.168.28.255;
  option domain-name "some.org";
  renew 4 2014/02/20 01:00:39;
  rebind 4 2014/02/20 15:31:19;
  expire 4 2014/02/20 20:01:19;
}

# /var/run/resolvconf/interface/eth1.dhclient
lease {
  interface "eth1";
  fixed-address 192.168.19.69;
  option subnet-mask 255.255.255.0;
  option routers 192.168.19.30;
  option dhcp-lease-time 129600;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.28.1,192.168.24.58;
  option dhcp-server-identifier 192.168.28.1;
  option ntp-servers 192.168.28.1,192.168.58.43,192.168.24.58;
  option broadcast-address 192.168.19.255;
  option domain-name "some.org";
  renew 3 2014/02/19 21:56:46;
  rebind 4 2014/02/20 15:30:42;
  expire 4 2014/02/20 20:00:42;
}
Run Code Online (Sandbox Code Playgroud)

我无法控制 FreeBSD DHCP 服务器,但被告知租用记录为:


#####################
lease 192.168.28.249 {
starts 5 2014/02/14 03:24:14;
ends 6 2014/02/15 15:24:14;
cltt 5 2014/02/14 03:24:14;
binding state active;
next binding state free;
hardware ethernet 00:01:02:03:04:12;
set ddns-rev-name = "249.28.168.192.in-addr.arpa.";
set ddns-fwd-name = "host0.dhcp.some.org";
client-hostname "host0";
on expiry or release {
switch (ns-update (delete (1, 12, ddns-rev-name, null))) {
case 0:
unset ddns-rev-name ;
break;
}
switch (ns-update (delete (1, 1, ddns-fwd-name, leased-address))) {
case 0:
unset ddns-fwd-name ;
break;
}
on expiry or release;
}
}
lease 192.168.19.69 {
starts 4 2014/02/13 14:40:47;
ends 6 2014/02/15 02:40:47;
cltt 4 2014/02/13 14:40:47;
binding state active;
next binding state free;
hardware ethernet 00:01:02:03:04:14;
client-hostname "host0";
}

#####################
Run Code Online (Sandbox Code Playgroud)

在服务器端的两个租约中,客户端主机名的值为“host0”。请注意,租用是在两个不同的子网中分发的:192.168.28.0 和 192.168.19.0。

我的 /etc/network/interfaces 配置是将辅助接口的主机名发送到 DHCP 服务器所需的全部吗?如果是这样,我还应该在客户端检查什么以进行调试?

(IP地址和MAC地址被修改以隐藏真实值)

mjt*_*ner 5

我不能 100% 确定您想要的东西是否完全可以通过在/etc/network/interfaces.

理论上,可以通过编辑/etc/dhcp/dhclient.conf. 尝试添加一个节,如:

interface "eth0" {
    send host-name "host0";
}

interface "eth1" {
    send host-name "host1";
}
Run Code Online (Sandbox Code Playgroud)

确保该文件中的任何其他主机名选项都被注释掉并删除您在/etc/network/interfaces.


von*_*and 1

在 Linux 中,您可以将虚拟接口添加到物理接口,并单独配置和管理它们(由于一些长期被遗忘的扭曲原因,我们的工作站一度生活在两个不同的 IP 网络中,在同一条电缆上运行)。所以你真的不需要两个以太网卡,它们可能只会互相干扰。

我不知道 DHCP 是否可以配置虚拟接口。我猜不是,它的任务是分配网络参数,并且可能只涵盖常见情况。

  • 如果两个物理网卡互相“干扰”,则该系统上的某些东西会严重损坏。 (2认同)