Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4173128
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: BSD

2015-09-28 10:17:51

场景:
       Proxy跟NAT、FWD、REVERS的区别:
    (1)NAT是地址转换,改变的是源地址和源端口,把源地址为私有IP换成指定的公网IP,从而使内网机器能上网;
 (2)Proxy是透明代理,改变的仅仅是目标地址,如果指定端口,则一并改变端口。一般用来限制内网机器所访问的目标,比如上某一特别网站时,则代理至某一个提示主机,返回提示页面。
    (3)FWD仅仅是将包做转发,除了发向localhost的包以外,对源地址、目标地址以及两个端口,都不会改变。
    (4)revers也是改变的目标地址,但是端口没法控制,主要用在内网网卡上作nat,如果用来做NAT上网的话,内网接口必须是公有IP段,可以正确路由出去才可以。源代码里面的实现就是in当成out,out变成了in。


语法:

NAT和FWD都有很多示例,主要说proxy:
(1)natd -p 3333 -proxy_only -proxy_rule "server 192.168.6.6:80 proto tcp" -log
(2)ipfw add 100 divert 3333 tcp from any to any 80 out via em0

说明:
(1)proxy_rule的参数很多,可以参照man libalias;
(2)如果没有指定proto,则默认为tcp,不会使用udp;
(3)ipfw nat(内核nat)还没有实现proxy_rule,正在提交给ipfw maillist;



示例:
请求网卡为em0,单网卡,dns服务器监听在vlan虚拟网卡:192.168.1.1:

ipfw add 00100  divert 3333 udp from 10.0.0.0/8 to any dst-port 53 in via em4
ipfw add00110  divert 3333 udp from 192.168.1.0/24 53 to 10.0.0.0/8 out via em4
ipfw add20000   allow ip from any to any dst-port 53
ipfw add21000   allow ip from any 53 to any
ipfw add50000  48 27128 allow log logamount 10000 ip from any to any

natd命令:
natd -p 3333 -proxy_only -proxy_rule "server 192.168.1.1 proto udp" -log -reverse

注意事项:
(1)server地址不能为入口网卡ip,否则会被忽略掉;
(2)因为是在内网卡上进行nat(proxy),所以要加reverse
(3)divert规则中的端口一定要准确,否则会把出去的正字缓存请求也一起处理掉,造成外网无法访问。




阅读(2599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~