上网,大家都用natd。不过如果遇到内网中有人使用h.232或sip之类的voip协议,就会出问题。因为上述两种协议无法穿越natd
下面详细说明使用freebsd模块路由器转发的过程,并说明freebsd4与freebsd5在应用中的不同之处。
概述:
主要使用route命令与ipfw中的fwd命令来完成。fwd子句通常用于做透明代理,它的本质是实现下一跳的转发。
问题:内网中有一台机器需要有互联网真实IP地址,它使用h.232协议,只需要访问到互联网中61.1.1.1的主机。拟分配给它的ip地址是219.1.1.3
说明:无论是dnat和snat都是使用修改ip包中地址来实现与互联网互联,这与h.232协议有冲突。具体原因不赘述,总之natd不符合要求。
解决方案:
互联网
|
|-----------------| 219.1.1.1 00:04:3c:ab:dd:eb xl0
| 网关 A |
|-----------------| 192.168.254.254 00:d0:c9:68:16:93 fxp0
|
|-----------------| 192.168.254.250 00:50:04:ba:98:d5 xl1
| 网关 B |
|-----------------| 219.1.1.2 00:10:5a:85:d5:83 xl0
|
|-----------------| 219.1.1.3
| 客户机器 |
|-----------------|
客户机器需要互联网真实IP地址。网关A是原有互联网网关。网关B是为了实现此项路由转发功能,增加的服务器。
网关A、网关B均为Freebsd。客户机器随意。
方案一:网关A为Freebsd5.3,网关B为Freebsd4
1. 网关B的转发
ipfw add 580 fwd 192.168.254.254 ip from 219.1.1.3 to 61.1.1.1
ipfw add 582 fwd 219.1.1.3 ip from 61.1.1.1 to 219.1.1.3
2. 网关A的转发
ipfw add 580 fwd 219.234.226.225 ip from 219.1.1.3 to 61.1.1.1
ipfw add 582 fwd 192.168.254.250 ip from 61.1.1.1 to 219.1.1.3
3. 在网关A上为客户机器的外部IP做arp代理,代理的mac地址为本机外网网卡mac,使上级路由器将219.1.1.3的包转发到本机。
arp -S 219.1.1.3 00:04:3c:ab:dd:eb pub
可以用netstat -rn | grep 219.1.1.3看到:
会员注册
会员登录
个人空间