Configuration Examples
There are a few basic RBridge principles to keep in mind:
- Two RBridge endpoints need to mutually authenticate to each other in order to establish a link (a virtual network cable between two distinct LANs).
- How they actually communicate is not important, the only requirement is that they actually can exchange their UDP packets in some way.
- If an RBridge endpoint has no idea where the other side sits, it may be configured to consult a third party in that case (an RBridge registry).
- Traffic encryption is optional, but authentication is mandatory.
- An RBridge endpoint never tunnels itself.
Please note that the configuration examples below contain no licensing parameters.
Example 1: Explicit communication, authentication only
Endpoint A
interface= eth0
macsecret= "DatacenterLink-EW"
remote_address= ::ffff:10.3.4.11
Endpoint B
interface= eth0
macsecret= "DatacenterLink-EW"
remote_address= ::ffff:10.22.8.11
Notes
- It’s sufficient to specify the remote_address parameter on one side only.
- Alternatively, the remote_address parameter accepts also numerical IPv6 addresses and FQDNs resolving to an A or AAAA record.
Example 2: Explicit communication, authentication and encryption
Endpoint A
interface= eth0
macsecret= "DatacenterLink-EW"
key= "4c118d0eb6ec9289a7b9c796816aa07d"
remote_address= ::ffff:10.3.4.11
Endpoint B
interface= eth0
macsecret= "DatacenterLink-EW"
key= "4c118d0eb6ec9289a7b9c796816aa07d"
remote_address= ::ffff:10.22.8.11
Notes
- It’s sufficient to specify the remote_address parameter on one side only.
- Alternatively, the remote_address parameter accepts also numerical IPv6 addresses and FQDNs resolving to an A or AAAA record.
- It’s important to have the same key on both sides (otherwise complete garbage would be injected into the LANs).
Example 3: Explicit communication, authentication+encryption with true random key material
Endpoint A
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
remote_address= ::ffff:10.3.4.11
Endpoint B
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
remote_address= ::ffff:10.22.8.11
Notes
- It’s sufficient to specify the remote_address parameter on one side only.
- Alternatively, the remote_address parameter accepts also numerical IPv6 addresses and FQDNs resolving to an A or AAAA record.
- Authentication is done using the SHA-2 hash of the key material.
- Both sides are automatically selecting the encryption key out of the available key material of 2097152 keys total, changing it for every single UDP packet being sent.
Example 4: Consulting the default registry, authentication+encryption with true random key material
Endpoint A
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
registry_linkname= "DCLINKEW"
Endpoint B
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
registry_linkname= "DCLINKEW"
Notes
- Authentication is done using the SHA-2 hash of the key material.
- Both sides are automatically selecting the encryption key out of the available key material of 2097152 keys total, changing it for every single UDP packet being sent.
- Our default RBridge registry (listening on r.inlab.net and r6.inlab.net) is consulted to determine the mutual communication parameters.
- The IP-protocol (IPv4 or IPv6), the addresses and the port numbers are automatically selected as available.
- This works the same way for examples 1+2, the remote_address parameter may be removed in these examples (but this is not mandatory, if they succeed to talk directly they will do).
Example 5: Consulting your own registry, authentication+encryption with true random key material
Endpoint A
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
registry_address_1= ipv4.your.own.registry.example
registry_address_2= ipv6.your.own.registry.example
registry_macsecret= "my-registry-authentication-secret"
registry_key= "my-registry-encryption-key"
registry_linkname= "DCLINKEW"
Endpoint B
interface= eth0
true_random_keymaterial= /home/rbridge/keymaterialDCEW.bin
registry_address_1= ipv4.your.own.registry.example
registry_address_2= ipv6.your.own.registry.example
registry_macsecret= "my-registry-authentication-secret"
registry_key= "my-registry-encryption-key"
registry_linkname= "DCLINKEW"
Notes
- Authentication is done using the SHA-2 hash of the key material.
- Both sides are automatically selecting the encryption key out of the available key material of 2097152 keys total, changing it for every single UDP packet being sent.
- Your registry is consulted to determine the mutual communication parameters, communication with your registry is separately authenticated and encrypted using registry_macsecret and registry_key (in this example).
- The IP-protocol (IPv4 or IPv6), the addresses and the port numbers are automatically selected as available.
- This works the same way for examples 1+2, the remote_address parameter may be removed in these examples (but this is not mandatory, if they succeed to talk directly they will do).