Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    PPPoE host-uniq

    Scheduled Pinned Locked Moved General pfSense Questions
    17 Posts 3 Posters 3.8k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stephenw10S Offline
      stephenw10 Netgate Administrator
      last edited by

      Actually the input validation is correct for the expected data there. If you need to enter anything other than Letters and Numbers you need to enter it as hex directly.

      Steve

      T 1 Reply Last reply Reply Quote 0
      • T Offline
        trollshiro @stephenw10
        last edited by

        @stephenw10

        Hi Steve,
        thanks, I will give it a try in the WE. It seems my ISP is doing something non-standard so do you have any official documentation about host-uniq? Haven't found much except RFC 2516.

        Andrea

        1 Reply Last reply Reply Quote 0
        • stephenw10S Offline
          stephenw10 Netgate Administrator
          last edited by stephenw10

          I don't think there is anything in the pfSense docs about it dircetly.

          The information in the two threads and the redmine feature request is probably all there is.

          It's not that complex though. You enter it in the gui as either hex dircetly or as ascii (limited to numbers and letters) and that value is prepended to the pppoe service value in mpd.conf like:

          set pppoe service "0x61616161|test"
          

          Resulting in:

          Frame 66: 67 bytes on wire (536 bits), 67 bytes captured (536 bits)
          Ethernet II, Src: ADIEngin_12:17:7c (00:08:a2:12:17:7c), Dst: silicom_0f:74:48 (90:ec:77:0f:74:48)
          PPP-over-Ethernet Discovery
              0001 .... = Version: 1
              .... 0001 = Type: 1
              Code: Active Discovery Offer (PADO) (0x07)
              Session ID: 0x0000
              Payload Length: 47
              PPPoE Tags
                  AC-Name: test_box1.stevew.lan
                  Service-Name: test
                  Host-Uniq: 61616161
                  AC-Cookie: c015738801f8ffff
          

          I expect to see something here but there's nothing.

          Edit: In fact this is documented here:
          https://www.freebsd.org/cgi/man.cgi?query=ng_pppoe#CONTROL%09MESSAGES

          Steve

          T 1 Reply Last reply Reply Quote 0
          • T Offline
            trollshiro @stephenw10
            last edited by trollshiro

            @stephenw10

            Hi Steve,
            thanks for you reply.

            your explanation was enough, thank you, I need the documentation to argue with my ISP, in case.
            Anyway I was able to reproduce the string from my ISP but it's still not working, the only difference I can see between my dump and the one from ISP (and yours) is that the TAGS are sent in the reverse order. Service-name should be sent first I guess, could it be the reason why I got a timeout?

            set pppoe service "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|Test"
            
            Payload Length: 40
            PPPoE Tags
                Tag: Host-Uniq (0x0103)
                Tag Length: 28
                Host-Uniq: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
                Tag: Service-Name (0x0101)
                Tag Length: 4
                Service-Name: Test
            

            It seems I also found an issue with Tag length, if I add one byte to the host-uniq, two bytes are stripped from service-name. This does not affect me, since service-name is not required by my IPS, it's just to ley you know.

            set pppoe service "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|Test"
            

            Payload length decrease by 1

            Payload Length: 39
            PPPoE Tags
                Tag: Host-Uniq (0x0103)
                Tag Length: 29
                Host-Uniq: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
                Tag: Service-Name (0x0101)
                Tag Length: 2
                Service-Name: Te
            

            Andrea

            1 Reply Last reply Reply Quote 0
            • stephenw10S Offline
              stephenw10 Netgate Administrator
              last edited by

              Hmm, 32B limit maybe?

              I can't imagine the tag order makes any difference. The server replies with a different order here.

              T 1 Reply Last reply Reply Quote 0
              • T Offline
                trollshiro @stephenw10
                last edited by trollshiro

                @stephenw10

                Hi,
                I tried OpenWRT that send the packet in the same order of my ISP router, but I still have timeout. The ISP is obviously doing something nasty to prevent use of non-proprietary router, but packets from ISP and oWRT are identical from what I can see, do you have any suggestion?

                About the 32B limit, yes, I think it could be that, but Host-Uniq could be of any lenght as far as I can understand. But again, it's not an issue for me, just something weird that I found out.

                Thanks again for your patience

                Andrea

                1 Reply Last reply Reply Quote 0
                • stephenw10S Offline
                  stephenw10 Netgate Administrator
                  last edited by

                  Spoof the MAC address of the parent interface to match the ISP router?

                  T 1 Reply Last reply Reply Quote 0
                  • T Offline
                    trollshiro @stephenw10
                    last edited by

                    @stephenw10

                    Already done, it was the first thing... (sigh)

                    1 Reply Last reply Reply Quote 0
                    • JKnottJ Offline
                      JKnott @trollshiro
                      last edited by

                      @trollshiro said in PPPoE host-uniq:

                      My ISP use host-uniq, but if I fill the field in the GUI, wireshark show that values are sent in EBCDIC.

                      Actually, it's ASCII. aaaa = 61 ASCII and 81 EBCDIC.

                      BTW, I started my telecom career as a bench tech overhauling Teletype machines and worked with ASCII and Baudot codes daily. I still have the code card somewhere. There was one system I used to work on, for CN Rail, where the computer worked with ASCII, Baudot, EBCDIC and Hollerith codes, depending on which circuit or device it was talking to.

                      PfSense running on Qotom mini PC
                      i5 CPU, 4 GB memory, 32 GB SSD & 4 Intel Gb Ethernet ports.
                      UniFi AC-Lite access point

                      I haven't lost my mind. It's around here...somewhere...

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        trollshiro
                        last edited by

                        @stephenw10

                        After some debugging I found that the ISP router sent out PADI packets with a weird timing

                        11:24:53.046530	XX:XX:XX:XX:XX:XX		Broadcast		PPPoED	58	Active Discovery Initiation (PADI)
                        11:24:53.707597	XX:XX:XX:XX:XX:XX		Broadcast		PPPoED	58	Active Discovery Initiation (PADI)
                        11:24:54.707684	XX:XX:XX:XX:XX:XX		Broadcast		PPPoED	58	Active Discovery Initiation (PADI)
                        11:25:06.707842	XX:XX:XX:XX:XX:XX		Broadcast		PPPoED	58	Active Discovery Initiation (PADI)
                        

                        And it always start working after the the 4th packet is sent. I cannot see the PADO anyway, probably it's filtered by the ONT.

                        There is also a sort of counter in the corresponding host-uniq field.

                        Host-Uniq:XXXXXXXXXXXXaaaaaaaa01000000aaaaaaaa4621426f7820...
                        Host-Uniq:XXXXXXXXXXXXaaaaaaaa01000000aaaaaaaa4621426f7820...
                        Host-Uniq:XXXXXXXXXXXXaaaaaaaa01000000aaaaaaaa4621426f7820...
                        Host-Uniq:XXXXXXXXXXXXaaaaaaaa02000000aaaaaaaa4621426f7820...
                        

                        So I gave up, it's completely out of standard.
                        Do you think it's possibile to use the ISP router only for PPPoE authentication and pfsense as an actual router?

                        1 Reply Last reply Reply Quote 0
                        • stephenw10S Offline
                          stephenw10 Netgate Administrator
                          last edited by

                          Possibly if it has some sort of bridging mode. I would not hold my breath though. 😉

                          Is that "counter" always the same? Have you tried just using the 4 packet string?

                          Steve

                          T 2 Replies Last reply Reply Quote 0
                          • T Offline
                            trollshiro @stephenw10
                            last edited by

                            @stephenw10

                            It increase by one after 3 packets and then by another one, so it's something like this:

                            01000000 (0.5 sec)
                            01000000 (1 sec)
                            01000000 (12 sec)
                            02000000 (15 sec) -> here I got connectivity
                            03000000
                            03000000
                            03000000
                            04000000

                            So I tried to replicate that with a stupid shell script that called mpd5, sleep xx, kill, and do that again with a different mpd.conf file (with another string) but it lead nowhere (timing is not so accurate).

                            1 Reply Last reply Reply Quote 0
                            • T Offline
                              trollshiro @stephenw10
                              last edited by

                              @stephenw10

                              Hi,
                              it's solved now.

                              After some fights with the IPS they changed some settings and I was able to connect directly from my PC (Windows, no MAC spoofing required) but not yet from PFsense. After some debug I found they accept only PAP and they drop the connection with any other protocol so I changed this line in mpd_wan.conf

                              set link accept chap pap eap
                              

                              to

                              set link accept pap
                              

                              Now it connects smoothly, thanks a lot for your help Hope this could be useful to someone else.

                              Note: my provider requires also that VLAN is setted to 835, I guess it has something to do with VPI-VCI

                              1 Reply Last reply Reply Quote 0
                              • stephenw10S Offline
                                stephenw10 Netgate Administrator
                                last edited by

                                Still need to send the host-uniq value?

                                Steve

                                T 1 Reply Last reply Reply Quote 0
                                • T Offline
                                  trollshiro @stephenw10
                                  last edited by

                                  @stephenw10

                                  No, it's not needed anymore. The only difference with a standard config is PAP.

                                  1 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post
                                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.