According to the page http://www.openbsd.org/faq/pf/nat.html, NAT is a way to
map an entire network(or networks) to a single IP address. Ideally,
192.168.0/24 should map to the address of interface which connects to the
uplink ISP. So I put the following line to /etc/pf.conf:
# cat /etc/pf.conf
# $OpenBSD: pf.conf,v 1.54 2014/08/23 05:49:42 deraadt Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
set skip on lo
# block return # block stateless traffic
# pass # establish keep-state
# By default, do not permit remote connections to X11
# block return in on ! lo0 proto tcp to port 6000:6010
# The line i put here
pass out on fxp0 inet from 192.168.0.0/24 to any nat-to 10.198.1.150
bge0 is the interface broadcasting dhcp on LAN:
# ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:16:41:3f:56:62
index 1 priority 0 llprio 3
media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
status: active
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
fxp0 is the external interface:
# ifconfig fxp0
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:90:27:86:58:9a
index 2 priority 0 llprio 3
media: Ethernet autoselect (100baseTX full-duplex)
status: active
It uses pppoe0 to connect to the uplink:
# ifconfig pppoe0
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
index 5 priority 0 llprio 3
dev: fxp0 state: session
sid: 0x7208 PADI retries: 0 PADR retries: 0 time: 00:06:01
sppp: phase network authproto chap authname "701"
groups: pppoe egress
status: active
inet 10.198.1.150 --> 10.198.1.1 netmask 0xffffffff
And my /etc/dhcpd.conf:
# cat /etc/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
range 192.168.0.4 192.168.0.254;
}
"pfctl -s state" yields nothing output to the terminal. Is there something I
need to improve?
Thanks for hitting my head again.
Lujian
________________________________
发件人: Alexander Hall <[email protected]>
发送时间: 2017年6月21日 19:19
收件人: [email protected]; Josh Grosse; lu jian
主题: Re: Openbsd6.1 as firewall can access the internet but the LAN behind it
cannot
On June 21, 2017 6:01:10 PM GMT+02:00, Josh Grosse <[email protected]> wrote:
>On 2017-06-21 11:36, lu jian wrote:
>> Hi
>>
>> I have an i386 machine with two network interfaces, one of which
>> connect to the uplink ISP via pppoe, the other connects to the WAN
>> port of a wireless router to which all LAN machines and cell phones
>> connect (via wifi).
>>
>> The problem is that this i386 machine (which I intend as a firewall)
>> can access the internet, but all LAN machines cannot.
>>
>> Hint: my wireless router can obtain dhcp address from the i386
>machine.
>>
>> These two network interfaces on the i386 are bge0 and fxp0.
>>
>> 1) Configuration for fxp0:
>> # cat /etc/hostname.fxp0
>> up
>> # cat /etc/hostname.pppoe0
>> inet 0.0.0.0 255.255.255.255 NONE \
>> pppoedev fxp0 authproto chap \
>> authname 'account' authkey '123' up
>> dest 0.0.0.1
>>
>> !/sbin/route add default -if pppoe0 0.0.0.1
>>
>> 2) Configuration for bge0:
>> # cat /etc/hostname.bge0
>> inet 192.168.0.1 255.255.255.0 192.168.0.255
>
>This is a subnet within RFC 1918 - a private network, not
>directly routea-able on the Internet.
>
>You must add Network Address Translation (NAT) to your PF configuration
>
>in order
>to access the Internet from that subnet.
>
>See the NAT section of the PF User's Guide.
>
>http://www.openbsd.org/faq/pf/nat.html
That, and we didn't see the dhcpd.conf.
/Alexander