Description

It may be observed that jumbo frames are not working under the following conditions, and OSPF may also have issues establishing.

  • KVM and similar environments, such as Openstack and Proxmox
  • SR-IOV interfaces bound to a Mellanox card
  • The MTU setting on the vSRX is correct

 

Symptoms

When trying to ping out from the SRX specifying a jumbo size, as well as do-not-fragment, the ping fails without any explanation. However a ping that does not specify a size does work.

 

root@vsrx> ping 10.0.0.2 size 6000 do-not-fragment 

PING 8.8.8.8 (8.8.8.8): 6000 data bytes

^C

--- 10.0.0.2 ping statistics ---

2 packets transmitted, 0 packets received, 100% packet loss

 

OSPF and/or OSPF3 may also not come up.

Solution

The solution is that the MTU must also be specified within the hypervisor on the physical card. Otherwise it is dropped at the hypervisor/NIC level.

 

When you check the interfaces on the hypervisor, you will see something similar to the following:

 

root@PVE:~# lspci | grep Ether

<...>

8b:00.0 Ethernet controller: Mellanox Technologies MT2892 Family [ConnectX-6 Dx]

8b:00.1 Ethernet controller: Mellanox Technologies MT2892 Family [ConnectX-6 Dx]

8b:00.2 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function

8b:00.3 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function

8b:01.2 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function

8b:01.3 Ethernet controller: Mellanox Technologies ConnectX Family mlx5Gen Virtual Function 

 

root@PVE:~# ip link

<...>

5: ens6f0np0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000

  link/ether 50:00:e6:1c:bd:f8 brd ff:ff:ff:ff:ff:ff

  vf 0   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off

  vf 1   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off

7: ens6f1np1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000

  link/ether 50:00:e6:1c:bd:f9 brd ff:ff:ff:ff:ff:ff

  vf 0   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off

  vf 1   link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off

 

 

The solution is to set the MTU on the physical port in the hypervisor:

 

root@PVE:~# ip link set dev ens6f0np0 mtu 9192

root@PVE:~# ip link set dev ens6f1np1 mtu 9192

 

5: ens6f0np0: <BROADCAST,MULTICAST> mtu 9192 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:00:e6:1c:bd:f8 brd ff:ff:ff:ff:ff:ff
    vf 0     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off
    vf 1     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off
7: ens6f1np1: <BROADCAST,MULTICAST> mtu 9192 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:00:e6:1c:bd:f9 brd ff:ff:ff:ff:ff:ff
    vf 0     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off
    vf 1     link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off

 

root@vsrx> ping 10.0.0.2 size 6000 do-not-fragment 

PING 10.0.0.2 (10.0.0.2): 6000 data bytes

6008 bytes from 10.0.0.2: icmp_seq=0 ttl=64 time=15.183 ms

6008 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=2.186 ms

6008 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=2.893 ms

6008 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=3.202 ms

 

 

Note: 

If the MTU is set incorrectly on the vSRX, it will state this in the ping output as Junos will know its own MTU is too low:

 

root@vsrx> ping 10.0.0.2 size 6000 do-not-fragment 

PING 10.0.0.2 (10.0.0.2): 6000 data bytes

ping: sendto: Message too long

ping: sendto: Message too long

^C

--- 10.0.0.2 ping statistics ---

2 packets transmitted, 0 packets received, 100% packet loss

Modification History

2025-09-24 : Article Created