Score:1

TcpDump แสดงการตอบกลับของ ICMP แต่ PING หมดเวลา

ธง pr

ฉันกำลังพยายามเปลี่ยนเส้นทางการรับส่งข้อมูลเครือข่ายสำหรับบัญชีผู้ใช้เฉพาะ (vpnnet) ไปยังเซิร์ฟเวอร์ OpenVPN อุโมงค์ทำงานได้ดีเมื่อดึงเส้นทางเริ่มต้น แต่ฉันไม่ต้องการกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดผ่าน VPN สำหรับกระบวนการที่ทำงานด้วย UID ที่กำหนดเท่านั้น ดังนั้นฉันจึงปิดใช้งานการดึงเส้นทางเริ่มต้นโดยอัตโนมัติและได้สิ่งต่อไปนี้:

iptables -t mangle -A OUTPUT -m เจ้าของ --uid-owner vpnnet -j MARK --set-mark 42
เส้นทาง ip เพิ่มค่าเริ่มต้นผ่าน 10.1.1.1 ตาราง 42
กฎ ip เพิ่ม fwmark 42 ตาราง 42
iptables -t nat -A POSTROUTING -o tun0 -m mark --mark 42 -j SNAT --to-source 10.1.1.100

ที่อยู่ในท้องถิ่นคือ 10.1.1.100 และ 10.1.1.1 เป็นเกตเวย์ระยะไกล

ifconfig
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
        inet 10.1.1.100 netmask 255.255.255.0 ปลายทาง 10.1.1.100
        inet6 ****::****::****::****::**** คำนำหน้า 64 scopeid 0x20<link>
        ไม่ระบุ 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
        แพ็คเก็ต RX 128 ไบต์ 10032 (9.7 KiB)
        ข้อผิดพลาด RX 0 หลุด 0 โอเวอร์รัน 0 เฟรม 0
        แพ็กเก็ต TX 108 ไบต์ 8832 (8.6 KiB)
        ข้อผิดพลาด TX 0 หลุด 0 โอเวอร์รัน 0 พาหะ 0 ชนกัน 0
แสดงเส้นทาง ip
ค่าเริ่มต้นผ่าน 172.31.1.1 dev eth0 proto dhcp metric 100
10.1.1.0/24 dev tun0 proto kernel scope link src 10.1.1.100 เมตริก 50
172.31.1.0/24 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 172.31.1.100 เมตริก 100
172.31.1.1 dev eth0 proto static scope link เมตริก 100
ตารางแสดงเส้นทาง ip 42
ค่าเริ่มต้นผ่าน 10.1.1.1 dev tun0

เมื่อเริ่มต้นเชลล์ภายใต้ผู้ใช้ vpnuser และ ping เซิร์ฟเวอร์ Google DNS 8.8.8.8 ping มีการสูญเสียแพ็คเก็ต 100% TcpDump แสดงให้เห็นว่ามีการร้องขอและมีการตอบกลับเข้ามาในอินเทอร์เฟซที่ถูกต้อง:

tcpdump -nn -vv -i tun0
tcpdump: กำลังฟัง tun0, RAW ประเภทลิงก์ (Raw IP), ขนาดการจับภาพ 262144 ไบต์
20:33:28.938772 ip: (tos 0x0, ttl 64, id 7713, offset 0, flag [DF], proto ICMP (1), ความยาว 84)
    10.1.1.100 > 8.8.8.8: คำขอเสียงสะท้อน ICMP, id 5078, seq 1, ความยาว 64
20:33:29.029533 ip: (tos 0x48, ttl 115, id 0, offset 0, flag [none], proto ICMP (1), ความยาว 84)
    8.8.8.8 > 10.1.1.100: ICMP echo reply, id 5078, seq 1, length 64
20:33:29.938962 ip: (tos 0x0, ttl 64, id 7790, offset 0, flag [DF], proto ICMP (1), ความยาว 84)
    10.1.1.100 > 8.8.8.8: คำขอเสียงสะท้อน ICMP, id 5078, seq 2, ความยาว 64
20:33:30.029685 ip: (tos 0x48, ttl 115, id 0, offset 0, flag [none], proto ICMP (1), ความยาว 84)
    8.8.8.8 > 10.1.1.100: ICMP echo reply, id 5078, seq 2, length 64
20:33:30.938838 ip: (tos 0x0, ttl 64, id 8152, offset 0, flag [DF], proto ICMP (1), ความยาว 84)
    10.1.1.100 > 8.8.8.8: คำขอเสียงสะท้อน ICMP, id 5078, seq 3, ความยาว 64
20:33:31.029179 ip: (tos 0x48, ttl 115, id 0, offset 0, flag [none], proto ICMP (1), ความยาว 84)
    8.8.8.8 > 10.1.1.100: ICMP echo reply, id 5078, seq 3, length 64
ปิง 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) ไบต์ของข้อมูล
^ซี
--- สถิติ ping 8.8.8.8 ---
ส่ง 12 แพ็กเก็ต ได้รับ 0 แพ็กเก็ต สูญเสียแพ็กเก็ต 100% เวลา 11001 มิลลิวินาที

บันทึก iptables ไม่แสดงแพ็กเก็ตที่ถูกทิ้ง

ระบบปฏิบัติการคือ CentOS 7

ฉันจะขอบคุณมากถ้ามีใครสามารถชี้ทิศทางที่ถูกต้องให้ฉันได้

mx flag
โพสต์วิธีแก้ปัญหาในคำตอบด้านล่าง ไม่ใช่ในคำถาม
Score:0
ธง pr

เพื่อตอบคำถามของฉันเองและช่วยเหลือผู้อื่นที่มีปัญหานี้ ... การกรองเส้นทางย้อนกลับเริ่มทำงานและ rp_filter ทิ้งแพ็กเก็ตดู คำอธิบาย. วิธีแก้ไขคือตั้งค่า rp_filter เป็น 2 สำหรับ จูน0 อินเตอร์เฟซ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา