Locked lcpng with dhcp client on Linux


Bauruine
 

Hi

I would like to use VPP with the lcpng plugin as a home gateway where I have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of VPP it works and I can see an IP address on the interface on Linux but no route which was to be expected as lcpng doesn't sync routes from VPP to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on Linux where they are synced back to VPP? I naively tried "lcp create GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3" on Linux without success. Is there anything I have to configure or is this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan


Xiaodong Xu
 

Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan





Bauruine
 

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:

Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan








Pim van Pelt
 

Hoi Baurine,

Do you happen to have the ability to tcpdump on the DHCP server? I am confident that linux-cp (and the lcpng) will forward this traffic out because it's a broadcast packet (and all traffic will be handled), but I am not confident that the packet is (a) arriving at the DHCP server and (b) being returned or (c) being forwarded through the TAP to your dhclient.

Can you possibly tcpdump on the DHCP server ?

groet,
Pim

On Wed, Mar 1, 2023 at 8:36 PM Bauruine <lists@...> wrote:

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:
Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan






    





--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/


Bauruine
 

Grüezi Pim

Thank you for the reply.

I rewired it to a DHCP server under my control and did a tcpdump on it while running dhclient -v ge0-3.

23:56:25.067464 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Hostname (12), length 10: "gw02"
        Parameter-Request (55), length 13:
          Subnet-Mask (1), BR (28), Time-Zone (2), Default-Gateway (3)
          Domain-Name (15), Domain-Name-Server (6), Unknown (119), Hostname (12)
          Netbios-Name-Server (44), Netbios-Scope (47), MTU (26), Classless-Static-Route (121)
          NTP (42)
23:56:25.072057 00:0d:b9:50:9a:ad > 00:0d:b9:50:99:0a, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 192.168.25.36.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name (15), length 15: "local.tuxli.ch."
        Domain-Name-Server (6), length 4: 192.168.1.1

I'm not sure how to do a "tcpdump" in VPP. On the TAP interface I can't see a response.


On 01.03.23 23:20, Pim van Pelt via lists.fd.io wrote:

Hoi Baurine,

Do you happen to have the ability to tcpdump on the DHCP server? I am confident that linux-cp (and the lcpng) will forward this traffic out because it's a broadcast packet (and all traffic will be handled), but I am not confident that the packet is (a) arriving at the DHCP server and (b) being returned or (c) being forwarded through the TAP to your dhclient.

Can you possibly tcpdump on the DHCP server ?

groet,
Pim

On Wed, Mar 1, 2023 at 8:36 PM Bauruine <lists@...> wrote:

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:
Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan










--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/




Pim van Pelt
 

Hoi,

aha- the response is going to an IPv4 address that the server has assigned to you (192.168.25.1.67 > 192.168.25.36.68) and because that address is not configured in VPP, it will not relay it to the TAP.
For isc-dhclient, I think you can use -B (https://linux.die.net/man/8/dhclient) to ask it to tell the dhcp-server to broadcast it's reply. Does that help (can you show a tcpdump of that transaction) ?

groet,
Pim

On Thu, Mar 2, 2023 at 12:05 AM Bauruine <lists@...> wrote:

Grüezi Pim

Thank you for the reply.

I rewired it to a DHCP server under my control and did a tcpdump on it while running dhclient -v ge0-3.

23:56:25.067464 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Hostname (12), length 10: "gw02"
        Parameter-Request (55), length 13:
          Subnet-Mask (1), BR (28), Time-Zone (2), Default-Gateway (3)
          Domain-Name (15), Domain-Name-Server (6), Unknown (119), Hostname (12)
          Netbios-Name-Server (44), Netbios-Scope (47), MTU (26), Classless-Static-Route (121)
          NTP (42)
23:56:25.072057 00:0d:b9:50:9a:ad > 00:0d:b9:50:99:0a, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 192.168.25.36.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name (15), length 15: "local.tuxli.ch."
        Domain-Name-Server (6), length 4: 192.168.1.1

I'm not sure how to do a "tcpdump" in VPP. On the TAP interface I can't see a response.


On 01.03.23 23:20, Pim van Pelt via lists.fd.io wrote:
Hoi Baurine,

Do you happen to have the ability to tcpdump on the DHCP server? I am confident that linux-cp (and the lcpng) will forward this traffic out because it's a broadcast packet (and all traffic will be handled), but I am not confident that the packet is (a) arriving at the DHCP server and (b) being returned or (c) being forwarded through the TAP to your dhclient.

Can you possibly tcpdump on the DHCP server ?

groet,
Pim

On Wed, Mar 1, 2023 at 8:36 PM Bauruine <lists@...> wrote:

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:
Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan










--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/


    





--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/


Bauruine
 

Hoi Pim

The dhclient of Ubuntu 22.04 doesn't have the -B option but systemd-networkd has a RequestBroadcast option (https://www.freedesktop.org/software/systemd/man/systemd.network.html#RequestBroadcast=) which seems to do the same. I still don't see the response on the TAP interface.

07:45:19.392398 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 335: (tos 0xc0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 321)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 293, xid 0x50045ee8, secs 257, Flags [Broadcast] (0x8000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Client-ID (61), length 19: hardware-type 255, fa:b6:49:fa:00:02:00:00:ab:11:0f:e3:35:ec:c0:75:5b:6f
        Parameter-Request (55), length 10:
          Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
          Domain-Name (15), Static-Route (33), NTP (42), Unknown (119)
          Unknown (120), Classless-Static-Route (121)
        MSZ (57), length 2: 576
        Hostname (12), length 10: "gw02"
07:45:20.398006 00:0d:b9:50:9a:ad > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 255.255.255.255.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x50045ee8, secs 257, Flags [Broadcast] (0x8000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name-Server (6), length 4: 192.168.1.1
        Domain-Name (15), length 15: "local.tuxli.ch."



On 02.03.23 00:19, Pim van Pelt via lists.fd.io wrote:

Hoi,

aha- the response is going to an IPv4 address that the server has assigned to you (192.168.25.1.67 > 192.168.25.36.68) and because that address is not configured in VPP, it will not relay it to the TAP.
For isc-dhclient, I think you can use -B (https://linux.die.net/man/8/dhclient) to ask it to tell the dhcp-server to broadcast it's reply. Does that help (can you show a tcpdump of that transaction) ?

groet,
Pim

On Thu, Mar 2, 2023 at 12:05 AM Bauruine <lists@...> wrote:

Grüezi Pim

Thank you for the reply.

I rewired it to a DHCP server under my control and did a tcpdump on it while running dhclient -v ge0-3.

23:56:25.067464 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Hostname (12), length 10: "gw02"
        Parameter-Request (55), length 13:
          Subnet-Mask (1), BR (28), Time-Zone (2), Default-Gateway (3)
          Domain-Name (15), Domain-Name-Server (6), Unknown (119), Hostname (12)
          Netbios-Name-Server (44), Netbios-Scope (47), MTU (26), Classless-Static-Route (121)
          NTP (42)
23:56:25.072057 00:0d:b9:50:9a:ad > 00:0d:b9:50:99:0a, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 192.168.25.36.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name (15), length 15: "local.tuxli.ch."
        Domain-Name-Server (6), length 4: 192.168.1.1

I'm not sure how to do a "tcpdump" in VPP. On the TAP interface I can't see a response.


On 01.03.23 23:20, Pim van Pelt via lists.fd.io wrote:
Hoi Baurine,

Do you happen to have the ability to tcpdump on the DHCP server? I am confident that linux-cp (and the lcpng) will forward this traffic out because it's a broadcast packet (and all traffic will be handled), but I am not confident that the packet is (a) arriving at the DHCP server and (b) being returned or (c) being forwarded through the TAP to your dhclient.

Can you possibly tcpdump on the DHCP server ?

groet,
Pim

On Wed, Mar 1, 2023 at 8:36 PM Bauruine <lists@...> wrote:

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:
Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan










--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/






--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/




Bauruine
 

Sali Pim

I just found the solution.

set interface unnumbered GigabitEthernet3/0/0 use tap2

This in combination with RequestBroadcast worked and I've got an IP on Linux.

Thank you for your help, for your work on lcpng and for your articles on ipng.ch they are very interesting and helpful.

Best regards

Stefan

On 02.03.23 07:52, Bauruine wrote:

Hoi Pim

The dhclient of Ubuntu 22.04 doesn't have the -B option but systemd-networkd has a RequestBroadcast option (https://www.freedesktop.org/software/systemd/man/systemd.network.html#RequestBroadcast=) which seems to do the same. I still don't see the response on the TAP interface.

07:45:19.392398 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 335: (tos 0xc0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 321)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 293, xid 0x50045ee8, secs 257, Flags [Broadcast] (0x8000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Client-ID (61), length 19: hardware-type 255, fa:b6:49:fa:00:02:00:00:ab:11:0f:e3:35:ec:c0:75:5b:6f
        Parameter-Request (55), length 10:
          Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12)
          Domain-Name (15), Static-Route (33), NTP (42), Unknown (119)
          Unknown (120), Classless-Static-Route (121)
        MSZ (57), length 2: 576
        Hostname (12), length 10: "gw02"
07:45:20.398006 00:0d:b9:50:9a:ad > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 255.255.255.255.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x50045ee8, secs 257, Flags [Broadcast] (0x8000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name-Server (6), length 4: 192.168.1.1
        Domain-Name (15), length 15: "local.tuxli.ch."



On 02.03.23 00:19, Pim van Pelt via lists.fd.io wrote:
Hoi,

aha- the response is going to an IPv4 address that the server has assigned to you (192.168.25.1.67 > 192.168.25.36.68) and because that address is not configured in VPP, it will not relay it to the TAP.
For isc-dhclient, I think you can use -B (https://linux.die.net/man/8/dhclient) to ask it to tell the dhcp-server to broadcast it's reply. Does that help (can you show a tcpdump of that transaction) ?

groet,
Pim

On Thu, Mar 2, 2023 at 12:05 AM Bauruine <lists@...> wrote:

Grüezi Pim

Thank you for the reply.

I rewired it to a DHCP server under my control and did a tcpdump on it while running dhclient -v ge0-3.

23:56:25.067464 00:0d:b9:50:99:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0d:b9:50:99:0a, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Discover
        Hostname (12), length 10: "gw02"
        Parameter-Request (55), length 13:
          Subnet-Mask (1), BR (28), Time-Zone (2), Default-Gateway (3)
          Domain-Name (15), Domain-Name-Server (6), Unknown (119), Hostname (12)
          Netbios-Name-Server (44), Netbios-Scope (47), MTU (26), Classless-Static-Route (121)
          NTP (42)
23:56:25.072057 00:0d:b9:50:9a:ad > 00:0d:b9:50:99:0a, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    192.168.25.1.67 > 192.168.25.36.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xbba5cf6a, secs 48, Flags [none] (0x0000)
      Your-IP 192.168.25.36
      Server-IP 192.168.25.1
      Client-Ethernet-Address 00:0d:b9:50:99:0a
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message (53), length 1: Offer
        Server-ID (54), length 4: 192.168.25.1
        Lease-Time (51), length 4: 43200
        Subnet-Mask (1), length 4: 255.255.255.0
        Default-Gateway (3), length 4: 192.168.25.1
        Domain-Name (15), length 15: "local.tuxli.ch."
        Domain-Name-Server (6), length 4: 192.168.1.1

I'm not sure how to do a "tcpdump" in VPP. On the TAP interface I can't see a response.


On 01.03.23 23:20, Pim van Pelt via lists.fd.io wrote:
Hoi Baurine,

Do you happen to have the ability to tcpdump on the DHCP server? I am confident that linux-cp (and the lcpng) will forward this traffic out because it's a broadcast packet (and all traffic will be handled), but I am not confident that the packet is (a) arriving at the DHCP server and (b) being returned or (c) being forwarded through the TAP to your dhclient.

Can you possibly tcpdump on the DHCP server ?

groet,
Pim

On Wed, Mar 1, 2023 at 8:36 PM Bauruine <lists@...> wrote:

Hi Xiaodong

Yes and if i add an ip to the tap in Linux it also shows up in VPP.  I'm adding the full config at the end of the mail.

No I can't get an answer that's what I'm trying to achieve.

[stefan@gw02:~]$ sudo dhclient -v ge0-3
Listening on LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   LPF/ge0-3/00:0d:b9:50:99:0a
Sending on   Socket/fallback
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 3 (xid=0x5538f068)
DHCPDISCOVER on ge0-3 to 255.255.255.255 port 67 interval 7 (xid=0x5538f068)

[stefan@gw02:~]$ grep -v "\#" /etc/vpp/startup.conf | grep -v -e '^$'
unix {
  nodaemon
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  gid vpp
  exec /etc/vpp/bootstrap.vpp
}
api-trace {
  on
}
api-segment {
  gid vpp
}
socksvr {
  default
}
cpu {
    main-core 1
    workers 2
    skip-cores 0
}
plugins {
    plugin lcpng_nl_plugin.so { enable }
    plugin lcpng_if_plugin.so { enable }
}
logging {
   default-syslog-log-level info
   class linux-cp/if { rate-limit 10000 level debug syslog-level debug }
   class linux-cp/nl { rate-limit 10000 level debug syslog-level debug }
}
lcpng {
  lcp-sync
  lcp-auto-subint
}
[stefan@gw02:~]$ grep -v -e '^$' /etc/vpp/bootstrap.vpp
set interface state GigabitEthernet3/0/0 up
lcp create GigabitEthernet3/0/0 host-if ge0-3


On 01.03.23 20:08, Xiaodong Xu wrote:
Hi Stefan,

Did you also enable 'linux-nl' plugin, in addition to 'linux-cp'? I suppose 'linux-nl' is the one which syncs IP addresses/routes from Linux to VPP.

BTW, were you able to get the IP address / route after you ran the dhcp client on the tap interface? If not what do the error / log messages look like?

Xiaodong

On Wed, Mar 1, 2023 at 10:42 AM Bauruine <lists@...> wrote:
Hi

I would like to use VPP with the lcpng plugin as a home gateway where I
have to use dhcp to get an IP from my ISP. If I use the dhcp plugin of
VPP it works and I can see an IP address on the interface on Linux but
no route which was to be expected as lcpng doesn't sync routes from VPP
to Linux.

Is it possible to use a dhcp client on Linux to get the IP and routes on
Linux where they are synced back to VPP? I naively tried "lcp create
GigabitEthernet3/0/0 host-if ge0-3" in VPP and then "dhclient -v ge0-3"
on Linux without success. Is there anything I have to configure or is
this not possible? I'm using VPP 23.02 with lcpng master.

Any help is highly appreciated.

Best regards,

Stefan










--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/






--
Pim van Pelt <pim@...>
PBVP1-RIPE - http://www.ipng.nl/