Bug 214277 - mtu value for geneve interface
Summary: mtu value for geneve interface
Status: NEW
Alias: None
Product: Networking
Classification: Unclassified
Component: IPV4 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Stephen Hemminger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-02 10:30 UTC by Marco Berizzi
Modified: 2021-09-02 10:59 UTC (History)
0 users

See Also:
Kernel Version: 5.14
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Marco Berizzi 2021-09-02 10:30:58 UTC
Hello everyone,

I am implementing a L2 connectivity through an ipv4 network,
via GENEVE protocol.

There are two systems called 'GENgw1' and 'GENgw2' that
implement a GENEVE tunnel to provide L2 connectivity (a
bridge is configured on both) between the 'Ovest' and 'Est'
systems.

This is the diagram:


|Ovest eth0=10.1.1.2/24|-----|eth1 GENgw2 eth0=172.19.1.2/24|---+
                              br0                               |
                                                                |
                                                              geneve
                                                                |
                                                                |
|Est eth0=10.1.1.1/24|-------|eth1 GENgw1 eth0=172.19.1.1/24|---+
                              br0


The value of the mtu assigned by default to the geneve
interface is 1450 bytes, when the mtu of the physical
interface is 1500 bytes.

I am forced to increase it (from 1450 to 1500) to ensure
the correct mtu in the L2 virtual network segment.

This is the output from GENgw1 after forcing the mtu
to 1500 bytes for the geneve device:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fc:4d:d4:2e:cd:81 brd ff:ff:ff:ff:ff:ff
    inet 172.19.1.1/24 brd 172.19.1.255 scope global eth0
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:15:17:a6:ee:4c brd ff:ff:ff:ff:ff:ff
8: genevetunnel: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UNKNOWN group default qlen 1000
    link/ether 9e:9a:e7:1a:2d:30 brd ff:ff:ff:ff:ff:ff
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:15:17:a6:ee:4c brd ff:ff:ff:ff:ff:ff

GENgw2 setup is mirrored as GENgw1.

If I start a ping with a 1460 bytes long packet from the
'Est' system to the 'Ovest' system, the 'GENgw1' gateway
responds with an icmp message that it is necessary to
fragment the packet because it is too large because the
mtu is 1450 bytes.

tcpdump taken on GENgw1/eth1:

11:26:18.189960 IP (tos 0x0, ttl 255, id 17493, offset 0, flags [DF], proto ICMP (1), length 1488)
    192.168.1.1 > 192.168.1.2: ICMP echo request, id 34081, seq 0, length 1468

11:26:18.189983 IP (tos 0x0, ttl 255, id 0, offset 0, flags [DF], proto ICMP (1), length 576)
    192.168.1.2 > 192.168.1.1: ICMP 192.168.1.2 unreachable - need to frag (mtu 1450), length 556
        IP (tos 0x0, ttl 255, id 17493, offset 0, flags [DF], proto ICMP (1), length 1488)
    192.168.1.1 > 192.168.1.2: ICMP echo request, id 34081, seq 0, length 1468

Is this what should be expected?

Thank you all for your attention.

Cheers,
Marco
Comment 1 Marco Berizzi 2021-09-02 10:59:03 UTC
apologies, this is the correct schema:

|Ovest eth0=192.168.1.2/24|----|eth1 GENgw2 eth0=172.19.1.2/24|--+
                                 br0                             |
                                                                 |
                                                              geneve
                                                                 |
                                                                 |
|Est eth0=192.168.1.1/24|------|eth1 GENgw1 eth0=172.19.1.1/24|--+
                                 br0

Note You need to log in before you can comment on or make changes to this bug.