免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: triumph
打印 上一主题 下一主题

[网络管理] iptables 域名转向 [复制链接]

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
11 [报告]
发表于 2009-01-14 10:01 |只看该作者
试试nginx做前端

论坛徽章:
0
12 [报告]
发表于 2009-01-14 10:01 |只看该作者
原帖由 剑次狼 于 2008-11-14 10:39 发表
手上现在没测试环境,你可以试试这样可以不
-A PREROUTING -m string --algo bm --string "www.demo1.com" -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.111
-A PREROUTING -m string --al ...

经测试无效。

论坛徽章:
0
13 [报告]
发表于 2009-01-14 10:06 |只看该作者
原帖由 chenyx 于 2009-1-14 10:01 发表
试试nginx做前端

就是想在iptables、tc、squid、中解决,squid太复杂,得用rewrite url ,幻想不增加服务的情况下的简单解决方法。

论坛徽章:
0
14 [报告]
发表于 2009-01-14 10:43 |只看该作者
原帖由 kns1024wh 于 2008-11-14 14:11 发表
打上标记也是可以的
通过防火墙的访问标记,指定路由信息更加的合理

肯定是不行的,iptables只认ip,最终不同的域名还是会解析到同一个ip!

论坛徽章:
0
15 [报告]
发表于 2009-01-14 10:46 |只看该作者
看来是无解了,只有仰仗nginx、varnish等来解决了!

论坛徽章:
0
16 [报告]
发表于 2009-01-14 11:42 |只看该作者
目前的 iptables 是无法实现的
因为 iptables 工作在网络层,他看到的仅仅是数据包
domain 存放在两种数据包中
1、DNS 请求的 udp 包
2、HTTP 请求头部的 host 字段

对于 1 来说,我们得不到它,因为 DNS 请求是去放用户设置的 DNS 地址的,而且即便获得到了也做不了什么
对于 2 来说,我们虽然可以获得 host 字段具体域名,但如果在获得后再转向的话,前面的 connection 已经建立了,后面突然转向就未被了 TCP 工作原理,理论上是无法实现的

但是,利用 squid 或者 nginx 却是可以实现的,他们相当于七层代理,完全把 HTTP 请求截获,换成新的请求发向内网,得到信息再回传给客户,这样可行

至于前面有人说的 mark、tc 等,都是理论上行不通的,违反了 OSI 七层模型中 TCP 传输原理

论坛徽章:
0
17 [报告]
发表于 2009-01-14 12:24 |只看该作者

回复 #16 platinum 的帖子

十分感谢,讲得很透!

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
18 [报告]
发表于 2009-10-12 13:46 |只看该作者

回复 #16 platinum 的帖子

拓扑
                                  ISP  221.11.1.67
                                    |                                              /192.168.1.254
                                    |              10.0.0.2543           /
         221.11.1.68     路由器       -----------           防火墙   -------------交换机
                                     10.0.0.254                                       |
                                                                              www服务器 192.168.1.253
                                                                               mail服务器 192.168.1.250


白金版主,我今天也是要做这个
  1. /sbin/iptables -t nat -A PREROUTING -d www.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.253
  2. /sbin/iptables -t nat -A PREROUTING -d mail.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.250
复制代码

第一种情况:
也就是说DNS解析的时候
www.nihao.com 为   221.11.1.68
mail.nihao.com也为   221.11.1.68
的话,需要加nginx来做代理,从外网可以访问这两个,是吧

第二种情况:
DNS解析的时候
www.nihao.com 为 221.11.1.68
mail.nihao.com   为221.11.1.69
的时候,外网直接就可以访问了是吧

[ 本帖最后由 gamester88 于 2009-10-12 13:47 编辑 ]

论坛徽章:
0
19 [报告]
发表于 2009-10-12 17:15 |只看该作者
这个起虚拟主机可行不?

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
20 [报告]
发表于 2009-10-15 09:16 |只看该作者

回复 #18 gamester88 的帖子

我这个是两个外网的地址
在路由器上做了221.11.1.68和221.11.1.69的80端口映射到10.0.0.253上的80和8080了,然后在防火墙上
  1. # iptables -t nat -A PREROUTING -d mail.nihao.com -p tcp -dport 80 -j DNAT --to 192.168.1.253
  2. iptables v1.4.3: multiple -d flags not allowed
  3. Try `iptables -h' or 'iptables --help' for more information.
复制代码

报错,于是
iptables -t nat -A PREROUTING -d 10.0.0.253 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.253
iptables -t nat -A PREROUTING -d 10.0.0.253 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.250:80
这样在外网输入两个域名都可以了

问老大还有别的简洁办法没
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP