AIX Networking: EtherChannel, VLANs, IP Configuration, and Troubleshooting
Configure production AIX networking correctly -- EtherChannel bonding, VLAN tagging, IP aliases, jumbo frames, and a systematic troubleshooting methodology for every common network fault.
Contents
IP Configuration Basics
# Show all interfaces
ifconfig -a
# Configure an interface (temporary -- lost on reboot)
ifconfig en0 192.168.1.50 netmask 255.255.255.0 up
# Persistent configuration via chdev (survives reboot)
chdev -l en0 -a netaddr=192.168.1.50 -a netmask=255.255.255.0 -a state=up
# Add a second IP alias on same interface
ifconfig en0 alias 192.168.1.51 netmask 255.255.255.0
# Remove alias
ifconfig en0 delete 192.168.1.51
# Show interface statistics
entstat -d en0 | head -40
# Show errors (critical for troubleshooting)
entstat -d en0 | grep -iE "(error|drop|collision)"
Interface Naming
| Name | Meaning | Notes |
|---|---|---|
| ent0 | Physical Ethernet device | Hardware adapter |
| en0 | Standard Ethernet interface | Uses ent0, non-VLAN |
| et0 | IEEE 802.3 interface | Uses ent0, rarely used |
| ent2 | EtherChannel device | Bonded ent0+ent1 |
| en2 | Interface on top of EtherChannel | Configure IP here |
EtherChannel (802.3ad LACP)
# Create EtherChannel from ent0 and ent1
smitty etherchannel # GUI method
# OR via command line:
# Step 1: Create the EtherChannel adapter
mkdev -c adapter -s pseudo -t ibm_ech \
-a adapter_names="ent0,ent1" \
-a mode=8023ad \
-a hash_mode=dst_src_port
# This creates ent2 (the bonded adapter)
# Step 2: Create interface on top
mkdev -c if -s EN -t en -a netaddr=192.168.1.50 \
-a netmask=255.255.255.0 -a ipaddrtype=ipv4 -l en2
# Verify
lsdev -Cc adapter | grep ent
entstat -d ent2 | grep -i "LACP\|Partner\|mode"
# Check bond status
entstat -d ent2 | grep -A5 "ETHERNET CHANNEL"
EtherChannel Modes Comparison
| Mode | Description | Switch Requirement |
|---|---|---|
| 8023ad | LACP (recommended) | Switch must support 802.3ad |
| round_robin | Outbound load balancing | No special config |
| failover | Active/standby only | No special config |
| src_mac | Hash on source MAC | No special config |
VLAN Tagging (802.1Q)
# Create a VLAN interface on VLAN 100 using ent0
mkdev -c adapter -s pseudo -t vlan \
-a base_adapter=ent0 \
-a vlan_tag=100 \
-a netaddr=10.100.0.50 \
-a netmask=255.255.255.0
# List VLAN adapters
lsdev -Cc adapter | grep vlan
# Show VLAN attributes
lsattr -El ent3 # ent3 = VLAN adapter
# Multiple VLANs on same physical NIC
# Create ent3 (VLAN 100), ent4 (VLAN 200), ent5 (VLAN 300)
# Each gets its own IP -- no performance penalty
Network Tuning
# Show all network tunables
no -a | head -40
# Key performance tunables
no -o tcp_recvspace=262144 # TCP receive buffer (default 16384)
no -o tcp_sendspace=262144 # TCP send buffer
no -o udp_recvspace=655360 # UDP receive (important for NFS)
no -o rfc1323=1 # TCP large window scaling -- MUST for 10GbE
no -o tcp_nagle_limit=1 # Reduce Nagle delay for small packets
# Make tunables permanent (survives reboot)
no -p -o tcp_recvspace=262144
no -p -o rfc1323=1
# NFS tunables
nfso -o nfs_max_read_size=65536
nfso -o nfs_max_write_size=65536
# Jumbo frames (MTU 9000) -- switch must support it
chdev -l en0 -a mtu=9000
ping -s 8972 -c 3 192.168.1.1 # test jumbo frames end-to-end
Routing and DNS
# Show routing table
netstat -rn
# Add a static route
route add -net 10.20.0.0/24 192.168.1.1
# Add persistent static route
chdev -l inet0 -a route=net,-hopcount,0,,0,10.20.0.0,255.255.255.0,192.168.1.1
# Set default gateway
chdev -l inet0 -a route=net,,0,0.0.0.0,192.168.1.1
# DNS configuration
cat /etc/resolv.conf
# Add nameservers:
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
# Test DNS
host ibm.com
nslookup ibm.com
Troubleshooting Methodology
Systematic Approach
# Step 1: Is the interface up?
ifconfig en0 | grep -E "(UP|DOWN|inet)"
# Step 2: Any errors accumulating?
entstat -d en0 | grep -iE "(error|drop|crc|collision)" | grep -v "^0"
# Step 3: Can we reach default gateway?
ping -c 4 $(netstat -rn | awk '/^default/{print $2}')
# Step 4: Is DNS working?
host ibm.com || echo "DNS FAILED"
# Step 5: Trace route to destination
traceroute 8.8.8.8
Common Issues and Fixes
| Symptom | Likely Cause | Fix |
|---|---|---|
| High CRC errors | Bad cable or NIC | Replace cable, check duplex settings |
| Duplex mismatch | Auto-neg failure | chdev -l ent0 -a full_duplex=yes |
| Ping works, SSH doesn't | MTU mismatch / firewall | Test ping -s 1472; check ipfilter |
| IP unreachable after reboot | ODM config not saved | Use chdev not ifconfig |
| Slow NFS | Small rsize/wsize or buffers | Tune nfso, increase UDP buffers |
# Check for duplicate IP on network
arp -a | grep 192.168.1.50 # multiple MACs = IP conflict
# Check physical link state
lsattr -El ent0 | grep "link_stat"
# Or:
entstat -d ent0 | grep "Link Status"
# Capture packets (AIX iptrace)
iptrace -i en0 -s 192.168.1.100 /tmp/trace.cap &
ipreport /tmp/trace.cap | head -100
[YES] Production tip: Always set
rfc1323=1 on any AIX server connected at 1GbE or faster. The default TCP window size of 16KB is a severe bottleneck on high-latency links. This single tunable can double NFS and database throughput.Key Takeaways: Configure IPs with chdev not ifconfig for persistence. Use EtherChannel with LACP for bonding. Always enable rfc1323=1 for large TCP windows. Check entstat errors before blaming the application for network issues.
AIXNetworkingEtherChannelVLANTCP TuningIBM POWER
0 Comments