VPP after reboot cannot ping anything
To reproduce
- configure VPP
set interfaces ethernet eth0 address '192.168.122.14/24' set interfaces ethernet eth0 description 'WAN' set interfaces ethernet eth0 ipv6 address set interfaces ethernet eth1 address '100.64.0.1/24' set vpp settings interface eth0 driver 'dpdk' set vpp settings interface eth1 driver 'dpdk' set vpp settings unix poll-sleep-usec '222'
- Add PPP control plane map to post-config script
echo "sudo vppctl create pppoe map dp eth1 cp tap4096" | sudo tee -a /config/scripts/vyos-postconfig-bootup.script
- After saving and rebooting, there are no ARP entries:
vyos@r14:~$ ping 192.168.122.1 count 2 PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data. From 192.168.122.14 icmp_seq=1 Destination Host Unreachable From 192.168.122.14 icmp_seq=2 Destination Host Unreachable --- 192.168.122.1 ping statistics --- 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1000ms vyos@r14:~$ vyos@r14:~$ vyos@r14:~$ sudo arp -an ? (192.168.122.1) at <incomplete> on eth0 vyos@r14:~$ vyos@r14# run show conf com | match vpp set vpp settings interface eth0 driver 'dpdk' set vpp settings interface eth1 driver 'dpdk' set vpp settings unix poll-sleep-usec '222' [edit] vyos@r14#
IP FIB after reboot:
192.168.122.0/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:9 to:[0:0]]
[0] [@0]: dpo-drop ip4
192.168.122.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:8 buckets:1 uRPF:8 to:[0:0]]
[0] [@4]: ipv4-glean: [src:192.168.122.0/24] eth0: mtu:9000 next:1 flags:[] ffffffffffff52540077fa360806
192.168.122.14/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:13 to:[7:420]]
[0] [@12]: dpo-receive: 192.168.122.14 on eth0
192.168.122.255/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:11 to:[0:0]]
[0] [@0]: dpo-drop ip4After deleting VPP we can ping again:
vyos@r14# delete vpp [edit] vyos@r14# commit [edit] vyos@r14# run ping 192.168.122.1 count 2 PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data. 64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=0.162 ms 64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.174 ms --- 192.168.122.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1033ms rtt min/avg/max/mdev = 0.162/0.168/0.174/0.006 ms [edit] vyos@r14#
Load VPP configuration again, without reboot and we have connectivity
vyos@r14# load Loading configuration from 'config.boot' Load complete. Use 'commit' to make changes effective. [edit] vyos@r14# [edit] vyos@r14# compare commands set vpp settings interface eth0 driver 'dpdk' set vpp settings interface eth1 driver 'dpdk' set vpp settings unix poll-sleep-usec '222' [edit] vyos@r14# vyos@r14# commit [edit] vyos@r14# run ping 192.168.122.1 count 2 PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data. 64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=1.33 ms 64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.761 ms --- 192.168.122.1 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.761/1.045/1.330/0.284 ms [edit] vyos@r14#
IP FIB after reapply config (without reboot):
192.168.122.0/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:10 buckets:1 uRPF:11 to:[0:0]]
[0] [@0]: dpo-drop ip4
192.168.122.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:13 buckets:1 uRPF:29 to:[0:0]]
[0] [@5]: ipv4 via 192.168.122.1 eth0: mtu:1500 next:5 flags:[] 52540016840852540077fa360800
192.168.122.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:9 buckets:1 uRPF:10 to:[0:0]]
[0] [@4]: ipv4-glean: [src:192.168.122.0/24] eth0: mtu:9000 next:1 flags:[] ffffffffffff52540077fa360806
192.168.122.14/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:12 buckets:1 uRPF:15 to:[23:1905]]
[0] [@12]: dpo-receive: 192.168.122.14 on eth0
192.168.122.255/32
unicast-ip4-chain
[@0]: dpo-load-balance: [proto:ip4 index:11 buckets:1 uRPF:13 to:[0:0]]
[0] [@0]: dpo-drop ip4