我正在嘗試在電纜/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 位址。否則你的區域網路機器無法上網