亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 求助:關于pf的端口轉發(fā) [打印本頁]

作者: snnn    時間: 2007-10-08 14:11
標題: 求助:關于pf的端口轉發(fā)
我在202.118.43.175的pf.conf中寫了這樣一條
rdr proto tcp from any to any port 8080 -> 202.116.182.253 port 8080 round-robin sticky-address
希望把所有發(fā)到這臺服務器的8080端口的tcp請求都轉發(fā)到202.116.182.253這個服務器的8080端口。

然后我從165.135.153.95連接202.118.43.175的8080端口,但是,連不上。

我用pfctl -s state察看狀態(tài),能看到這樣的東西
self tcp 202.116.182.253:8080 <- 202.118.43.175:8080 <- 165.135.153.95:34836 CLOSED:SYN_SENT

請問這是為什么?
作者: 劍心通明    時間: 2007-10-08 14:34
round-robin sticky-address 這個不要哪?你用地址池了?
作者: snnn    時間: 2007-10-08 14:43
本來想做,沒做成
作者: snnn    時間: 2007-10-08 14:59
我發(fā)現(xiàn)rdr只能轉到本地網(wǎng)卡的端口上
作者: snnn    時間: 2007-10-08 16:08
終于明白為什么轉發(fā)會失敗了
http://www.sunchangming.com/blog/?p=223

假設有這樣一條規(guī)則

rdr on tl0 proto tcp from 192.0.2.1 to 24.65.1.13 port 80 \
   -> 192.168.1.5 port 8000

那么如果從192.0.2.1 連接24.65.1.13 的tcp 80端口,那么首先192.0.2.1會給24.65.1.13 發(fā)一個SYN包。包頭如下

Source address: 192.0.2.1
Source port: 4028 (arbitrarily chosen by the operating system)
Destination address: 24.65.1.13
Destination port: 80
然后在經(jīng)過pf執(zhí)行rdr規(guī)則之后,包頭如下

Source address: 192.0.2.1
Source port: 4028
Destination address: 192.168.1.5
Destination port: 8000
然后這個包會從24.65.1.13某個合適的網(wǎng)卡出去(根據(jù)netstat -nr中的路由表規(guī)則而定),到達192.168.1.5這臺主機。

192.168.1.5 這臺主機會給192.0.2.1 回復一個SYN-ACK的包。如果不出意外,192.0.2.1會順利收到這個包。但是它不會理會。因為它試圖與24.65.1.13的80端口建立連接,但是得到的回復卻是來自于192.0.1.5。于是192.0.2.1繼續(xù)發(fā)SYN包,192.0.1.5繼續(xù)回復,直到timeout。

此時用pfctl -s state查看,會得到這樣的信息

self tcp 192.0.1.5:8000 <- 24.65.1.13:80 <- 192.0.2.1:4028       CLOSED:SYN_SENT

如果192.0.1.5的所有向外的數(shù)據(jù)都是通過24.65.1.13進行nat出去的,那么連接就可以順利建立。因為此時192.0.2.1看到的是24.65.1.13的IP。

如果轉發(fā)是在同一臺主機上發(fā)生,那么就可以看到一個有趣的現(xiàn)象,用netstat/sockstat看到的連接狀態(tài)是不對稱的。會看到一條LOCAL ADDRESS為127.0.0.1:59165 、FOREIGN ADDRESS 為127.0.0.1:80的連接而與之對應的卻是FOREIGN ADDRESS為127.0.0.1:59165但LOCAL ADDRESS為8080的連接。原因是發(fā)生了一條從80到8080的轉發(fā)。




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2