ADSL: Using mpd(8) for PPPoE [solved?]
Rob
listone at deathbeforedecaf.net
Mon Jun 9 02:01:18 PDT 2003
I just found a posting[1] from Archie Cobbs to freebsd-net@ where he
suggested loading the ng_ether module before running mpd(8). "That's
silly", thought I, "there's already a bunch of modules loaded
automatically".
And indeed, after an unsuccessful attempt, kldstat(8) shows the
following:
Id Refs Address Size Name
1 10 0xc0100000 1fd990 kernel
2 1 0xc02fe000 5448 vesa.ko
3 1 0xc129e000 6000 procfs.ko
4 1 0xc130c000 2000 green_saver.ko
5 1 0xc1323000 3000 ng_socket.ko
6 5 0xc172c000 9000 netgraph.ko
7 1 0xc132f000 3000 ng_iface.ko
8 1 0xc1338000 6000 ng_ppp.ko
9 1 0xc1343000 4000 ng_bpf.ko
10 1 0xc134e000 4000 ng_vjc.ko
But no ng_ether. So I loaded it with kldload(8) and tried again. And
what do you know - it worked!
Here's the successful output (innocent names & addresses concealed):
Multi-link PPP for FreeBSD, by Archie L. Cobbs.
Based on iij-ppp, by Toshiharu OHNO.
mpd: pid 194, version 3.13 (root at freebsd.org 16:04 22-Mar-2003)
[PPPoE] ppp node is "mpd194-PPPoE"
[PPPoE] using interface ng0
[PPPoE] IPCP: peer address cannot be zero
[PPPoE] IFACE: Open event
[PPPoE] IPCP: Open event
[PPPoE] IPCP: state change Initial --> Starting
[PPPoE] IPCP: LayerStart
[PPPoE:PPPoE] [PPPoE] bundle: OPEN event in state CLOSED
[PPPoE] opening link "PPPoE"...
[PPPoE] link: OPEN event
[PPPoE] LCP: Open event
[PPPoE] LCP: state change Initial --> Starting
[PPPoE] LCP: LayerStart
[PPPoE] device: OPEN event in state DOWN
[PPPoE] exec: /sbin/ifconfig rl0 up
[PPPoE] device is now in state OPENING
[PPPoE] rec'd ACNAME "xxxx-xxxxxxxx"
[PPPoE] rec'd command 11 from "[10]:"
[PPPoE] connection successful
[PPPoE] device: UP event in state OPENING
[PPPoE] device is now in state UP
[PPPoE] link: UP event
[PPPoE] link: origination is local
[PPPoE] LCP: Up event
[PPPoE] LCP: state change Starting --> Req-Sent
[PPPoE] LCP: phase shift DEAD --> ESTABLISH
[PPPoE] LCP: SendConfigReq #1
MRU 1492
MAGICNUM 58783cb0
MP MRRU 1600
MP SHORTSEQ
ENDPOINTDISC [802.1] 00 c1 28 00 e6 0b
[PPPoE] LCP: rec'd Configure Request #55 link 0 (Req-Sent)
MAGICNUM 27addd92
MRU 1500
AUTHPROTO CHAP MD5
[PPPoE] LCP: SendConfigAck #55
MAGICNUM 27addd92
MRU 1500
AUTHPROTO CHAP MD5
[PPPoE] LCP: state change Req-Sent --> Ack-Sent
[PPPoE] LCP: rec'd Configure Reject #1 link 0 (Ack-Sent)
MP MRRU 1600
ENDPOINTDISC [802.1] 00 c1 28 00 e6 0b
[PPPoE] LCP: SendConfigReq #2
MRU 1492
MAGICNUM 58783cb0
[PPPoE] LCP: rec'd Configure Ack #2 link 0 (Ack-Sent)
MRU 1492
MAGICNUM 58783cb0
[PPPoE] LCP: state change Ack-Sent --> Opened
[PPPoE] LCP: phase shift ESTABLISH --> AUTHENTICATE
[PPPoE] LCP: auth: peer wants CHAP, I want nothing
[PPPoE] LCP: LayerUp
[PPPoE] CHAP: rec'd CHALLENGE #1
Name: "xxxx-xxxxxxxx"
Using authname "xxxxxxx at xxxxxxxxxxxxxxxxxx"
[PPPoE] CHAP: sending RESPONSE
[PPPoE] CHAP: rec'd SUCCESS #1
[PPPoE] LCP: authorization successful
[PPPoE] LCP: phase shift AUTHENTICATE --> NETWORK
[PPPoE] setting interface ng0 MTU to 1460 bytes
[PPPoE] up: 1 link, total bandwidth 64000 bps
[PPPoE] IPCP: Up event
[PPPoE] IPCP: state change Starting --> Req-Sent
[PPPoE] IPCP: SendConfigReq #1
IPADDR 0.0.0.0
COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
[PPPoE] IPCP: rec'd Configure Request #1 link 0 (Req-Sent)
IPADDR 12.34.56.1
12.34.56.1 is OK
[PPPoE] IPCP: SendConfigAck #1
IPADDR 12.34.56.1
[PPPoE] IPCP: state change Req-Sent --> Ack-Sent
[PPPoE] IPCP: rec'd Configure Reject #1 link 0 (Ack-Sent)
COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
[PPPoE] IPCP: SendConfigReq #2
IPADDR 0.0.0.0
[PPPoE] IPCP: rec'd Configure Nak #2 link 0 (Ack-Sent)
IPADDR 12.34.56.229
12.34.56.229 is OK
[PPPoE] IPCP: SendConfigReq #3
IPADDR 12.34.56.229
[PPPoE] IPCP: rec'd Configure Ack #3 link 0 (Ack-Sent)
IPADDR 12.34.56.229
[PPPoE] IPCP: state change Ack-Sent --> Opened
[PPPoE] IPCP: LayerUp
12.34.56.229 -> 12.34.56.1
[PPPoE] IFACE: Up event
[PPPoE] setting interface ng0 MTU to 1460 bytes
[PPPoE] exec: /sbin/ifconfig ng0 12.34.56.229 12.34.56.1 netmask 0xffffffff -link0
[PPPoE] exec: /sbin/route add 12.34.56.229 -iface lo0
[PPPoE] exec: /sbin/route add 0.0.0.0 12.34.56.1
[PPPoE] IFACE: Up event
quit
[PPPoE] IPCP: Down event
[PPPoE] IPCP: state change Opened --> Starting
[PPPoE] IPCP: LayerDown
[PPPoE] IFACE: Down event
[PPPoE] exec: /sbin/route delete 0.0.0.0 12.34.56.1
[PPPoE] exec: /sbin/route delete 12.34.56.229 -iface lo0
[PPPoE] exec: /sbin/ifconfig ng0 down delete -link0
[PPPoE] IFACE: Close event
[PPPoE] IPCP: Close event
[PPPoE] IPCP: state change Starting --> Initial
[PPPoE] IPCP: LayerFinish
mpd: process 194 terminated
And ifconfig(8) listing (likewise):
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:c1:28:00:e6:0b
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1460
inet 12.34.56.229 --> 12.34.56.1 netmask 0xffffffff
I'm still puzzled as to how it uses the 'real' network interface, which
isn't even configured. And why does it load 6 ng modules, but not the
last one?
Anyway, I won't know if it really works until my provider starts routing
packets in this direction, but it certainly looks hopeful.
Thanks
Rob.
[1] http://www.freebsd.org/cgi/getmsg.cgi?fetch=302935+305775+/usr/local/www/db/text/2001/freebsd-net/20010318.freebsd-net
More information about the freebsd-questions
mailing list