Tips when using OSPF routing in Red Hat Enterprise Linux on IBM Power Systems

The setup of a high availability network with dynamic routing differs between Linux on IBM Power Systems and Linux on IBM Z®.

Linux on IBM Power Systems does not support a dynamic VIPA configuration with the qethconf tool as known from Linux on IBM Z. Linux on IBM Power Systems requires a different approach. The following shows how to set up dynamic routing with Red Hat Enterprise Linux on IBM Power Systems. With this setup, the connection between an SAP application server on Linux on IBM Power Systems, the SAP central services, and Db2® on z/OS® is guaranteed even when one interface becomes unavailable for defect or for maintenance reasons.

Define two network interfaces for redundancy and one channel bonding interface. You achieve this by using the NetworkManager tool or manually in /etc/sysconfig/network-scripts/.


# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
NAME=eth0
UUID=<UUID of the eth0 interface>
DEVICE=eth0
ONBOOT=yes
MASTER=nm-bond
SLAVE=yes
MASTER_UUID=<UUID of the bond interface>

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
NAME=eth1
UUID=<UUID of the eth1 interface>
DEVICE=eth1
ONBOOT=yes
MASTER=nm-bond
SLAVE=yes
MASTER_UUID=<UUID of the bond interface>

# cat /etc/sysconfig/network-scripts/ifcfg-nm-bond 
DEVICE=nm-bond
BONDING_OPTS="resend_igmp=1 updelay=0 use_carrier=1 arp_all_targets=any miimon=1000 
lp_interval=1 min_links=0 downdelay=0 xmit_hash_policy=layer2 primary_reselect=always 
fail_over_mac=none arp_validate=none mode=balance-alb all_slaves_active=0 
ad_select=stable num_unsol_na=1 num_grat_arp=1"
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.101.4.147
PREFIX=26
DEFROUTE=yes
IPV6INIT=no
IPV4_FAILURE_FATAL=no
NAME=nm-bond
UUID=<UUID of the nm-bond device>
ONBOOT=yes

Define OSPF routing in /etc/quagga

Note: Starting with RHEL 8.x quagga is deprecated. It has been replaced by Free Range Routing (FRR). So replace 'quagga' with 'frr' in the samples below.

# cat /etc/quagga/ospfd.conf
!
hostname <hostname of system>
password <your PW>
enable password <your PW>
log file /var/log/quagga/ospfd.log
line vty
interface nm-bond
ip ospf cost 1
ip ospf priority 0
!
router ospf
ospf router-id <define a router ID>
network 10.101.4.128/26 area 0 

# cat /etc/quagga/zebra.conf
hostname <hostname of system>
password <your PW>
enable password <your PW>
log file /var/log/quagga/zebra.log
!
interface nm-bond
ip address 10.101.4.147/26 
multicast
!
interface eth0
!
interface eth1
!
interface lo

Make sure that all required services are installed and active on boot.

Note: There are various issues when testing the network setup while a firewall daemon (iptables) was active. In the used test case, the network was an internal private network. Therefore, the iptables utility was not used. As soon as iptables was stopped and disabled, the firewall daemon worked fine. If your environment requires an iptables setup, additional configuration is required.
Stop and disable iptables:

systemctl stop iptables.service
systemctl disable iptables.service