前些时候在局域网内,做端口映射,通过一台freebsd服务器,映射到自己办公室的机器上,想在另外一个机房的vlan网段访问自己的机器,自己机器的网关是那台freebsd服务器,但是vlan的网关是另外一台服务器,freebsd机器是可以在任何网段中都能访问,但自己的机器不在访问列表内,所以在freebsd上做了端口映射,映射到自己机器上,并且在freebsd服务器上做好静态路由,把所有访问机房的网段路由都指向vlan网关,配置好后,竟然没办法连通,经过抓包后发现,原来由于办公室机器和vlan网关在同一网段,静态路由指向vlan网关后,freebsd服务器认为,我和vlan网关在同一网段,不需要再通过它转发消息,就直接发给我icmp重定向包,让我的机器直接发包到vlan网关,但是我的机器地址又没有访问机房网段的权限,所以包被vlan网关给过滤,发现这个原因后,查找相关资料,关闭freebsd的端口重定向功能,配置
/etc/sysctl.conf
在其中添加
net.inet.ip.redirect = 0
问题解决。