Пакеты, не полученные устройством TUN

Я создал устройство TUN (nat64) и создал маршрут, чтобы все необходимые пакеты были перенаправлены на устройство TUN с этого устройства. Но я вижу, что многие пакеты не принимаются устройством TUN.

Объясняя длинную историю, я пытаюсь реализовать простую программу NAT64 с использованием устройства TUN для фильтрации необходимого трафика. 2001: abcd: 1 :: 1 – IP Gateway. Все IPv6-пакеты, полученные шлюзом и предназначенные для 2001: abcd: 1: ffff :: / 64, должны быть переведены на IPv4. Я написал программу, которая читает с устройства TUN и выполняет все необходимые переводы с IPv6 на IPv4.

Я создал маршрут к устройству TUN nat64 для 2001 года: abcd: 1: ffff :: / 64. Он отлично работает, если я пытаюсь выполнить ping6 или трафик по низким ставкам. Когда я пытался отправлять пакеты с большей скоростью, многие пакеты не достигли устройства TUN. Из 4-мегабайтных UDP-пакетов, которые я передал с частотой 200K / sec, только 2,9M-пакеты были перенаправлены на устройство TUN.

Я проверил это из статистики в ifconfig, а также использовал счетчики во время чтения () с устройства TUN. Также проверяется tcpdump, чтобы убедиться, что все пакеты достигли eth0. Используется инструмент ostinato для отправки UDP-пакетов.

Ниже приведена конфигурация,

> $ip -6 route > 2001:abcd:1:ffff::/64 dev nat64 metric 1024 mtu 1500 advmss 1440 hoplimit 0 > > eth0 Link encap:Ethernet HWaddr 08:AC:A5:10:01:52 inet6 addr: > 2001:abcd:1::1/128 Scope:Global inet6 addr: fe80::aac:a5ff:fe10:152/64 > Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1 RX > packets:182256365 errors:0 dropped:0 overruns:0 frame:0 TX > packets:91927 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 > txqueuelen:0 RX bytes:8762429793 (8.1 GiB) TX bytes:10618282 (10.1 > MiB) > > nat64 Link encap:UNSPEC HWaddr > 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP POINTOPOINT RUNNING > NOARP MULTICAST MTU:1500 Metric:1 RX packets:49370386 errors:0 > dropped:0 overruns:0 frame:0 TX packets:49379475 errors:0 dropped:31 > overruns:12933189 carrier:0 collisions:0 txqueuelen:500 RX > bytes:1394031492 (1.2 GiB) TX bytes:2378651480 (2.2 GiB) > > $tcpdump -ni nat64 > /dev/null > tcpdump: WARNING: arptype 65534 not > supported by libpcap - falling back to cooked socket tcpdump: WARNING: > nat64: no IPv4 address assigned tcpdump: verbose output suppressed, > use -v or -vv for full protocol decode listening on nat64, link-type > LINUX_SLL (Linux cooked), capture size 65535 bytes ^C2961568 packets > captured 2961568 packets received by filter 0 packets dropped by > kernel > > $tcpdump -ni eth0 > /dev/null > tcpdump: WARNING: eth0: no IPv4 address > assigned tcpdump: verbose output suppressed, use -v or -vv for full > protocol decode listening on eth0, link-type EN10MB (Ethernet), > capture size 65535 bytes ^C4000482 packets captured 4000482 packets > received by filter 0 packets dropped by kernel 

Что может быть причиной стольких пакетов, отсутствующих между eth0 и устройством TUN?

Interesting Posts
Linux и Unix - лучшая ОС в мире.