1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
// This is an example configuration file for DHCPv6 server in Kea.
// It demonstrates an advanced feature called shared network. Typically, for
// each physical link there is one IPv6 subnet that the server is expected
// to manage. However, in some cases there is a need to configure more subnets
// in the same physical location. This may sound odd, as IPv6 is not expected
// to run out of addresses. However, due to vast address space some deployments
// experiment with various addressing schemes and later find out that the
// initial proposal was not best and way to migrate to something else.
{
"Dhcp6": {
// Kea is told to listen on eth0 interface only.
"interfaces-config": {
"interfaces": [ "eth0" ]
},
// You also need to tell where to store lease information.
// memfile is the backend that is easiest to set up.
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
// It is likely that in your network you'll have a mix of regular,
// "plain" subnets and shared networks. It is perfectly valid to mix
// them in the same config file.
// This is regular subnet. It's not part of any shared-network.
"subnet6": [
{
"id": 1,
"pools": [ { "pool": "2001:db8:2::/80" } ],
"subnet": "2001:db8:2::/64",
"interface": "eth0"
}
],
// Hhe shared networks definition starts here. shared-networks can
// contain a list of shared networks. There are many parameters
// that can be specified here, so this example may be overwhelming
// at first, but the only mandatory parameter for each shared
// network is name. It must be unique. Typically, each shared
// network also needs to have at least two subnets to be functional,
// but if you really want to, you can define a degraded shared
// network that has 1 or even 0 subnets. This may come in handy
// when migrating between regular subnets and shared networks
// or when debugging a problem. It is not recommended to use
// 1 subnet per shared network, as there is extra processing
// overhead for shared networks.
"shared-networks": [
{
"interface": "eth1",
// Similar to regular subnets, it is forbidden to define both
// interface and interface-id at the same time. That's because
// interface parameter expresses physical network interface
// for links available locally and interface-id identifies
// values inserted by relays, which are only used for
// remote traffic. A shared network cannot be both direct
// and relayed.
// "interface-id": "content of the option",
// Other parameters defined here will be inherited by the
// subnets.
"name": "frog",
"option-data": [ ],
"preferred-lifetime": 200,
"rapid-commit": true,
"rebind-timer": 150,
"relay": {
"ip-addresses": [ "2001:db8::1" ]
},
"renew-timer": 100,
// Specify whether the server should look up global reservations.
"reservations-global": false,
// Specify whether the server should look up in-subnet reservations.
"reservations-in-subnet": true,
// Specify whether the server can assume that all reserved addresses
// are out-of-pool.
// Ignored when reservations-in-subnet is false.
// If specified, it is inherited by "subnet6" levels.
"reservations-out-of-pool": false,
// List of subnets belonging to this particular shared-network
// start here.
"subnet6": [
// This is the first subnet.
{
"preferred-lifetime": 30,
"rapid-commit": false,
"rebind-timer": 20,
// It is possible to override some values here.
"relay": {
"ip-addresses": [ "2001:db8:1::123" ]
},
"renew-timer": 10,
// Specify whether the server should look up global reservations.
"reservations-global": false,
// Specify whether the server should look up in-subnet reservations.
"reservations-in-subnet": true,
// Specify whether the server can assume that all reserved addresses
// are out-of-pool.
// Ignored when reservations-in-subnet is false.
"reservations-out-of-pool": false,
"id": 2,
"subnet": "2001:db8:1::/64",
"pools": [ { "pool": "2001:db8:1:0:abcd::/80" } ],
"valid-lifetime": 40
},
// This is the second subnet.
{
"preferred-lifetime": 30,
"pools": [ { "pool": "3000:db8::/64" } ],
"rapid-commit": false,
"rebind-timer": 20,
"relay": {
"ip-addresses": [ "3000::1" ]
},
"renew-timer": 10,
// Specify whether the server should look up global reservations.
"reservations-global": false,
// Specify whether the server should look up in-subnet reservations.
"reservations-in-subnet": true,
// Specify whether the server can assume that all reserved addresses
// are out-of-pool.
// Ignored when reservations-in-subnet is false.
"reservations-out-of-pool": false,
"id": 3,
"subnet": "3000::/16",
"valid-lifetime": 40
}
],
"valid-lifetime": 300
} ]
}
}
|