لینوکس ۳۰۵؛ شب ۱۵: TAP و عیبیابی اجرای مستقیم QEMU
فهرست نوشته
user-mode network برای همهٔ سناریوها کافی نیست. امشب TAP را به bridge خصوصی میزنیم و مسیر خطای device، MAC و route را جدا دنبال میکنیم.
این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.
جایگاه در دوره: هدفهای 351.3 آزمون 305-300.
محیط: direct-lab01 خاموش، bridge جدید brq305 بدون NIC فیزیکی؛ نامها و subnet آزاد هستند. کارت SSH میزبان تغییر نمیکند.
sudo ip link add brq305 type bridge
sudo ip address add 192.168.64.1/24 dev brq305
sudo ip link set brq305 up
sudo ip tuntap add dev tap305 mode tap user "$USER"
sudo ip link set tap305 master brq305
sudo ip link set tap305 up
در فرمان QEMU، فقط دو گزینهٔ شبکهٔ user-mode را با اینها جایگزین کن:
-netdev tap,id=n0,ifname=tap305,script=no,downscript=no \
-device virtio-net-pci,netdev=n0
این قطعهٔ آرگومان مستقل اجرا نمیشود. DHCP نداریم؛ از console داخل guest IP ثابت 192.168.64.11/24 بده. نام interface را با ip -br link پیدا کن. route/default DNS قبلی user-mode ممکن است دیگر مناسب نباشد؛ config شبکهٔ Clone را متناسب اصلاح کن.
آزمون: host .1 و guest .11 باید یکدیگر را ببینند؛ اینترنت و SSH port-forward قبلی دیگر بهصورت خودکار وجود ندارند. با bridge link، ip neigh و capture محدود مسیر ARP/IP را ببین.
خطای بازکردن TAP به owner/device مربوط است؛ اتصال به bridge، IP guest و driver NIC سه بررسی دیگرند. libvirt میتواند مدیریت این resourceها را بهجای script دستی انجام دهد.
بازگشت: guest را خاموش، شبکهٔ user-mode قبلی را بازیابی و سپس tap305 و brq305 را با ip link delete حذف کن. interface مدیریتی را هرگز برای این تمرین enslave نکردهایم.
منبع: شبکهٔ QEMU ، invocation TAP .