ฉันมีบล็อก IP สาธารณะ 51.x.x.16/28 ที่ฉันพยายามใช้กับ libvirt/qemu VM ภายใน VM (ip 51.x.x.18) ฉันพยายามสร้างการเชื่อมต่อ tcp ขาออก (http)
การใช้ tcpdump บนโฮสต์ฉันเห็นว่ามีการส่งและรับ SYN และ SYN-ACK อย่างไรก็ตามภายใน VM ไม่เคยได้รับ SYN-ACK (ไม่มีร่องรอยบน tcpdump และการเชื่อมต่อค้าง)
ฉันมีการเชื่อมต่อจาก VM ไปยังบริดจ์ (brtest) และโฮสต์อินเตอร์เฟส (eno1) จากโฮสต์ฉันยังสามารถเชื่อมต่อกับ VM สิ่งนี้สามารถทำให้เกิดอะไรได้บ้าง? ฉันได้แนบการกำหนดค่าบริดจ์, tcpdump, iptables (กฎที่สร้างโดย libvirt) และ ifconfig ด้านล่าง
brtest.xml
<network>
<name>test</name>
<bridge name="brtest"/>
<forward mode="route" dev="eno1" />
<ip address="51.x.x.30" netmask="255.255.255.240">
<dhcp>
<host mac="02:xx:xx:xx:xx:49" ip="51.x.x.18"/>
</dhcp>
</ip>
</network>
tcpdump -n -i eno1
02:07:11.125655 IP 51.x.x.18.51236 > 76.x.x.173.80: ค่าสถานะ [S], seq 2472740296, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 3379788359 ecr 0,nop,wscale 7], ความยาว 0
02:07:11.135352 IP 76.x.x.173.80 > 51.x.x.18.51236: ค่าสถานะ [S.], seq 1083725147, ack 2472740297, ชนะ 65160, ตัวเลือก [mss 1460,sackOK,TS val 2243378625],ecr 3379,wop 78n8,wop 78n8,wop 78n ความยาว 0
iptables -n -v -L
Chain INPUT (นโยบายยอมรับแพ็กเก็ต 401, 43908 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
516 53705 LIBVIRT_INP ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
เชน FORWARD (นโยบาย DROP 0 แพ็กเก็ต 0 ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
31 1876 LIBVIRT_FWX ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWI ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWO ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (นโยบายยอมรับ 453 แพ็คเก็ต, 193K ไบต์)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
546 209K LIBVIRT_OUT ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0
เชน LIBVIRT_FWI (อ้างอิง 1 รายการ)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 ยอมรับทั้งหมด -- eno1 brtest 0.0.0.0/0 51.x.x.16/28
0 0 ปฏิเสธทั้งหมด -- * brtest 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
0 0 ยอมรับทั้งหมด -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate ที่เกี่ยวข้อง ก่อตั้ง
0 0 ปฏิเสธทั้งหมด -- * virbr0 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
เชน LIBVIRT_FWO (อ้างอิง 1 รายการ)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
31 1876 ยอมรับทั้งหมด -- brtest eno1 51.x.x.16/28 0.0.0.0/0
0 0 ปฏิเสธทั้งหมด -- brtest * 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
0 0 ยอมรับทั้งหมด -- virbr0 * 192.168.122.0/24 0.0.0.0/0
0 0 ปฏิเสธทั้งหมด -- virbr0 * 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-port-ไม่สามารถเข้าถึงได้
เชน LIBVIRT_FWX (อ้างอิง 1 รายการ)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 ยอมรับทั้งหมด -- brtest brtest 0.0.0.0/0 0.0.0.0/0
0 0 ยอมรับทั้งหมด -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
เชน LIBVIRT_INP (อ้างอิง 1 รายการ)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
11 781 ยอมรับ udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ยอมรับ tcp -- brtest * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
5 1585 ยอมรับ udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ยอมรับ tcp -- brtest * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ยอมรับ udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ยอมรับ tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ยอมรับ udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ยอมรับ tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
โซ่ LIBVIRT_OUT (อ้างอิง 1 รายการ)
pkts bytes target prot เลือกใช้ปลายทางต้นทาง
0 0 ยอมรับ udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ยอมรับ tcp -- * brtest 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
4 1312 ยอมรับ udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ยอมรับ tcp -- * brtest 0.0.0.0/0 0.0.0.0/0 tcp dpt:68
0 0 ยอมรับ udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ยอมรับ tcp -- * virbr0 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ยอมรับ udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ยอมรับ tcp -- * virbr0 0.0.0.0/0 0.0.0.0/0 tcp dpt:68
ifconfig
brtest: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 51.x.x.30 netmask 255.255.255.240 ออกอากาศ 51.x.x.31
อีเธอร์ 52:xx:xx:xx:xx:fe txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 134 ไบต์ 10118 (10.1 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 49 ไบต์ 8781 (8.7 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 146.x.x.42 netmask 255.255.255.0 ออกอากาศ 146.x.x.255
inet6 fe80::xxxx:xxxx:xxxx:xxxx คำนำหน้าlen 64 scopeid 0x20<link>
inet6 2001:xxxx:xxx:xxxx:: คำนำหน้า 57 scopeid 0x0<ทั่วโลก>
อีเธอร์ d0:xx:xx:xx:xx:14 txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 11073 ไบต์ 1099048 (1.0 MB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 5843 ไบต์ 923130 (923.1 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
แท้จริง: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 เน็ตมาสก์ 255.0.0.0
inet6 ::1 คำนำหน้าlen 128 scopeid 0x10<host>
วนซ้ำ txqueuelen 1,000 (วนกลับในเครื่อง)
แพ็คเก็ต RX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
vethe57ac9e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::249a:c8ff:fe26:f4c1 คำนำหน้า 64 scopeid 0x20<ลิงค์>
อีเธอร์ 26:xx:xx:xx:xx:c1 txqueuelen 0 (อีเธอร์เน็ต)
แพ็คเก็ต RX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 15 ไบต์ 1226 (1.2 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
virbr0: ค่าสถานะ = 4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 ออกอากาศ 192.168.122.255
อีเธอร์ 52:xx:xx:xx:xx:d2 txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 0 ไบต์ 0 (0.0 B)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::xxxx:xx:xxxx:xxxx คำนำหน้า 64 scopeid 0x20<link>
อีเธอร์ fe:xx:xx:xx:xx:49 txqueuelen 1000 (อีเธอร์เน็ต)
แพ็คเก็ต RX 138 ไบต์ 12591 (12.5 KB)
ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
แพ็กเก็ต TX 472 ไบต์ 31107 (31.1 KB)
ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0