Press "Enter" to skip to content

IPv6 SLB (Server Load-Balancing) in DSR mode

The sessionid declaration can be set to “src” if the session should base only on the IPv6 source address (“server 1 sessionid src”).

The IPv6 configuration and loopback alias is setup in /etc/network/interfaces on the Debian based target servers as follows:

IPv6 configuration in /etc/network/interfaces on Target 1

iface eth0 inet6 static
  address 2001:DB8::1:1
  netmask 32

iface lo inet6 static
  address 2001:db8::2:4
  netmask 128

IPv6 configuration in /etc/network/interfaces on Target 2

iface eth0 inet6 static
  address 2001:DB8::1:2
  netmask 32

iface lo inet6 static
  address 2001:db8::2:4
  netmask 128

The VRRP Master Configuration File

//        configuration taken Mon Aug 16 16:34:46 2010
//        BalanceNG 3.320 (created 2010/08/16)
modules   vrrp,arp,ping,hc,master,slb
interface 1 {
          name eth0
}         
register  interface 1
enable    interface 1
vrrp      {
          vrid 40
          priority 200
          network 1
}         
network   1 {
          addr 10.1.0.0
          mask 255.255.0.0
          real 10.1.0.1
          mask6 32
          real6 2001:db8::2:1
          virt6 2001:db8::2:3
          interface 1
}         
register  network 1
enable    network 1
server    1 {
          ipaddr6 2001:db8::2:4
          sessionid src+port
          port 80
          protocol tcp
          targets 1,2
}         
register  server 1
enable    server 1
target    1 {
          ipaddr6 2001:db8::1:1
          port 80
          protocol tcp
          ping6 3,10
          dsr enable
}         
target    2 {
          ipaddr6 2001:db8::1:2
          port 80
          protocol tcp
          ping6 3,10
          dsr enable
}         
register  targets 1,2
enable    targets 1,2
//        end of configuration

The VRRP Backup Configuration File

//        configuration taken Mon Aug 16 16:34:46 2010
//        BalanceNG 3.320 (created 2010/08/16)
modules   vrrp,arp,ping,hc,master,slb
interface 1 {
          name eth0
}         
register  interface 1
enable    interface 1
vrrp      {
          vrid 40
          priority 200
          network 1
}         
network   1 {
          addr 10.1.0.0
          mask 255.255.0.0
          real 10.1.0.2
          mask6 32
          real6 2001:db8::2:2
          virt6 2001:db8::2:3
          interface 1
}         
register  network 1
enable    network 1
server    1 {
          ipaddr6 2001:db8::2:4
          sessionid src+port
          port 80
          protocol tcp
          targets 1,2
}         
register  server 1
enable    server 1
target    1 {
          ipaddr6 2001:db8::1:1
          port 80
          protocol tcp
          ping6 3,10
          dsr enable
}         
target    2 {
          ipaddr6 2001:db8::1:2
          port 80
          protocol tcp
          ping6 3,10
          dsr enable
}         
register  targets 1,2
enable    targets 1,2
//        end of configuration

Testing Dialog in “bng control” Mode

bng# sh vrrp
  state     MASTER
  vrid      40
  priority  200
  ipaddr0   2001:db8::2:3
  ipaddr1   2001:db8::2:4
bng# sh sessions
  7 sessions
  srv tgt  age timeout session-id
  --- --- ---- ------- ------------------
    1   1    7     600 2001:db8::1:6.46354
    1   2    8     600 2001:db8::1:6.46353
    1   1    9     600 2001:db8::1:6.46352
    1   2   11     600 2001:db8::1:6.46351
    1   1   12     600 2001:db8::1:6.46350
    1   2   26     600 2001:db8::1:6.46349
    1   1   57     600 2001:db8::1:6.46341