*
*
FLORA *
*
node.to *
p2c2e.org *
knot.node.to *
packet.node.to *
vince.node.to *
damao.net *
*
*
*
|
PPPoE on FreeBSD mini How-To
v 1.3 ( 2000 09 25 ) by mark
Physical Environment:
This implementation works for Mindspring DSL in Atlanta.
The line is provided by BellSouth.
Mindspring uses PAP authentication for PPPoE.
Hardware:
- pentium 200mhz MMX
- system on 4 gig SCSI, adaptec 2940
- 48 meg RAM
- 2 x 3com 905b
- alcatel 1000 DSL external modem
- one ethernet interface connected to DSL modem (10Mbit, half duplex)
- one ethernet interface on LAN (100Mbit, half duplex)
NOTE: the ethernet interface connected to DSL
must be marked up prior to invoking ppp.
However, you do not need to specify an ip address,
"ifconfig [device] up" will do. If you do specify an address it
will be ignored, although subnet routes appropriate to the initial
ip address will remain in the routing table after invocation of ppp.
Because of this, you should probably specify no address or an address
well out of range of what you are likely to use in your private LAN
(both should be in the 10.0.0.0/8, 172.16.0.0/16 or 192.168.0.0/16 range).
In order for ppp to be started at boot, you will need rc to bring up the
ethernet interface. From what I can tell, you need to assign it an ip
address to bring it up via rc.conf.
PERFORMANCE: on my p200 with 48 meg RAM, downloading a file to a machine on my
inside LAN through the NAT/PPPoE FreeBSD gateway, I see CPU loads of about 4%
peek, all in handling interrupts (net traffic) and ppp user space load.
On my dual celeron 400 with 128 meg RAM, it peeked at about 0.5%.
Software Prerequisites:
- verified on FreeBSD-4.1 (what i use now)
- kernel source for FreeBSD-3.4-stable or newer (now using 4.1)
- ppp and pppd from FreeBSD-3.4-stable or newer (now using 4.1)
- all dependencies for the above
Kernel Compile Options (FreeBSD-4.1+):
- Set these flags in your kernel config file (not all needed):
options NETGRAPH #netgraph(4) system
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_FRAME_RELAY
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
Kernel Compile Options (FreeBSD-3.x):
- Set these flags in your kernel config file:
- NOTE: not all of these are really necessary, but what the hell?
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_FRAME_RELAY
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_LMI
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options "NETGRAPH_RFC1490"
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
Configuring /etc/ppp/ppp.conf:
-quick and dirty, here is a working ppp.conf:
(as plain text)
default: # or name_of_service_provider
set device PPPoE:xl1 # replace xl1 with your interface
set MRU 1490
set MTU 1490
set authname YOURLOGINNAME
set authkey YOURPASSWORD
set log Phase tun command # you can add more detailed logging
set dial
set login
set ifaddr 10.0.0.1/0 10.0.0.2/0 # ignored by your ISP when /0
add default HISADDR
nat enable yes # if you want to forward your lan to the net
set cd off
set crtscts off
set redial 0 0
papchap:
set authname YOURLOGINNAME
set authkey YOURPASSWORD
Execution in User Space:
- as root, run "ppp -dedicated" or "ppp -dedicated name_of_service_provider"
Starting ppp at Boot:
- add these lines to rc.conf:
ppp_enable="YES"
ppp_mode="dedicated"
ppp_nat="YES" # if you want to forward your LAN to the net
ppp_profile="default" # or name_of_service_provider
Miscellaneous Notes
- My provider auto-negotiates PAP authentication. Your provider may use
some other authentication protocol. By default FreeBSD ppp will auto
negotiate PAP or CHAP. You may need to enable other protocols for your
provider.
|
 |
|
 |
|