从ipv6 dhcp服务器获取IP

我有以下实验室:

DHCP服务器[Centos 6]

/etc/dhcp/dhcpd6.conf default-lease-time 2592000; preferred-lifetime 604800; option dhcp-renewal-time 3600; option dhcp-rebinding-time 7200; allow leasequery; option dhcp6.info-refresh-time 21600; dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases"; subnet6 3ffe:501:ffff:100::/64 { } host ipv6host { hardware ethernet 53:54:00:70:1d:ed; fixed-address6 3ffe:501:ffff:100::222; if packet(0,1) = 1 { log(debug,"Request match!"); } } # ip -6 addr show 5: eth1.30@if3: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 inet6 3ffe:501:ffff:100::4/64 scope global valid_lft forever preferred_lft forever 

在客户端没有特殊的configuration。 然后,运行dhcp服务器,我得到以下输出:

 Internet Systems Consortium DHCP Server 4.1.1-P1 Copyright 2004-2010 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file Wrote 0 deleted host decls to leases file. Wrote 0 new dynamic host decls to leases file. Wrote 0 leases to leases file. Bound to *:547 Listening on Socket/5/eth1.30/3ffe:501:ffff:100::/64 Sending on Socket/5/eth1.30/3ffe:501:ffff:100::/64 Solicit message from fe80::5054:ff:fe70:1ded port 546, transaction ID 0xDF54D000 Request match! Request match! Sending Advertise to fe80::5054:ff:fe70:1ded port 546 Solicit message from fe80::5054:ff:fe70:1ded port 546, transaction ID 0xDF54D000 Request match! Request match! Sending Advertise to fe80::5054:ff:fe70:1ded port 546 ... and more 

在客户端,我得到以下运行客户端:

 dhclient -6 -d eth1 Internet Systems Consortium DHCP Client 4.1.1-P1 Copyright 2004-2010 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Bound to *:546 Listening on Socket/eth1 Sending on Socket/eth1 PRC: Soliciting for leases (INIT). XMT: Forming Solicit, 0 ms elapsed. XMT: X-- IA_NA 00:70:1d:ed XMT: | X-- Request renew in +3600 XMT: | X-- Request rebind in +5400 XMT: Solicit on eth1, interval 1010ms. XMT: Forming Solicit, 1010 ms elapsed. XMT: X-- IA_NA 00:70:1d:ed XMT: | X-- Request renew in +3600 XMT: | X-- Request rebind in +5400 XMT: Solicit on eth1, interval 2070ms. 

正如你所看到的,似乎服务器从客户端获取请求并匹配主机条目。 我不知道为什么客户端没有得到IP。

注意:客户端是虚拟机,在虚拟机pipe理程序中,vnic与eth1.30连接。 节点之间的stream量是可以的。

解决了!

问题是ip6tables。 默认规则阻止从DHCP服务器发布广告。

 service ip6tables stop 

将解决这个问题。 看看其他答案的意见,因为似乎我使用的范围不好。

重要 。 至less有2个Centos 6盒(服务器和客户端)使用MAC地址分配ip工作正常。

来源: http : //www.redhat.com/archives/anaconda-devel-list/2010-November/msg00172.html

在DHCPv6中,客户端不再标识其MAC地址,而是具有DUID(客户端的所有接口都是相同的,因此理论上更容易识别客户端)。 因此,您还应该将主机定义放在子网内。 根据接口和DUID组合,系统可能有不同的地址。 这是Linux IPv6的例子:

 default-lease-time 600; max-lease-time 7200; log-facility local7; subnet6 2001:db8:0:1::/64 { # Range for clients range6 2001:db8:0:1::129 2001:db8:0:1::254; # Range for clients requesting a temporary address range6 2001:db8:0:1::/64 temporary; # Additional options option dhcp6.name-servers 2001:4860:4860::8888; option dhcp6.domain-search "domain.example"; # Prefix range for delegation to sub-routers prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56; # Example for a fixed host address host specialclient { host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01:23:45; fixed-address6 2001:db8:0:1::127; } } 

您可以从服务器日志中获取客户端的DUID,也可以从客户端提取客户端的DUID。 这是parsingdhcp6c创build的用于存储生成的DUID的文件的示例:

 hexdump -e '"%07.7_ax " 1/2 "%04x" " " 14/1 "%02x:" "\n"' /var/lib/dhcpv6/dhcp6c_duid 

所有的例子都是基于那些如何做的 。