Ich versuche schon einige Zeit eine UMTS-Verbindung mit FreeBSD aufzubauen. Mittlerweile bin ich auch recht weit gekommen: Der UMTS-Stick (Huawei E220) funktioniert als Modem, das Modemskript funktioniert und eine Verbindung wird aufgebaut. Leider bleibt ein Problem und im Netz sieht es bezüglich UMTS und mpd5 recht dünn aus. Das Problem ist, dass ich die IP der Gegenstelle nicht bekomme. Es bleibt die Dummy-IP (im Moment 1.1.1.1). Getestet habe ich es sowohl mit einer E-Plus- und einer O2-Sim. Hier mal meine Konfiguration. Vielleicht hilft es ja jemanden an anderer Stelle.
mpd.conf
mpd.script
mpd5 umts_o2
Und hier ist das Problem. Statt der 1.1.1.1 sollte ich ja eine IP mitgeteilt bekommen. Vielleicht findet sich hier ja jemand, der dazu was weiss. Schon mal vielen Dank!
mpd.conf
Code:
umts_o2:
log ipcp ipcp2
create bundle static B1
set iface route default
set ipcp ranges 0.0.0.0/0 1.1.1.1/0
create link static L1 modem
set modem device /dev/cuaU0.0
set modem speed 921600
set modem script umts_o2_dial
set modem watch -cd
set modem var $APN "pinternet.interkom.de"
set link action bundle B1
set auth authname "xxx"
set auth password "xxx"
open
mpd.script
Code:
umts_o2_dial:
set $ConnectionSpeed ""
if $ConnectTimeout == "" set $ConnectTimeout 45
print "AT+CGDCONT=1,\"ip\",\""
print $APN
print "\"\r\n"
match "ERR" InitERR
match "OK" InitOK
wait 5
log "Timeout beim Setzen des APNs."
failure
InitERR:
log "APN konnte nicht gesetzt werden."
failure
InitOK:
print "ATD*99***1#\r\n"
match "NO CARRIER" DialAbortNoCar
match "NO DIAL" DialAbortNoDial
match "BUSY" DialAbortBusy
regex "CONNECT *([0-9]*).*$" DialConnect
match "ERR" DialErrorInit
wait $ConnectTimeout
log "No response from the modem after dialing."
failure
DialAbortNoCar:
log "The remote modem did not answer."
failure
DialAbortNoDial:
if $noDialToneSubr != "" goto $noDialToneSubr
log "No dialtone. Is the modem plugged in?"
failure
DialError:
if ${ModTelephone} != "" goto DialErrorInit
log "Invalid empty telephone number."
failure
DialErrorInit:
if $dialErrorSubr != "" goto $dialErrorSubr
log "Invalid dial init string."
failure
DialAbortBusy:
log "The line was busy."
failure
DialConnect:
set $ConnectionSpeed $matchedString1
set $dialResult "OK"
success
mpd5 umts_o2
Code:
Multi-link PPP daemon for FreeBSD
process 1367 started, version 5.4 (root@santaslittlehelper.fritz.box 17:44 25-Jan-2010)
[B1] Bundle: Interface ng0 created
[L1] [L1] Link: OPEN event
[L1] LCP: Open event
[L1] LCP: state change Initial --> Starting
[L1] LCP: LayerStart
[L1] MODEM: chat script succeeded
[L1] Link: UP event
[L1] LCP: Up event
[L1] LCP: state change Starting --> Req-Sent
[L1] LCP: SendConfigReq #1
[L1] ACFCOMP
[L1] PROTOCOMP
[L1] ACCMAP 0x000a0000
[L1] MRU 1500
[L1] MAGICNUM 5d184f63
[L1] LCP: rec'd Configure Request #0 (Req-Sent)
[L1] ACCMAP 0x00000000
[L1] AUTHPROTO CHAP MD5
[L1] MAGICNUM 1082c763
[L1] PROTOCOMP
[L1] ACFCOMP
[L1] LCP: SendConfigAck #0
[L1] ACCMAP 0x00000000
[L1] AUTHPROTO CHAP MD5
[L1] MAGICNUM 1082c763
[L1] PROTOCOMP
[L1] ACFCOMP
[L1] LCP: state change Req-Sent --> Ack-Sent
[L1] LCP: rec'd Configure Ack #1 (Ack-Sent)
[L1] ACFCOMP
[L1] PROTOCOMP
[L1] ACCMAP 0x000a0000
[L1] MRU 1500
[L1] MAGICNUM 5d184f63
[L1] LCP: state change Ack-Sent --> Opened
[L1] LCP: auth: peer wants CHAP, I want nothing
[L1] LCP: LayerUp
[L1] LCP: rec'd Discard Request #1 (Opened)
[L1] CHAP: rec'd CHALLENGE #1 len: 35
[L1] Name: "UMTS_CHAP_SRVR"
[L1] CHAP: Using authname "xxx"
[L1] CHAP: sending RESPONSE #1 len: 24
[L1] CHAP: rec'd SUCCESS #1 len: 4
[L1] LCP: authorization successful
[L1] Link: Matched action 'bundle "B1" ""'
[L1] Link: Join bundle "B1"
[B1] Bundle: Status update: up 1 link, total bandwidth 28800 bps
[B1] IPCP: Open event
[B1] IPCP: state change Initial --> Starting
[B1] IPCP: LayerStart
[B1] IPCP: Up event
[B1] IPCP: state change Starting --> Req-Sent
[B1] IPCP: SendConfigReq #1
[B1] IPADDR 0.0.0.0
[B1] COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
[B1] IPCP: rec'd Configure Request #0 (Req-Sent)
[B1] IPCP: SendConfigAck #0
[B1] IPCP: state change Req-Sent --> Ack-Sent
[B1] IPCP: rec'd Configure Reject #1 (Ack-Sent)
[B1] COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
[B1] IPCP: SendConfigReq #2
[B1] IPADDR 0.0.0.0
[B1] IPCP: rec'd Configure Nak #2 (Ack-Sent)
[B1] IPADDR 10.66.211.86
[B1] 10.66.211.86 is OK
[B1] IPCP: SendConfigReq #3
[B1] IPADDR 10.66.211.86
[B1] IPCP: rec'd Configure Ack #3 (Ack-Sent)
[B1] IPADDR 10.66.211.86
[B1] IPCP: state change Ack-Sent --> Opened
[B1] IPCP: LayerUp
[B1] 10.66.211.86 -> 1.1.1.1
[B1] IFACE: Add route 0.0.0.0/0 1.1.1.1 failed: File exists
[B1] IFACE: Up event
Und hier ist das Problem. Statt der 1.1.1.1 sollte ich ja eine IP mitgeteilt bekommen. Vielleicht findet sich hier ja jemand, der dazu was weiss. Schon mal vielen Dank!