• Welcome to LiuJason's Blog!

CentOS7宿主机设置DHCP服务器分配IPv6给虚拟机

Linux笔记 Jason 3 weeks ago (07-20) 64 Views 0 Comments QR code of this page
文章目录[隐藏]

前言

懒….反正就是云筏KVM分配公网IPv6给KVM的实现方式,zkeys不支持IPv6所以我们只能自己来了…

宿主机配置

网卡配置

共网网桥 2a01:4f8:212:1c60::1/128 网关为公网网关
内网网桥 2a01:4f8:212:1c60::1/64 网关留空

路由配置

简单来说2a01:4f8:212:1c60::1/64全部走内网网桥,其余流量走公网网桥
ip -6 route自己看看del还是add

安装和配置DHCP服务

yum install dhcp -y
cp /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example /etc/dhcp/dhcpd6.conf
#覆盖掉

然后就是配置DHCPv6的网段了,先看看官方给的例子:

[[email protected] ~]# cat /etc/dhcp/dhcpd6.conf
# Server configuration file example for DHCPv6
# From the file used for TAHI tests.

# IPv6 address valid lifetime
#  (at the end the address is no longer usable by the client)
#  (set to 30 days, the usual IPv6 default)
default-lease-time 2592000;

# IPv6 address preferred lifetime
#  (at the end the address is deprecated, i.e., the client should use
#   other addresses for new connections)
#  (set to 7 days, the  usual IPv6 default)
preferred-lifetime 604800;

# T1, the delay before Renew
#  (default is 1/2 preferred lifetime)
#  (set to 1 hour)
option dhcp-renewal-time 3600;

# T2, the delay before Rebind (if Renews failed)
#  (default is 3/4 preferred lifetime)
#  (set to 2 hours)
option dhcp-rebinding-time 7200;

# Enable RFC 5007 support (same than for DHCPv4)
allow leasequery;

# Global definitions for name server address(es) and domain search list
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
option dhcp6.domain-search "test.example.com","example.com";

# Set preference to 255 (maximum) in order to avoid waiting for
# additional servers when there is only one
##option dhcp6.preference 255;

# Server side command to enable rapid-commit (2 packet exchange)
##option dhcp6.rapid-commit;

# The delay before information-request refresh
#  (minimum is 10 minutes, maximum one day, default is to not refresh)
#  (set to 6 hours)
option dhcp6.info-refresh-time 21600;

# The path of the lease file
dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases";

# Static definition (must be global)
host myclient {
        # The entry is looked up by this
        host-identifier option
                dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;

        # A fixed address
        fixed-address6 3ffe:501:ffff:100::1234;

        # A fixed prefix
        fixed-prefix6 3ffe:501:ffff:101::/64;

        # Override of the global definitions,
        # works only when a resource (address or prefix) is assigned
        option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e;

        # For debug (to see when the entry statements are executed)
        #  (log "sol" when a matching Solicitation is received)
        ##if packet(0,1) = 1 { log(debug,"sol"); }
}

host otherclient {
        # This host entry is hopefully matched if the client supplies a DUID-LL
        # or DUID-LLT containing this MAC address.
        hardware ethernet 01:00:80:a2:55:67;

        fixed-address6 3ffe:501:ffff:100::4321;
}

# The subnet where the server is attached
#  (i.e., the server has an address in this subnet)
subnet6 3ffe:501:ffff:100::/64 {
        # Two addresses available to clients
        #  (the third client should get NoAddrsAvail)
        range6 3ffe:501:ffff:100::10 3ffe:501:ffff:100::11;

        # Use the whole /64 prefix for temporary addresses
        #  (i.e., direct application of RFC 4941)
        range6 3ffe:501:ffff:100:: temporary;

        # Some /64 prefixes available for Prefix Delegation (RFC 3633)
        prefix6 3ffe:501:ffff:100:: 3ffe:501:ffff:111:: /64;
}

# A second subnet behind a relay agent
subnet6 3ffe:501:ffff:101::/64 {
        range6 3ffe:501:ffff:101::10 3ffe:501:ffff:101::11;

        # Override of the global definitions,
        # works only when a resource (address or prefix) is assigned
        option dhcp6.name-servers 3ffe:501:ffff:101:200:ff:fe00:3f3e;

}

# A third subnet behind a relay agent chain
subnet6 3ffe:501:ffff:102::/64 {
        range6 3ffe:501:ffff:102::10 3ffe:501:ffff:102::11;
}

其实并用不到这么多参数,自己改改就好了

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 2a01:4f8:212:1c60::/64 {
range6 2a01:4f8:212:1c60::1000 2a01:4f8:212:1c60::2000;
option dhcp6.name-servers 2001:4860:4860::8888;
option dhcp6.domain-search “kvm.cloudraft”;
}

测试配置

宿主机

[[email protected] ~]# service dhcpd6 status
Redirecting to /bin/systemctl status dhcpd6.service
● dhcpd6.service - DHCPv6 Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/dhcpd6.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-07-20 09:56:49 CEST; 9s ago
     Docs: man:dhcpd(8)
           man:dhcpd.conf(5)
 Main PID: 9653 (dhcpd)
   Status: "Dispatching packets..."
    Tasks: 1
   CGroup: /system.slice/dhcpd6.service
           └─9653 /usr/sbin/dhcpd -f -6 -cf /etc/dhcp/dhcpd6.conf -user dhcpd -group dhcpd --no-...

Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: 
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: 
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: No subnet6 declaration for ens5 (no IPv6 addresses).
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: ** Ignoring requests on ens5.  If this is not what
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]:    you want, please write a subnet6 declaration
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]:    in your dhcpd.conf file for the network segment
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]:    to which interface ens5 is attached. **
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: 
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: Listening on Socket/5/enp5s0/2a01:4f8:212:1c60::/64
Jul 20 09:56:49 HPC-FSN1-M103 dhcpd[9653]: Sending on   Socket/5/enp5s0/2a01:4f8:212:1c60::/64

虚拟机

首先参考这里配置:

Linux下通过DHCP服务器获取IPv6地址

文章目录[隐藏] 前言 CentOS7 Debian / Ubuntu 前言 本教程适用于云筏的NAT服务器,地址:https://my.cloudraft.cn/server/buy.html?lineid=1012 CentOS7 开启IPv6功能 有些镜像是禁用了IPv6功能的,因此需要开启。首先查看一下是否被禁用了: [[email protected] network-scripts]# sysctl -a | grep ipv6.*disable sysctl: reading key "net.ipv6.conf.all.stable_secret" net.ipv6.conf.all.disable_ipv6 = 1 sysctl: net.ipv6.conf.default.disable_ipv6 = 1 reading key "net.ipv6.conf.default.stable_secret" sysctl: reading key "net.ipv6.conf.eth0.stable_secret" net.ipv6.conf.eth0.disable_ipv6 = 1 sysctl: reading key "net.ipv6.conf.lo.stable_secret" net.ipv6.conf.lo.disable_ipv6 = 1 disable=1说明被禁用了,因此需要去修改,配置文件为/etc/sysctl.conf vi /etc/sysctl.conf #把ipv6 disable的参数都改为0,然后保存,重载服务后生效 [[email protected] ~]# sysctl -p […]


然后测试一下即可


This article is under CC BY-NC-SA 4.0 license.
Please quote the original link:https://www.liujason.com/article/829.html
Like (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址