Score:0

nftables ส่งต่อจาก wlan0 ถึง eth0 แต่ไม่มีอะไรเกิดขึ้น

ธง cn

ฉันมี Raspberry Pi ที่เชื่อมต่อกับเราเตอร์ไร้สายด้วย wlan0 และมีเซิร์ฟเวอร์ที่เชื่อมต่อกับ eth0 การเชื่อมต่อทั้งสองนี้ทำงานได้ดี

eth0 ระหว่าง Pi และเซิร์ฟเวอร์ได้รับการกำหนดค่าแบบคงที่ เพื่อให้ eth0 ของ Pi มี IP 192.168.3.23/24 และเซิร์ฟเวอร์มี IP 192.168.3.200/24 wlan0 ของ Pi มี IP 192.168.1.131/24

ตอนนี้ฉันกำลังพยายามส่งต่อเพื่อที่ว่าเมื่อเชื่อมต่อพอร์ต 88 ของ Pi มันจะส่งต่อไปยังเซิร์ฟเวอร์ที่อยู่เบื้องหลัง ฉันเปิดใช้งานการส่งต่อตาม sysctl -a | เกรปไปข้างหน้า:

net.ipv4.conf.all.bc_forwarding = 0
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.bc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.eth0.bc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.lo.bc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.wlan0.bc_forwarding = 0
net.ipv4.conf.wlan0.forwarding = 1
net.ipv4.conf.wlan0.mc_forwarding = 0
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

ฉันยังมี nftable กำหนดค่าดังนี้:

ตาราง ip แนท {
        การกำหนดเส้นทางลูกโซ่ {
                พิมพ์ nat hook กำหนดลำดับความสำคัญก่อนกำหนด dstnat; นโยบายยอมรับ;
                tcp dport { 88, 443 } dnat เป็น 192.168.3.200
        }

        ห่วงโซ่ postrouting {
                พิมพ์ nat hook ลำดับความสำคัญหลังการกำหนดเส้นทาง srcnat; นโยบายยอมรับ;
        }
}

AFAIK สิ่งนี้ควรส่งต่อพอร์ต TCP 88 และ 443 ไปยังเซิร์ฟเวอร์ที่ 192.168.3.200 แต่ไม่มีอะไรเกิดขึ้น ถ้าฉันทำ ขด http://192.168.1.131:88คำขอหยุดทำงานโดยไม่มีกำหนด กฎ nftables กำลังทำอะไรบางอย่างอยู่ เพราะหากฉันล้างชุดกฎ คำขอจะถูกปฏิเสธทันที

ฉันพลาดอะไรไปหรือเปล่า

Score:3
ธง cz

Your NAT rules fail to specify the interface where packets come in (for DNAT or go out (for SNAT) thus they are applying to all routed traffic in both directions, which is not what you want.

You at least need to specify the incoming interface for DNAT to work properly. For example:

                iif wlan0 tcp dport { 88, 443 } dnat to 192.168.3.200

You're missing the outbound masquerade rule entirely from your postrouting chain. For example:

                oif wlan0 masquerade
Score:1
ธง ar

ด้วย NAT ปลายทาง เฉพาะปลายทางเท่านั้นที่จะถูกเขียนใหม่ แหล่งที่มาไม่ถูกแตะต้อง ดังนั้นแพ็คเกจใดๆ ที่มาถึงเซิร์ฟเวอร์จะมีแหล่งที่มาใน 192.168.1.0/24

เซิร์ฟเวอร์ของคุณอาจไม่มีเส้นทางไปถึง 192.168.1.0/24 มีเส้นทางไปถึง 192.168.3.0/24 เท่านั้น มันจึงยกมือขึ้นและทิ้งห่อนั้นไป

คุณมีสองวิธีในการแก้ปัญหานี้:

  1. ตั้งค่าอุปกรณ์ 192.168.3.23 เป็นเกตเวย์เริ่มต้นบนเซิร์ฟเวอร์ และใช้การตั้งค่าไฟร์วอลล์ที่เหมาะสม
  2. ใช้ Source NAT เช่นกัน และเขียนทั้งต้นทางและปลายทางของแพ็กเกจที่ส่งต่อใหม่

โพสต์คำตอบ

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