1.问题
sudo ip tuntap add tap0 mode tap
sudo ip link set tap0 up
sudo ip a add 10.233.11.1/24 dev tap0 然后启动sudo qemu-system-ppc64 \
-cpu POWER8 \
-machine pseries \
-m 8192 \
-serial mon:stdio \
-drive file=aix.qcow2,if=none,id=drive-virtio-disk0 \
-device virtio-scsi-pci,id=scsi \
-device scsi-hd,drive=drive-virtio-disk0 \
-prom-env boot-command='boot disk:' \
-display none \
-net nic \
-net tap,script=no,ifname=tap0 出现了0c33
Saving Base Customize Data to boot disk
Starting the sync daemon
Starting the error daemon
System initialization completed.
TE=OFF
CHKEXEC=OFF
CHKSHLIB=OFF
CHKSCRIPT=OFF
CHKKERNEXT=OFF
STOP_UNTRUSTD=OFF
STOP_ON_CHKFAIL=OFF
LOCK_KERN_POLICIES=OFF
TSD_FILES_LOCK=OFF
TSD_LOCK=OFF
TEP=OFF
TLP=OFF
Successfully updated the Kernel Authorization Table.
Successfully updated the Kernel Role Table.
Successfully updated the Kernel Command Table.
Successfully updated the Kernel Device Table.
Successfully updated the Kernel Object Domain Table.
Successfully updated the Kernel Domains Table.
Successfully updated the Kernel RBAC log level.
Successfully updated the Kernel RBAC log level.
OPERATIONAL MODE Security Flags
ROOT : ENABLED
TRACEAUTH : DISABLED
System runtime mode is now OPERATIONAL MODE.
Setting tunable parameters...complete
Starting Multi-user Initialization
Performing auto-varyon of Volume Groups
Activating all paging spaces
0517-075 swapon: Paging device /dev/hd6 is already active. 此时ping 10.233.11.1 -c 4 也没有反映
2.方案
根据您的描述,AIX系统已完成启动但网络不通,这通常由以下原因导致。我将提供完整的排查和解决方案:
1. 网络连接失败原因分析
(1) TAP设备配置不完整
-
缺少NAT或桥接配置,宿主机无法转发数据包
-
缺少ARP代理设置,导致IP层不通
(2) AIX网络未配置
-
系统未分配IP或未启用网卡
-
/etc/hosts
或路由表缺失关键条目
(3) 防火墙阻止
-
宿主机或AIX防火墙拦截ICMP请求
2. 解决方案步骤
第一步:完善宿主机网络配置
bash
# 启用IP转发
sudo sysctl -w net.ipv4.ip_forward=1
# 设置NAT(关键步骤)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 启用ARP代理
sudo ip link set tap0 proxyarp on
第二步:进入AIX系统配置网络
-
唤醒控制台:
-
在QEMU窗口按
Ctrl + a c
进入监控台 -
输入
sendkeys "exec /usr/sbin/clstart\n"
启动命令行
-
-
配置IP地址:
bash
-
ifconfig en0 10.233.11.2 netmask 255.255.255.0 up chdev -l en0 -a netaddr=10.233.11.2 -a netmask=255.255.255.0
-
设置默认路由:
bash
-
route add default 10.233.11.1
第三步:验证连接
在AIX中执行:
bash
ping 10.233.11.1
ifconfig -a
netstat -rn
3. 备选网络方案(更稳定)
方案1:改用用户模式网络
bash
-net nic,model=virtio -net user,hostfwd=tcp::2222-:22
通过SSH连接测试:
bash
ssh -p 2222 root@localhost
方案2:完整桥接配置
bash
# 宿主机操作
sudo brctl addbr br0
sudo brctl addif br0 tap0
sudo brctl addif br0 eth0
sudo ip link set br0 up
QEMU参数改为:
bash
-net nic,model=virtio -net bridge,br=br0
4. 关键检查命令
位置 | 命令 | 正常输出示例 |
---|---|---|
宿主机 | ip addr show tap0 | 应显示 10.233.11.1/24 |
AIX | lsdev -Cc adapter | 确认网卡(en0)状态 |
AIX | arp -a | 应显示宿主机的ARP记录 |
5. 常见问题处理
(1) 如果AIX无网络设备
检查是否识别到虚拟网卡:
bash
lsdev -Cc adapter # 应看到"Virtual I/O Ethernet Adapter"
(2) 如果宿主机ping不通
检查防火墙规则:
bash
sudo iptables -L -v -n
(3) 网络服务未启动
在AIX中手动启动:
bash
startsrc -t tcpip
6. 永久生效配置
在AIX中保存网络配置:
bash
mktcpip -h aixvm -i en0 -a 10.233.11.2 -m 255.255.255.0 -g 10.233.11.1
宿主机持久化iptables规则:
bash
sudo apt install iptables-persistent sudo netfilter-persistent save
总结流程图
图表
代码
sequenceDiagram 宿主机->>TAP设备: 配置IP和NAT TAP设备->>QEMU: 传递网络数据 QEMU->>AIX: 虚拟网卡交互 AIX->>AIX: 配置IP和路由 AIX->>宿主机: 发起Ping测试 宿主机-->>AIX: 返回响应
请按步骤操作,通常网络不通的问题在完成 第一步 和 第二步 后即可解决。如果仍有问题,建议改用更简单的 -net user
模式测试基础连通性。