Unable to make pppoe connection

Hi there! It seems that i am unable to make a successful pppoe connection with a tplink wr1043nd v4 router standing before my isp router which is in bridge mode. Anyone willing to help? I'll try to update with the net config. I am using openwrt 18.06.2 The configuration is like what is shown in the wiki (eg here) that is:

Internet --> ISP Router(bridge mode/modem) --> OpenWRT Router (wan)

and the two routers are on different subnets. ofc it's a newbie question so I apologize beforehand.

edit:

network.loopback=interface
network.loopback.ifname='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.globals=globals
network.globals.ula_prefix=''
network.lan=interface
network.lan.type='bridge'
network.lan.ifname='eth0.1'
network.lan.proto='static'
network.lan.ipaddr='192.168.1.1'
network.lan.netmask='255.255.255.0'
network.lan.ip6assign='60'
network.lan_dev=device
network.lan_dev.name='eth0.1'
network.lan_dev.macaddr=' '
network.wan=interface
network.wan.ifname='eth0.2'
network.wan.proto='pppoe'
network.wan.username=' '
network.wan.password=' '
network.wan.ipv6='auto'
network.wan_dev=device
network.wan_dev.name='eth0.2'
network.wan_dev.macaddr=' '
network.wan6=interface
network.wan6.ifname='eth0.2'
network.wan6.proto='dhcpv6'
network.@switch[0]=switch
network.@switch[0].name='switch0'
network.@switch[0].reset='1'
network.@switch[0].enable_vlan='1'
network.@switch_vlan[0]=switch_vlan
network.@switch_vlan[0].device='switch0'
network.@switch_vlan[0].vlan='1'
network.@switch_vlan[0].ports='1 2 3 4 0t'
network.@switch_vlan[1]=switch_vlan
network.@switch_vlan[1].device='switch0'
network.@switch_vlan[1].vlan='2'
network.@switch_vlan[1].ports='5 0t'

Is the ISP's router in modem mode or in bridge modem?

Sorry, isp router is in bridge mode. Called the isp to do it and they confirmed multiple times. I think that the pppoe call does not reach the isp since i get connection "timeouts waiting for pado packets". I also tried to connect directly my pc to isp router and make a connection running 'pppoe-config' 'pppoe-start' but still the same timeouts.

A possible reason: VDSL providers usually require a VLAN ID set (the ID depends on the specific ISP).

Thanks for taking the time to answer! I don't have a vdsl connection.

Mkay, I still think it would be helpful to know what kind of connection we are looking at and which ISP. Technically, your setup is correct, it looks to me that it additionally needs something specific to your ISP.

It is a adsl connection in greece (former cyta) and the isp router is a pirelli p.rg a4201g.

In pppoe, first your router sends a PADI packet then the ISP is supposed to respond with a PADO packet. Waiting for PADO means that the ISP is not sending any PADO packets or they are on the wrong VLAN.

Can you log in to the modem from the LAN side and see what configuration it is expecting?

1 Like

I have not yet managed to connect to modem neither from openwrt nor connecting directly to my pc Ethernet port. Is it possible that there is no route configured?

pppoe is a rather straightforward exchange of packets. It is point to point. There is no routing involved.

Access to the modem's management interface is not necessary for setting up a PPPoE session via a modem in bridge modem - and yes, that isn't normally available by default.

Once you've gotten your PPPoE connection working, you can look into adding support for accessing the modem's management interface as a further optimization step, but as this complicates the setup without helping to sort out your remaining issues, I'd recommend to defer this question until you have basic internet access working.

1 Like

Thank you both for taking the time to explain! I'm slightly confused as i called isp tech service and they suggested that no pppoe call is reaching their end.

Random search results seem to suggest that Cyta needs a VLAN ID of 835.

This would require you to change the VLAN IDs in two places:
a) in your switch configuration, change the VLAN ID "2" to "835", and the "untagged" port in that row to "tagged"
b) after that, your WAN port is no longer "eth0.2", but "eth0.835", so you need to change your network configuration accordingly

Still no luck. I think VLAN ID of 835 is required by ote (DT) but i tried that.
Edit: cyta specifies:

Protocol: PPPoE
 vpi/vci/vlan=(8/35)/835
Encapsulation : llc/snap
QoS class: ubr
Mtu: 1462

I'm getting several messages in dmesg output:

IPv6: ADDRCONF(NETDEV_UP): eth0.835: link is not ready

logread output:

Sun Mar 10 15:02:33 2019 daemon.notice pppd[29439]: pppd 2.4.7 started by root, uid 0
Sun Mar 10 15:02:48 2019 daemon.warn pppd[29439]: Timeout waiting for PADO packets
Sun Mar 10 15:02:48 2019 daemon.err pppd[29439]: Unable to complete PPPoE Discovery
Sun Mar 10 15:02:48 2019 daemon.info pppd[29439]: Exit.
Sun Mar 10 15:02:48 2019 daemon.notice netifd: Interface 'wan' is now down
Sun Mar 10 15:02:48 2019 kern.info kernel: [ 6033.396155] IPv6: ADDRCONF(NETDEV_UP): eth0.835: link is
not ready
Sun Mar 10 15:02:48 2019 daemon.notice netifd: Interface 'wan' is disabled
Sun Mar 10 15:02:48 2019 daemon.notice netifd: Interface 'wan' is enabled
Sun Mar 10 15:02:48 2019 daemon.notice netifd: Interface 'wan' is setting up now
Sun Mar 10 15:02:48 2019 daemon.err insmod: module is already loaded - slhc
Sun Mar 10 15:02:48 2019 daemon.err insmod: module is already loaded - ppp_generic
Sun Mar 10 15:02:48 2019 daemon.err insmod: module is already loaded - pppox
Sun Mar 10 15:02:48 2019 daemon.err insmod: module is already loaded - pppoe
Sun Mar 10 15:02:49 2019 daemon.info pppd[29522]: Plugin rp-pppoe.so loaded.
Sun Mar 10 15:02:49 2019 daemon.info pppd[29522]: RP-PPPoE plugin version 3.8p compiled against pppd 2
.4.7
Sun Mar 10 15:02:49 2019 daemon.notice pppd[29522]: pppd 2.4.7 started by root, uid 0

After a reboot:

[    4.592662] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.615930] random: procd: uninitialized urandom read (4 bytes read)
[    5.626944] eth0: link up (1000Mbps/Full duplex)
[    5.631926] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    6.345578] IPv6: eth0: IPv6 duplicate address fe80::8616:f9ff:fee8:acde detected!
[    7.875369] jffs2: notice: (458) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0
of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[    7.892759] mount_root: switching to jffs2 overlay
[    7.921876] urandom-seed: Seeding with /etc/urandom.seed
[    8.105385] eth0: link down

so it results in:

[   18.378963] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   18.409933] br-lan: port 1(eth0.1) entered blocking state
[   18.415568] br-lan: port 1(eth0.1) entered disabled state
[   18.421485] device eth0.1 entered promiscuous mode
[   18.426487] device eth0 entered promiscuous mode
[   18.498965] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   19.427020] eth0: link up (1000Mbps/Full duplex)
[   19.431994] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   19.458000] br-lan: port 1(eth0.1) entered blocking state
[   19.463583] br-lan: port 1(eth0.1) entered forwarding state
[   19.545389] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   35.869326] IPv6: ADDRCONF(NETDEV_UP): eth0.835: link is not ready
[   51.284998] IPv6: ADDRCONF(NETDEV_UP): eth0.835: link is not ready

dmesg now also shows:

Sun Mar 10 17:03:10 2019 kern.info kernel: [ 7824.747974] IPv6: eth0.835: IPv6 duplicate address fe80::8616:....:....:.... detected!

With some switch hardware you will need to use VLAN numbers less than 128 (or 16 on really old hardware). To tag packets with a higher number, manually add the number to the switch config file as 'option vid 835'.

A Linux PC running Wireshark can check if properly tagged PADI packets are being sent by the router. This requires Linux running on the bare metal. Windows Ethernet drivers will not monitor VLANs.

1 Like

running tcpdump i can see the padi packets on eth0.835 but I'm not sure if they are properly tagged:

root@OpenWrt:~# tcpdump -i eth0.835 -A -XX
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0.835, link-type EN10MB (Ethernet), capture size 262144 bytes
18:02:58.790133 PPPoE PADI [Service-Name]
        0x0000:  ffff ffff ffff 8416 f9e8 acde 8863 1109  .............c..
        0x0010:  0000 0004 0101 0000                      ........
18:02:58.790288 PPPoE PADI [Service-Name]
        0x0000:  ffff ffff ffff 8416 f9e8 acde 8863 1109  .............c..
        0x0010:  0000 0004 0101 0000 0000 0000 0000 0000  ................
        0x0020:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0030:  0000 0000 0000 0000                      ........
18:03:03.791731 PPPoE PADI [Service-Name]
        0x0000:  ffff ffff ffff 8416 f9e8 acde 8863 1109  .............c..
        0x0010:  0000 0004 0101 0000                      ........
18:03:03.791886 PPPoE PADI [Service-Name]
        0x0000:  ffff ffff ffff 8416 f9e8 acde 8863 1109  .............c..
        0x0010:  0000 0004 0101 0000 0000 0000 0000 0000  ................
        0x0020:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0030:  0000 0000 0000 0000                      ........

That shows that the pppoe driver is generating packets, but it doesn't show that they are making it through the switch and out to the Ethernet cable.

Connecting the ethernet cat5 cable, which is connected to openwrt router wan port, to my pc's ethernet port and launching wireshark I get the same broadcast packets, namely:

19	29.351631198	Tp-LinkT_e8:ac:de	Broadcast	PPPoED	60	Active Discovery Initiation (PADI)

these packets contain a section:

802.1Q Virtual LAN, PRI: 0, DEI: 0, ID: 835

So I guess that these are passing through the ethernet cable.

Adding pppd_options debug in network config I get output like the following from OpenWrt:

Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]: Send PPPOE Discovery V1T1 PADI session 0x0 length 4
Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]:  dst ff:ff:ff:ff:ff:ff  src ..:..:..:..:...:..
Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]:  [service-name]
Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]: Recv PPPOE Discovery V1T1 PADI session 0x0 length 4
Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]:  dst ff:ff:ff:ff:ff:ff  src ..:..:..:..:...:..
Sun Mar 10 22:34:30 2019 daemon.debug pppd[7812]:  [service-name]
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]: Send PPPOE Discovery V1T1 PADI session 0x0 length 4
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]:  dst ff:ff:ff:ff:ff:ff  src ..:..:..:..:...:..
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]:  [service-name]
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]: Recv PPPOE Discovery V1T1 PADI session 0x0 length 4
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]:  dst ff:ff:ff:ff:ff:ff  src ..:..:..:..:...:..
Sun Mar 10 22:34:35 2019 daemon.debug pppd[7812]:  [service-name]
Sun Mar 10 22:34:40 2019 daemon.warn pppd[7812]: Timeout waiting for PADO packets
Sun Mar 10 22:34:40 2019 daemon.err pppd[7812]: Unable to complete PPPoE Discovery
Sun Mar 10 22:34:40 2019 daemon.info pppd[7812]: Exit.

Unfortunately it seems that it is a problem of my isp. Tried many times without success and then i decided to reset my isp router back to default. Now it cannot complete pppoe discovery like i experienced with my tplink router.