免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2362 | 回复: 4
打印 上一主题 下一主题

求助:关于pf的端口转发 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-08 14:11 |只看该作者 |倒序浏览
我在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
希望把所有发到这台服务器的8080端口的tcp请求都转发到202.116.182.253这个服务器的8080端口。

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

我用pfctl -s state察看状态,能看到这样的东西
self tcp 202.116.182.253:8080 <- 202.118.43.175:8080 <- 165.135.153.95:34836 CLOSED:SYN_SENT

请问这是为什么?

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
2 [报告]
发表于 2007-10-08 14:34 |只看该作者
round-robin sticky-address 这个不要哪?你用地址池了?

论坛徽章:
0
3 [报告]
发表于 2007-10-08 14:43 |只看该作者
本来想做,没做成

论坛徽章:
0
4 [报告]
发表于 2007-10-08 14:59 |只看该作者
我发现rdr只能转到本地网卡的端口上

论坛徽章:
0
5 [报告]
发表于 2007-10-08 16:08 |只看该作者
终于明白为什么转发会失败了
http://www.sunchangming.com/blog/?p=223

假设有这样一条规则

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 发一个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
然后在经过pf执行rdr规则之后,包头如下

Source address: 192.0.2.1
Source port: 4028
Destination address: 192.168.1.5
Destination port: 8000
然后这个包会从24.65.1.13某个合适的网卡出去(根据netstat -nr中的路由表规则而定),到达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继续发SYN包,192.0.1.5继续回复,直到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的所有向外的数据都是通过24.65.1.13进行nat出去的,那么连接就可以顺利建立。因为此时192.0.2.1看到的是24.65.1.13的IP。

如果转发是在同一台主机上发生,那么就可以看到一个有趣的现象,用netstat/sockstat看到的连接状态是不对称的。会看到一条LOCAL ADDRESS为127.0.0.1:59165 、FOREIGN ADDRESS 为127.0.0.1:80的连接而与之对应的却是FOREIGN ADDRESS为127.0.0.1:59165但LOCAL ADDRESS为8080的连接。原因是发生了一条从80到8080的转发。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP