Ubuntu Server (18.04+): netplan
- YAML-based configuration
- Default for Ubuntu Server
- Managed by systemd-networkd or NetworkManager
Debian / Ubuntu Desktop: NetworkManager
- GUI and CLI management
- Dynamic configuration
- Good for desktop environments
Debian Traditional: /etc/network/interfaces
- Text-based configuration
- Simple and reliable
- Good for servers
Create netplan configuration:
# Create netplan config for storage interfaces
sudo tee /etc/netplan/60-storage.yaml > /dev/null <<'EOF'
network:
version: 2
renderer: networkd
ethernets:
ens1f0:
dhcp4: no
dhcp6: no
addresses:
- 10.100.1.101/24
mtu: 9000
optional: true
ens1f1:
dhcp4: no
dhcp6: no
addresses:
- 10.100.2.101/24
mtu: 9000
optional: true
EOF
# Apply configuration
sudo netplan apply
# Verify
ip addr show ens1f0
ip addr show ens1f1
Key netplan parameters:
-
dhcp4: no- Static IP configuration -
mtu: 9000- Jumbo frames -
optional: true- Don't wait for interface during boot (if not critical)
Traditional Debian configuration:
# Edit /etc/network/interfaces
sudo tee -a /etc/network/interfaces > /dev/null <<'EOF'
# Storage interface 1
auto ens1f0
iface ens1f0 inet static
address 10.100.1.101
netmask 255.255.255.0
mtu 9000
post-up ethtool -G ens1f0 rx 4096 tx 4096 || true
post-up ethtool -C ens1f0 rx-usecs 50 tx-usecs 50 || true
# Storage interface 2
auto ens1f1
iface ens1f1 inet static
address 10.100.2.101
netmask 255.255.255.0
mtu 9000
post-up ethtool -G ens1f1 rx 4096 tx 4096 || true
post-up ethtool -C ens1f1 rx-usecs 50 tx-usecs 50 || true
EOF
# Restart networking
sudo systemctl restart networking
# Or bring up interfaces individually
sudo ifup ens1f0
sudo ifup ens1f1
# Verify MTU
ip link show ens1f0 | grep mtu
# Test MTU (jumbo frames)
ping -M do -s 8972 <storage_portal_ip>
# If ping fails, check:
# 1. Interface MTU
# 2. Switch MTU configuration
# 3. Storage array MTU
Important: MTU must be 9000 end-to-end (host → switch → storage).