Workaround ddos init script to xdp skb mode

if interface does not support native mode
re-run xdp-loader with skb mode, got error

Attaching XDP program in native mode not supported - try SKB mode.
TCP Native mode not supported, try SKB
Replacing allowed ports
Added port 80
Added port 8090
 libxdp: Retried more than 11 times, giving up
Couldn't attach XDP program on iface 'lo': Device or resource busy(-16)
UDP Native mode not supported, try SKB
Replacing allowed udp ports
Added port 10408

but it looks loaded ok

Signed-off-by: Vincent Li <vincent.mc.li@gmail.com>
This commit is contained in:
Vincent Li
2024-04-16 20:40:02 +00:00
parent 9924b85773
commit 0bece3c17a

View File

@@ -56,10 +56,16 @@ load_syncookie () {
prog_id=$(xdp-loader status red0 | grep 'syncookie_xdp' | awk '{print $4}')
xdp_synproxy --prog $prog_id --ports="$tcp_ports"
else
xdp-loader load red0 -m skb /usr/lib/bpf/xdp_synproxy.bpf.o
evaluate_retval
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'syncookie_xdp' | awk '{print $4}')
xdp_synproxy --prog $prog_id --ports="$tcp_ports"
xdp-loader load red0 /usr/lib/bpf/xdp_synproxy.bpf.o
if [ $? -ge 1 ]; then
boot_mesg "Native mode not supported, try SKB"
xdp-loader load red0 -m skb /usr/lib/bpf/xdp_synproxy.bpf.o
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'syncookie_xdp' | awk '{print $4}')
xdp_synproxy --prog $prog_id --ports="$tcp_ports"
else
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'syncookie_xdp' | awk '{print $4}')
xdp_synproxy --prog $prog_id --ports="$tcp_ports"
fi
fi
}
@@ -69,10 +75,16 @@ load_xdpudp () {
prog_id=$(xdp-loader status red0 | grep 'xdp_udp' | awk '{print $4}')
xdp-udp --prog $prog_id --ports="$udp_ports"
else
xdp-loader load red0 -m skb -P 90 -p /sys/fs/bpf/xdp-udp -n xdp_udp /usr/lib/bpf/xdp_udp.bpf.o
evaluate_retval
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'xdp_udp' | awk '{print $4}')
xdp-udp --prog $prog_id --ports="$udp_ports"
xdp-loader load red0 -P 90 -p /sys/fs/bpf/xdp-udp -n xdp_udp /usr/lib/bpf/xdp_udp.bpf.o
if [ $? -ge 1 ]; then
boot_mesg "Native mode not supported, try SKB"
xdp-loader load red0 -m skb -P 90 -p /sys/fs/bpf/xdp-udp -n xdp_udp /usr/lib/bpf/xdp_udp.bpf.o
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'xdp_udp' | awk '{print $4}')
xdp-udp --prog $prog_id --ports="$udp_ports"
else
prog_id=$(/usr/sbin/xdp-loader status red0 | grep 'xdp_udp' | awk '{print $4}')
xdp-udp --prog $prog_id --ports="$udp_ports"
fi
fi
}