Forming a Network

A powerline network is formed when two or more devices share a common Network Membership Key (NMK). An NMK is always 16 bytes (32 hexadecimal digits) in length and can have any value, including all zeros. Devices programmed with the same NMK value can communicate while those programmed with different NMK values cannot. Program int6k can be used to program a local or remote device with a specific NMK value.

Example 5.9.  Setting the Network Membership Key

# int6k -M 
eth1 00:B0:52:00:00:01 Set Local Network Membership Key
eth1 00:B0:52:BA:BA:56 Setting ...

This example programs the local device with the default NMK. Option -M sets the network membership key with the default key value. The default key is used because we omitted option -K and the local device is programmed because we omitted the device MAC address.

One can quickly and easily create a default network by connecting each device, in turn, to the local host and executing this command shown above. The devices will then form a network when connected via the powerline. Although fast and simple, this method is not very secure because the default NMK is used by many Atheros tools and is well known.

There are cases where one wants to create separate, independent networks on the powerline. This is accomplished by programming some devices with one NMK and other devices with another NMK. In such cases we need to specify an NMK value.

Example 5.10.  Forming a Custom Network

# int6k -M -K 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF 
eth1 00:B0:52:00:00:01 Set Local Network Membership Key
eth1 00:B0:52:BA:BA:56 Setting ...

This example programs the local device NMK with the value 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF. Option -K sets the default key value used by option -M. The default device is programmed because we omitted a target MAC address from the command line but we could have specified the local device using the actual device MAC address or the Local Management Address (LMA) of 00:B0:52:00:00:01 or the keyword local, like so ...

# int6k -M -K 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF 
# int6k -M -K 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF 00:B0:52:BA:BE:56
# int6k -M -K 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF local

Example 5.11.  Remote Network Configuration

Once a network has been established, one can change the NMK of remote devices over the powerline but once the NMK on the remote device has changed, it is no longer part of original network and can no longer be returned to the network in the same way. Additionally, one cannot change the NMK on a remote device without specifying the DAK of the device to be changed.

# int6k -M -K 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF \
        -J 00:B0:52:BA:BE:57 \
        -D A7:8E:11:FB:6A:90:2C:CB:A7:8E:11:FB:6A:90:2C:CB
eth1 00:B0:52:00:00:01 Set Remote Network Membership Key
eth1 00:B0:52:BA:BA:56 Setting ...

This example sets the NMK on remote device via the local device. Option -J specified the MAC address of the remote device. Option -D specified the DAK of the remote device. The request is sent to the local device, because we omitted the target MAC address, and the local device forwards our request to the remote device. The request will fail if the remote device is not accessible or the remote device DAK is incorrect.

This command is one of the more complicated int6k commands, requires lots of typing and is consequently prone to typing errors. The order of command line options is not important.