pppoe with ppp and pf nat - problems booting

Matthias Meyser meyser at xenet.de
Wed Jun 18 15:41:07 UTC 2014


Am 17.06.2014 20:33, schrieb Jesse Gooch:
> Hello all!
>
> I've just set up an i386 box as my router with FreeBSD 10-RELEASE
> (updated with freebsd-update). I have two interfaces: sk0 and rl0. sk0
> is configured in ppp.conf for pppoe to my DSL modem. rl0 is configured
> to a local IP, and I have pf set up for NAT and some port forwarding.
> Unfortunately on boot pf does not get set up since tun0 (created by ppp)
> does not exist when pf loads, so my ruleset is not loaded!
>
> This requires me to reload the pf ruleset whenever I reboot. Another
> problem with this approach is ntpdate fails to set time properly on boot
> as well (although this may be ppp taking a little while to get the
> connection set up).
>
> How can I get my system to just work when I boot up? I've copypasta'd
> the related conf files with names changed to protect the innocent below.

in /etc/rc.conf use

cloned_interfaces="tun0"

to create "tun0" early

and

ppp_unit="0"

to instruct ppp to user the existing "tun0"
and not a new tun device.


>
> ---ppp.conf---
> default:
>          set log Phase tun command
>          disable ipv6
>
> name_of_isp:
>          disable ipv6
>          set device PPPoE:sk0
>          set authname isp_un
>          set authkey isp_pw
>          set dial
>          set login
>          add default HISADDR
>          add default HISADDR6
>          enable dns
> ---
>
> ---rc.conf---
> hostname="my_hostname"
> #this address is assigned to sk0 so I can access the administration page
> of my modem
> ifconfig_sk0="inet 192.168.1.100 netmask 255.255.255.0"
> ifconfig_rl0="inet 192.168.42.1 netmask 255.255.255.0"
> gateway_enable="YES"
> pf_enable="YES"
> pflog_enable="YES"
> ppp_enable="YES"
> ppp_mode="ddial"
> ppp_nat="NO"
> ppp_profile="name_of_isp"
> dhcpd_enable="YES"
> dhcpd_ifaces="rl0"
> named_enable="YES"
> ddclient_enable="YES"
> sshd_enable="YES"
> #ntpdate_enable="YES"
> #ntpdate_flags="-t 30 _timeservers_"
> ntpd_enable="YES"
> powerd_enable="YES"
> # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
> dumpdev="AUTO"
> ---
>
> ---pf.conf---
> # Macros
> ext_if = "tun0"
> lan_if = "rl0"
> lan_ip = "192.168.42.0/24"
>
> # Tables
>
> # Options
>
> # Traffic Normalization
> scrub in on $ext_if all fragment reassemble
>
> # Queueing
>
> # Translation
> nat pass on $ext_if from $lan_ip to any -> {$ext_if}
> #some redirect rules removed for port forwarding here
>
> # Packet Filtering
> block in on $ext_if all
> pass out on $ext_if all keep state
> pass in on $lan_if all
> pass out on $lan_if all
> ---
>

Matthias

-- 
Matthias Meyser            | XeNET GmbH
Tel.:  +49-5323-9489050    | 38678 Clausthal-Zellerfeld, Marktstrasse 40
Fax:   +49-5323-9489059    | Registergericht: Amtsgericht Braunschweig HRB 
110823
Email: Meyser at xenet.de     | Geschaeftsfuehrer: Matthias Meyser


More information about the freebsd-questions mailing list