UDP-пакеты, полученные на veth, перехваченные tcpdump, принятые iptables, но не перенаправленные в netcat

Рядом с небольшими задачами следует провести черту:

if [ -z $batas ] | [ $batas -lt 0 ]; then  

быть

if [ -z $batas ] || [ $batas -lt 0 ]; then  

А вместо этого:

if [ `expr $i % 2` -eq 0 ]; then  

вы можете использовать

if (( $i % 2 == 0 )); then  
3
30.06.2020, 22:44
1 ответ

Проблема была связана с контрольной суммой udp. Пакеты генерируются netcat с неверной контрольной суммой UDP, и в ядре устанавливается флаг, чтобы игнорировать это. Это работает с мостом linux, потому что пакеты остаются в пространстве ядра, но когда они проходят через программный коммутатор, пакеты попадают в пространство пользователя и повторно вставляются в ядро ​​​​без начальных флагов, которые игнорируют неверную контрольную сумму, поэтому они отбрасываются.

Исправлено разгрузкой контрольной суммы на интерфейсах:

/sbin/ethtool --offload $intf tx off
/sbin/ethtool --offload $intf rx off
1
18.03.2021, 23:23

Теги

Похожие вопросы