Wicked Best Practices
Why Wicked:
-
Default network manager in SLES/openSUSE
-
Designed for enterprise environments
-
Better integration with YaST
-
Supports complex network configurations
-
Consistent across SUSE ecosystem
Wicked architecture:
-
wickedd- Main daemon -
wickedd-nanny- Policy manager -
Configuration in
/etc/sysconfig/network/
Storage Network Configuration
Dedicated Interfaces
# Create configuration for storage interface
sudo tee /etc/sysconfig/network/ifcfg-ens1f0 > /dev/null <<EOF
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='10.100.1.101/24'
MTU='9000'
NAME='Storage Network 1'
# Prevent default route
DHCLIENT_SET_DEFAULT_ROUTE='no'
# NIC tuning
ETHTOOL_OPTIONS='rx 4096 tx 4096; -C rx-usecs 50 tx-usecs 50; -K tso on gso on gro on'
EOF
# Second storage interface
sudo tee /etc/sysconfig/network/ifcfg-ens1f1 > /dev/null <<EOF
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='10.100.2.101/24'
MTU='9000'
NAME='Storage Network 2'
DHCLIENT_SET_DEFAULT_ROUTE='no'
ETHTOOL_OPTIONS='rx 4096 tx 4096; -C rx-usecs 50 tx-usecs 50; -K tso on gso on gro on'
EOF
# Reload wicked configuration
sudo wicked ifreload all
# Verify
wicked ifstatus all
Bond Configuration for HA
# Create bond configuration
sudo tee /etc/sysconfig/network/ifcfg-bond0 > /dev/null <<EOF
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='10.100.1.101/24'
MTU='9000'
BONDING_MASTER='yes'
BONDING_SLAVE_0='ens1f0'
BONDING_SLAVE_1='ens1f1'
BONDING_MODULE_OPTS='mode=active-backup miimon=100 primary=ens1f0'
EOF
# Create slave configurations
sudo tee /etc/sysconfig/network/ifcfg-ens1f0 > /dev/null <<EOF
BOOTPROTO='none'
STARTMODE='hotplug'
MTU='9000'
EOF
sudo tee /etc/sysconfig/network/ifcfg-ens1f1 > /dev/null <<EOF
BOOTPROTO='none'
STARTMODE='hotplug'
MTU='9000'
EOF
# Reload configuration
sudo wicked ifreload all
Bond modes:
-
mode=active-backup(mode=1) - Active-passive failover (recommended for storage) -
mode=802.3ad(mode=4) - LACP (requires switch support) -
mode=balance-xor(mode=2) - Load balancing
YaST Network Configuration
Using YaST for network setup:
# Launch YaST network module
sudo yast2 lan
# Or command-line
sudo yast lan edit id=0 bootproto=static ipaddr=10.100.1.101/24 mtu=9000
YaST advantages:
-
GUI/TUI interface
-
Validates configuration
-
Integrates with other YaST modules
-
Generates wicked configuration files
MTU Configuration
# Test MTU end-to-end
ping -M do -s 8972 <storage_portal_ip>
# Set MTU in wicked config (shown above)
# Or temporarily
sudo ip link set ens1f0 mtu 9000