两个网卡网关应该如何路由(FreeBSD 10.2)?

两个网卡网关应该如何路由(FreeBSD 10.2)?

我正在尝试在电缆/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,然后将此配置推送到dhcpdLAN 上的客户端,或者手动编辑,/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 地址。否则你的局域网机器无法访问互联网

相关内容