看板 FreeBSD 關於我們 聯絡資訊
各位好 第一次操作address_redirect,處理不來實在有點灰心~~希望有人能救救我 公司有一個service,只准在公司中使用,每次要用都得跑到公司,滿麻煩的 因此想試試傳說已久的address_redirect功能,練練刀,順便徒個方便 公司的網路是二組網路構成,一組是10.10.x.x,另一組是140.116.99.x 在公司中任何一個網孔上,都可以連到這兩組網路 而在家中只能碰到140.116.99.x(當然碰不到10.10.x.x) 有service的機器位於10.10.10.2,我叫它A機器,它開的連接port是2112,而其他會再用 到的port有那些我並不清楚 我希望在我公司辨公桌上跑freebsd的B機器(ip=140.116.99.200)利用address_redirect 把所有由外界連到B上的封包都轉到A去,讓我能由外界透過B連接到A去 我在B機器上裝了兩片網卡,vr0和rl0 vr0設定成140.116.99.88 rl0設定成10.10.99.88 default router設定成140.116.99.254 這樣的設定下,連接到internet是ok的,由家中連接到B是ok的(透過140.116.99.88) 由在這台電腦前連到A(10.10.10.2)也是ok的 因為在同一個switch下有兩組不同的ip,因此kernel一直鬼叫說不對的interface收到 不對的封包。但無論如何,網路是通的,因此我把/etc/sysconf.conf中的/dev/console 改為/dev/null 接著我把natd打開(kernel已設定好,加入了IPFIREWALL和IPDIVERT兩個option) /etc/default/rc.conf中的設定設好,即gateway, firewall, natd都打開 natd連接到internet的interface設定為vr0 到目前所有的設定都照著handbook上操作 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-natd.html 接著我照handbook上給參數 natd -n vr0 -redirect_address 10.10.10.2 140.116.99.88 結果,不止是連不上A機器,連B機器上基本的service都連不上了(連接140.116.99.88) 可是,如果我由公司內網路連接10.10.99.88,卻是ok的 但如果我參數給 natd -n vr0 -redirect_address 10.10.10.2 10.10.99.88 那在公司內部,連接10.10.99.88和140.116.99.88也都是ok的 問題如下: (1)我期待address_redirect能把由連到140.116.99.88的封包,port不變,只把 source ip改成自已的ip,既10.10.99.88或是140.116.99.88 然後把它經由10.10.99.88丟到公司內部網路,連接上10.10.10.2 等10.10.10.2處理完封包送回來後,由10.10.99.88收到封包,再把收到的封包dist ip 改成原來的source ip,最後傳回我家中的電腦 就我所知,address_redirect該可以達到這樣的要求才是,不知有否錯誤? 或,有其他更適合的方法來處理這個問題 (2)如果(1)是ok的,那我natd的設定有錯嗎? 或是須要另外加開port_redirect?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.58.150