Re: [問題] 請問iptables和ip queue
※ 引述《woomar (hi)》之銘言:
: 我想請問一下
: 我有一台機器有兩張網卡
: eth0是對外的(192.168.1.3)
: eth1是對內的(192.168.3.254)(NAT GW)
: 這台機器本身就有做NAT
: 我現在想要用iptables加上ip queue的方法做封包的tunnel
: 不曉得是不是因為NAT的關係
: 我只能在FORWARD 抓到封包(ex:192.168.1.4-->192.168.3.9)
根據 netfilter hook 法則,的確 1.4 -> 3.9 的 packet
會先經過 prerouting 再經過 forward 由 eth1 出去
( net.ipv4.ip_forward == 1)
: 然後我用libipq修改封包
: 想要把封包tunnel給192.168.1.5
: 我在ip header上修改了dst addr
: 也重新算過checksum
: 也用過ipq_set_verdict(NF_ACCEPT)
: 不過封包並沒有送給192.168.1.5
: 不管是只修改daddr+checksum
: 或是多加一層ip header上去都沒有用
: 我想請問的是
: 是因為已經到forward階段了
: 所以給192.168.1.5的封包被drop掉了嗎
: 我應該要怎麼做才能讓這些封包藉由eth0送給192.168.1.5呢?
看你的情況 ipq 的 rule 應該是 hook 在 forward 上
我記得 forward 似乎不能 input/output 同一個 interface
(也許我記錯了...!!)
以你的情況,如果是 1.4 -> 3.9 想要轉送給 1.5 就形成
in/out 同個 if
我之前的經驗是藉由 libipq 將 packet 抓起來後,利用 raw
socket 將改過的 packet 再送出去即可,完成後回 nf_drop 給
ipq ,讓他可以將 packet free, accept 就會繼續送給 3.9
如此應該可以達到你的要求
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.188.188
推
04/10 03:37, , 1F
04/10 03:37, 1F
→
04/10 03:39, , 2F
04/10 03:39, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章