我的校园里有基于 FreeBSD 的路由器。
这些类型的路由器的配置很简单:两个接口,其中一个接口通向外部互联网,另一个接口通向本地网络。
在我的本地网络中有三个子网:192.168.0.0/24、192.168.1.0/24、192.168.200.0/24。ipfw 配置为透明 nat,启用 sysctl 转发。
本地接口根据子网配置为三个 IP 别名:192.168.0.1、192.168.1.1 和 192.168.200.1。此外,它还连接到单个 l2 可管理 HP 交换机。交换机默认配置为单个 VLAN。
从 192.168.0.0/24 子网客户端,我可以访问 192.168.1.0/24 客户端,反之亦然。但对于 192.168.200.0/24 中的客户端,其他两个子网无法访问,尽管可以通过默认网关 192.168.200.1 访问互联网。
根据初始设计,所有内部子网必须相互可达。
netstat -rn
FreeBSD 路由器上的输出:
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default xxx.xxx.xxx.xxx UGS xl0
127.0.0.1 link#4 UH lo0
192.168.0.0/24 link#1 U bge0
192.168.0.1 link#1 UHS lo0
192.168.0.2 link#1 UHS lo0
192.168.1.0/24 link#1 U bge0
192.168.1.1 link#1 UHS lo0
192.168.200.0/24 link#1 U bge0
192.168.200.1 link#1 UHS lo0
xxx.xxx.xxx.xxx/30 link#3 U xl0
xxx.xxx.xxx.xxx link#3 UHS lo0
输出为ipfw
:
00050 1123362356 950030754266 nat 123 ip4 from any to any via xl0
00100 26229559 14516116395 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 0 0 deny ip from any to ::1
00500 0 0 deny ip from ::1 to any
00600 0 0 allow ipv6-icmp from :: to ff02::/16
00700 0 0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 0 0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 0 0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000 0 0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65000 734630742 621499874050 allow ip from any to any
65535 9 589 deny ip from any to any
答案1
那么从 192.168.200.0/24 机器到另一台 192.168/16 的跟踪路由是什么样的:路径是否在路由器处结束,或者是否有其他东西吃了数据包?
如果它确实在路由器处结束,请尝试提高 ipfw 的详细程度(使用 pf,您可以向丢弃/拒绝规则添加日志选项)。