I recently changed ISP from ‘Be’ to ‘Goscomb’ (in order to get native IPv6 delivered direct to my broadband). My ADSL modem does not support IPv6, so I decided to use it as a bridge to my FreeBSD router which would handle everything for me.
These instructions should work for any UK ISP – and quite probably other non-UK ISPs too.
First of all, you need to configure your ADSL modem to be in fully bridged mode (this varies so much depending on your modem that I can’t really comment here other than to say… read the manual!) The ATM configuration will be done on your modem, but do not specify any authentication. As I was using Be, my modem was already in bridged unauthenticated configuration (all Be multiple-IP customers will be bridged)
Once you have done this, connect your ADSL modem directly into an interface on the FreeBSD router. Make a note of its interface name (for me, I will use adsl0)
OK, first we need to configure ppp to do the PPPoE authentication. Edit /etc/ppp/ppp.conf in your favourite editor and add a section for your ISP (I will use goscomb) like so:
goscomb:
set speed sync
set mru 1492
set mtu 1492
set ctsrts offenable echo
set echoperiod 15
enable lqr
set lqrperiod 15set log Phase tun
enable ipv6cp
enable ipcp
disable dnsset device PPPoE:adsl0
set server /tmp/pppoe-adsl0 “” 0177set authname usernamehere@goscomb.net
set authkey passwordhereadd! default HISADDR
add! default HISADDR6
There’s a few things you may wish to change… First you need to replace all occurrences of adsl0 with your interface name.
If your ISP does not support IPv6, you should change enable ipv6cp to disable ipv6cp and remove add! default HISADDR6
Next we need to config the startup sequences… Edit /etc/rc.conf in your favourite editor and add the following:
ifconfig_adsl0=”up”
# PPPoE configuration
ppp_enable=”YES”
ppp_program=”/usr/sbin/ppp”
ppp_nat=”NO”
ppp_user=”root”ppp_profile=”goscomb”
ppp_goscomb_mode=”ddial”
ppp_goscomb_nat=”NO”
Change the three references to goscomb to be the name of your ppp section. Also change adsl0 to the name of your PPPoE interface.
If you haven’t already, you need to tell your FreeBSD server to be a router by adding the following into /etc/rc.conf:
gateway_enable=”YES”
ipv6_enable=”YES”
ipv6_gateway_enable=”YES”
ipv6_router_enable=”YES”
Of course, you can just add the first line if you have no IPv6 connectivity.
You should be all set. Everytime you reboot, your router will auto-connect to the PPPoE (and reconnect if the connection drops).
To confirm after you have connected, you can check out /var/log/ppp.log which should show things being connected.
Hi Dan,
though not directly related to this. Have you tried ppp with a 3g/4g usb modem ?
Sure, usually just load up the u3g.ko module (for usb 3g modems) then use regular ppp to /dev/ttyU0 – haven’t had any problems with it.
hi dan thank’s for the pppoe tutorial …i’ve try many setting for bsd 7.2 but not works….until i found your setting it’s works good for me…thank’s alot….
irwan
-denpasar bali, indonesia-
no problem. I use it myself at home for my dsl (both ipv4+ipv6) with freebsd 8-stable
hi dan, i’ve problem create freebsd 8.0 as router (not using pppoe dial)….the case like this…..
1. i’ve server box with 2 nic and 1 external modem:
nic1 = rl0 -> ip. 192.168.1.100
nic2 = rl1 -> ip. 192.168.0.254
modem -> ip. 192.168.1.1
xp computer client=ip. 192.168.0.10
modem connect to rl0
rl1 connect to hub/switch
2. question is……
i’ve set :
defaultrouter=”192.168.1.1″
gateway_enable=”YES”
3. i ping google.com from server it’s works
but from xp client it not work
any idea ?
The most likely problem will be your router (not the freebsd router). It may not be performing NAT for IPs not within its subnet – so when you ping from the freebsd router it is “on-net” – but from the other subnet behind it, it is not. That would be my first thing to check anyway.
oke thank’s dan…i’ve still try and waiting for your solution too…thank’s
nice to know u.