run - starts relay in the console. Relay can be closed using ctrl-c.
start - starts relay in daemon mode.
stop - stops running relay.
status - shows status of the relay.
Relay forwards DHCPv6 messages between interfaces. Messages from client are encapsulated and forwarded as RELAY_FORW messages. Replies from server are received as RELAY_REPL message. After decapsulation, they are being sent back to clients.
It is vital to inform server, where this relayed message was received. DHCPv6 does this using interface-id option. This identifier must be unique. Otherwise relays will get confused when they will receive reply from server. Note that this id does not need to be alligned with system interface id (ifindex). Think about it as "ethernet segment identifier" if you are using Ethernet network or as "bss identifier" if you are using 802.11 network.
Let's assume this case: relay has 2 interfaces: eth0 and eth1. Clients are located on the eth1 network. Relay should receive data on that interface using well-known ALL_DHCP_RELAYS_AND_SERVER multicast address (ff02::1:2). Relay also listens on its global address 2000::123. Packets received on the eth1 should be forwarded on the eth0 interface, also using multicast address:
log-level 8
log-mode short
iface eth0 {
server multicast yes
}
iface eth1 {
client multicast yes
client unicast 2000::123
interface-id 1000
}
Here is another exmaple. This time messages should be forwarded from eth1 and eth3 to the eth0 interface (using multicast) and to the eth2 interface (using server's global address 2000::546). Also clients must use multicasts (the default approach):
iface eth0 {
server multicast yes
}
iface eth2 {
server unicast 2000::456
}
iface eth1 {
client multicast yes
interface-id 1000
}
iface eth3 {
client multicast yes
interface-id 1001
}
RFC 3315 DHCP for IPv6
RFC 3736 Stateless DHCPv6