To aid in the GCEMS redundancy fail-over situation, a technique labeled Bonding can be applied to the Network Cards on any GCEMS servers utilizing GCEMS or Host Redundancy. Bonding along with a specific network setup (both displayed in diagrams below), can be utilized so the IMG has full GCEMS redundancy in the event a failure occurs. The Bonding technique being employed on the GCEMS is labeled active-backup mode. Bonding is supported on the GCEMS servers that are running Red Hat Enterprise Linux 5.5 and above. Refer to the topics listed in the Related Items heading below for more information. Refer to the information below.
The configuration below describes the configuration needed to set up bonding on the GCEMS servers when there is only one subnet involved. All modifications below are to be done as root user only.
[root@localhost]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.4.10
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=no
BONDING_OPTS=”mode=1 miimon=100 use_carrier=0 primary=eth0 primary_reselect=2”
Additional Information:
IPADDR = IP Address being configured on active network interface on primary GCEMS server.
NETMASK = Subnet Mask being configured on the active network interface on primary GCEMS server.
GATEWAY = IP address of the network gateway in your network
mode=1 - Sets mode to be active-backup.
miimon=100 - Sets the link monitoring interval to 100 ms
use_carrier=0 - Sets the method used for miimon and improves link detection by miimon
primary=eth0 - Defines eth0 as the “active” port
primary_reselect=2 (failure) - The primary slave becomes the active slave only if the current active fails and the primary slave is up.
Create a backup of the existing ifcfg-eth0 and ifcfg-eth1 files located in the /etc/sysconfig/network-scripts directory. See examples below.
[root@localhost]# cp ifcfg-eth0 backup.ifcfg-eth0
[root@localhost]# cp ifcfg-eth1 backup.ifcfg-eth1
$ vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# TYPE=Ethernet
# HWADDR=xx:xx:xx:xx:xx:xx
# IPADDR=192.168.4.2
# NETMASK=255.255.255.0
# GATEWAY=192.168.4.0
# USERCTL=no
# IPV6INIT=no
# PEERDNS=yes
$ vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# TYPE=Ethernet
# HWADDR=xx:xx:xx:xx:xx:xx
# IPADDR=192.168.4.3
# NETMASK=255.255.255.0
# GATEWAY=192.168.4.0
# USERCTL=no
# IPV6INIT=no
# PEERDNS=yes
Modify the /etc/modproble.conf file. Follow examples below.
[root@localhost]# cd /etc
[root@localhost]# cp modprobe.conf backup.modprobe.conf
$ vim /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=active-backup miimon=100 primary=eth0 primary_reselect=2
[root@localhost]# /sbin/modprobe bonding
[root@localhost]# /sbin/service network restart
[root@localhost]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect failure)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 4
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave Interface: eth1
MII Status: up
Link Failure Count: 2
Permanent HW addr: xx:xx:xx:xx:xx:xx
Note: The dashed blue/red lines indicate that the GCEMS can exist on multiple VLANs, not just the vlan for OAM&P. For example:
Red = Network Management
Blue = SIP, RTP, RADIUS
The configuration below describes the configuration needed to set up bonding on the GCEMS servers when there are two subnets involved. Note the diagram that extra hardware is needed. Before starting the procedure, verify the following:
The procedure below configures two VLANS. One with VLAN ID=101 and another with VLAN ID=102. OAMP traffic will use VLAN ID 101 and VoIP traffic will be on VLAN ID 102 ports. See table below.
OAMP private subnet | Remotely accesible subnet |
IP Address = 192.168.4.20 | IP Address = 10.129.44.10 |
Netmask = 255.255.255.0 | Netmask = 255.255.255.224 |
Network Gateway = 192.168.4.1 | Network Gateway = 10.129.44.1 |
VLAN ID = 101 | VLAN ID = 102 |
[root@localhost]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.4.10
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=no
BONDING_OPTS=”mode=1 miimon=100 use_carrier=0 primary=eth0 primary_reselect=failure”
Additional Information:
IPADDR = IP Address being configured on active network interface on primary GCEMS server.
NETMASK = Subnet Mask being configured on the active network interface on primary GCEMS server.
GATEWAY = IP address of the network gateway in your network
mode=1 - Sets mode to be active-backup.
miimon=100 - Sets the link monitoring interval to 100 ms
use_carrier=0 - Sets the method used for miimon and improves link detection by miimon.
primary=eth0 - Defines eth0 as the “active” port
primary_reselect=2 (failure) - The primary slave becomes the active slave only if the current active fails and the primary slave is up.
The procedure below describes how to modify the ifcfg-bond0 for use with VLAN tagging. Comment out the following parameters (IPADDR, NETMASK, GATEWAY) from ifcfg-bond0 created above. The commented out parameters will be configured in another file.
[root@localhost]# cd /etc/sysconfig/network-scripts
[root@localhost]# vim ifcfg-bond0
DEVICE=bond0
# IPADDR=192.168.4.10
# NETMASK=255.255.255.0
# GATEWAY=192.168.4.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=no
BONDING_OPTS=”mode=1 miimon=100 use_carrier=0 primary=eth0 primary_reselect=failure”
For different VLAN ID's create bond device bond0.y where the y value determines the VLAN ID. Create two new bond interfaces for VLAN tagging: Ifcfg-bond0.101 and ifcfg-bond0.102.
Create ifcfg-bond0.101
[root@localhost]# cp bond0 bond0.101
[root@localhost]# vim bond0.101
DEVICE=bond0.101
IPADDR=192.168.4.10
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
ONBOOT=yes
VLAN=yes
[root@localhost]# cp bond0 bond0.102
[root@localhost]# vim bond0.102
DEVICE=bond0.102
IPADDR=10.129.44.248
NETMASK=255.255.255.224
GATEWAY=10.129.44.225
ONBOOT=yes
VLAN=yes
[root@localhost]# cd /etc
[root@localhost]# vim /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=active-backup miimon=100 primary=eth0 primary_reselect=2
[root@localhost]# /sbin/modprobe bonding
[root@localhost]# /sbin/service network restart
[root@localhost]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect failure)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:xx:xx:xx:xx:xx
Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:xx:xx:xx:xx:xx
[root@localhost]# /sbin/ifconfig
bond0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet6 addr: fe80::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:1518004 errors:0 dropped:0 overruns:154 frame:0
TX packets:1037592 errors:0 dropped:0 overruns:0 carrier:150503
collisions:0 txqueuelen:0
RX bytes:496743533 (473.7 MiB) TX bytes:83336021 (79.4 MiB)
bond0.101 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:192.168.4.20 Bcast:192.168.4.255 Mask:255.255.255.0
inet6 addr: fe80::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:213882 errors:0 dropped:0 overruns:0 frame:0
TX packets:150722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:40249275 (38.3 MiB) TX bytes:14092960 (13.4 MiB)
bond0.102 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet addr:10.129.44.10 Bcast:10.129.44.31 Mask:255.255.255.224
inet6 addr: fe80::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:1196 errors:0 dropped:0 overruns:0 frame:0
TX packets:626 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:57170 (55.8 KiB) TX bytes:35370 (34.5 KiB)
eth0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet6 addr: fe80::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:745291 errors:0 dropped:0 overruns:154 frame:0
TX packets:483650 errors:0 dropped:0 overruns:0 carrier:150503
collisions:0 txqueuelen:1000
RX bytes:263721522 (251.5 MiB) TX bytes:40600774 (38.7 MiB)
Interrupt:185 Base address:0xec00
eth1 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:xx
inet6 addr: fe80::xxx:xxxx:xxxx:xxx/64 Scope:Link
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:772713 errors:0 dropped:0 overruns:0 frame:0
TX packets:553942 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:233022011 (222.2 MiB) TX bytes:42735247 (40.7 MiB)
Interrupt:185
http://unixfoo.blogspot.com/2007/10/yet-to-add.html
http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding