我正在尝试在电缆/DSL 调制解调器和 LAN 机器之间设置一个 freebsd 路由器。这是逻辑设置:
连接到互联网的电缆/DSL 调制解调器:
gateway 192.168.0.1
FreeBSD 路由器(有两个网卡):
em0 192.168.0.121
ue0 10.0.0.1
FreeBSD 局域网机器:
em0 10.0.0.2
看起来从 lan 到 wan 的路径应该是 10.0.0.2->10.0.0.1->192.168.0.1->wan 并且我应该能够从 lan 机器 ping 互联网上的机器。
总而言之,不过:
- 可以通过 FreeBSD 路由器访问互联网。
- 局域网机器可以从 FreeBSD 路由器访问。
- FreeBSD 路由器可以从 LAN 机器访问。
- 无法从 LAN 机器访问互联网。
以下是路由器上的 /etc/rc.conf 条目:
ifconfig_ue0="inet 10.0.0.1 netmask 255.255.255.0"
ifconfig_em0="inet 192.168.0.121 netmask 255.255.255.0"
gateway_enable="YES"
defaultrouter="192.168.0.1"
以下是 LAN 计算机上的 /etc/rc.conf 条目:
ifconfig_em0="inet 10.0.0.2 netmask 255.255.255.0"
defaultrouter="10.0.0.1"
以下是 FreeBSD 路由器 (loki) 的路由表条目:
netstat -r
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 192.168.0.1 UGS em0
10.0.0.0/24 link#3 U ue0
10.0.0.1 link#3 UHS lo0
127.0.0.1 link#2 UH lo0
192.168.0.0/24 link#1 U em0
192.168.0.121 link#1 UHS lo0
以下是 LAN 机器 (freebird) 的路由表条目:
netstat -r
Routing tables
Internet:
Destination Gateway Flags Netif Expire
default 10.0.0.1 UGS em0
10.0.0.0 link#1 U em0
10.0.0.2 link#1 UHS lo0
freebird link#2 UH lo0
局域网机器上的 netstat 是 sloooowwwww。
此信息对于设置来说是否正确,或者是否存在明显的问题?
答案1
我认为您需要在调制解调器上添加静态路由,以将 10.0.0.0/8 的所有传入流量路由到 192.168.0.121。
我宁愿假设 NAT 是在调制解调器中完成的。
答案2
pf
如果调制解调器中未完成 NAT,这将是防火墙中的解决方案。但是,NAT-ing 可以在pppd
或中完成pppoe
,正如您声明您正在使用 DSL 一样。
编辑/etc/pf.conf
:
external_iface="em0" # your WAN facing interface
internal_iface="ue0" # your LAN facing interface
set skip on lo0 # skip filtering on loopback
nat on $external_iface from $internal_iface:network to any -> ( $external_iface:0)
block in on $external_iface
pass in quick on $internal_iface from $internal_iface:network to any keep state
pass out on $external_iface
关于 DNS,您可以在 Frebsd 盒子上设置 local_unbound,将其设置为监听192.168.0.1
,然后将此配置推送到dhcpd
LAN 上的客户端,或者手动编辑,/etc/resolv.conf
例如:
echo 'nameserver 192.168.0.1' > /etc/resolv.conf
答案3
您需要在 FreeBSD 路由器计算机中设置 NAT,并需要将 10.0.0.0/8 网络通过 NAT(通过端口转换)转换为 192.168.0.121/32 IP 地址。否则你的局域网机器无法访问互联网