* [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library @ 2010-02-18 6:14 Kuzin Andrey 2010-02-18 17:07 ` Patrick McHardy 0 siblings, 1 reply; 4+ messages in thread From: Kuzin Andrey @ 2010-02-18 6:14 UTC (permalink / raw) To: netfilter-devel Hello! I wrote about this problem later, but no any effect. Kernel somewhere or nfnetlink library has error. In kernel 2.6.27.x all forking fine. In kernel 2.6.30.5 only latest up tun iface was visible. Now i use kernel 2.6.32.3 and all tun ifaces become invisible. root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# gcc iftest.c -lnfnetlink root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ./a.out index (1) is lo (RUNNING) index (2) is eth0 (RUNNING) index (3) is eth1 (RUNNING) index (4) is eth2 (RUNNING) index (5) is eth3 (RUNNING) index (6) is teql0 (NOT RUNNING) index (7) is tunl0 (NOT RUNNING) index (8) is gre0 (NOT RUNNING) index (9) is eth0.11 (RUNNING) index (10) is eth0.14 (RUNNING) index (11) is eth0.15 (RUNNING) index (12) is eth0.2 (RUNNING) index (13) is eth0.3 (RUNNING) iftest output ifaces with index from 0 to 64. Here is ifaces list by ifconfig --------------------------------- root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ifconfig | grep Link eth0 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth1 Link encap:Ethernet HWaddr 00:22:15:39:a3:34 eth2 Link encap:Ethernet HWaddr 00:22:15:39:a3:35 eth3 Link encap:Ethernet HWaddr 00:22:15:39:a3:36 eth0.2 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth0.3 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth0.5 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth0.11 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth0.14 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 eth0.15 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 lo Link encap:Local Loopback tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 tun2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 In my program uses NFQUEUE packets from tun1 and tun2 coming with indexex 14 and 17. But iftest not output any information about this (and such code in my program). I don't know another way to get name of iface by his index. Thanks ! ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library 2010-02-18 6:14 [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library Kuzin Andrey @ 2010-02-18 17:07 ` Patrick McHardy 2010-02-18 17:21 ` Jan Engelhardt 0 siblings, 1 reply; 4+ messages in thread From: Patrick McHardy @ 2010-02-18 17:07 UTC (permalink / raw) To: Kuzin Andrey; +Cc: netfilter-devel Kuzin Andrey wrote: > Hello! I wrote about this problem later, but no any effect. > Kernel somewhere or nfnetlink library has error. > In kernel 2.6.27.x all forking fine. > In kernel 2.6.30.5 only latest up tun iface was visible. > Now i use kernel 2.6.32.3 and all tun ifaces become invisible. > > root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# gcc iftest.c -lnfnetlink > root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ./a.out > index (1) is lo (RUNNING) > index (2) is eth0 (RUNNING) > index (3) is eth1 (RUNNING) > index (4) is eth2 (RUNNING) > index (5) is eth3 (RUNNING) > index (6) is teql0 (NOT RUNNING) > index (7) is tunl0 (NOT RUNNING) > index (8) is gre0 (NOT RUNNING) > index (9) is eth0.11 (RUNNING) > index (10) is eth0.14 (RUNNING) > index (11) is eth0.15 (RUNNING) > index (12) is eth0.2 (RUNNING) > index (13) is eth0.3 (RUNNING) > > iftest output ifaces with index from 0 to 64. > > Here is ifaces list by ifconfig > --------------------------------- > root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ifconfig | grep Link > eth0 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth1 Link encap:Ethernet HWaddr 00:22:15:39:a3:34 > eth2 Link encap:Ethernet HWaddr 00:22:15:39:a3:35 > eth3 Link encap:Ethernet HWaddr 00:22:15:39:a3:36 > eth0.2 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth0.3 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth0.5 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth0.11 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth0.14 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > eth0.15 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 > lo Link encap:Local Loopback > tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 > tun2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 > > In my program uses NFQUEUE packets from tun1 and tun2 coming > with indexex 14 and 17. But iftest not output any information > about this (and such code in my program). > I don't know another way to get name of iface by his index. I can't reproduce this hear with tap devices. Please try to figure out whether there are no netlink messages for these devices or whether userspace ignores them. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library 2010-02-18 17:07 ` Patrick McHardy @ 2010-02-18 17:21 ` Jan Engelhardt 2010-02-18 20:00 ` Re[2]: " Kuzin Andrey 0 siblings, 1 reply; 4+ messages in thread From: Jan Engelhardt @ 2010-02-18 17:21 UTC (permalink / raw) To: Patrick McHardy; +Cc: Kuzin Andrey, netfilter-devel On Thursday 2010-02-18 18:07, Patrick McHardy wrote: >Kuzin Andrey wrote: >> Hello! I wrote about this problem later, but no any effect. >> Kernel somewhere or nfnetlink library has error. >> In kernel 2.6.27.x all forking fine. >> In kernel 2.6.30.5 only latest up tun iface was visible. >> Now i use kernel 2.6.32.3 and all tun ifaces become invisible. >> >> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# gcc iftest.c -lnfnetlink >> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ./a.out >> index (1) is lo (RUNNING) >> index (2) is eth0 (RUNNING) >> index (3) is eth1 (RUNNING) >> index (4) is eth2 (RUNNING) >> index (5) is eth3 (RUNNING) >> index (6) is teql0 (NOT RUNNING) >> index (7) is tunl0 (NOT RUNNING) >> index (8) is gre0 (NOT RUNNING) >> index (9) is eth0.11 (RUNNING) >> index (10) is eth0.14 (RUNNING) >> index (11) is eth0.15 (RUNNING) >> index (12) is eth0.2 (RUNNING) >> index (13) is eth0.3 (RUNNING) >> >> iftest output ifaces with index from 0 to 64. >> >> Here is ifaces list by ifconfig >> --------------------------------- >> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ifconfig | grep Link >> eth0 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth1 Link encap:Ethernet HWaddr 00:22:15:39:a3:34 >> eth2 Link encap:Ethernet HWaddr 00:22:15:39:a3:35 >> eth3 Link encap:Ethernet HWaddr 00:22:15:39:a3:36 >> eth0.2 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth0.3 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth0.5 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth0.11 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth0.14 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> eth0.15 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >> lo Link encap:Local Loopback >> tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 >> tun2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 >> >> In my program uses NFQUEUE packets from tun1 and tun2 coming >> with indexex 14 and 17. But iftest not output any information >> about this (and such code in my program). >> I don't know another way to get name of iface by his index. > >I can't reproduce this hear with tap devices. Please try to >figure out whether there are no netlink messages for these >devices or whether userspace ignores them. Can't reproduce either. Andrey, also try `ip addr` besides iftest, just to be really sure. 18:18 ares:../libnfnetlink/utils # tunctl -t tun0 Set 'tun0' persistent and owned by uid 0 18:19 ares:../libnfnetlink/utils # tunctl -pt tap0 Set 'tap0' persistent and owned by uid 0 18:19 ares:../libnfnetlink/utils # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:14:4f:e1:d1:24 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:14:4f:e1:d1:25 brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:14:4f:e1:d1:26 brd ff:ff:ff:ff:ff:ff 5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:14:4f:e1:d1:27 brd ff:ff:ff:ff:ff:ff 6: sit0: <NOARP> mtu 1480 qdisc noop state DOWN link/sit 0.0.0.0 brd 0.0.0.0 8: tun0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 500 link/[65534] 9: tap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500 link/ether aa:6d:76:59:17:e7 brd ff:ff:ff:ff:ff:ff 18:19 ares:../libnfnetlink/utils # ./iftest index (1) is lo (RUNNING) index (2) is eth0 (RUNNING) index (3) is eth1 (NOT RUNNING) index (4) is eth2 (NOT RUNNING) index (5) is eth3 (NOT RUNNING) index (6) is sit0 (NOT RUNNING) index (8) is tun0 (NOT RUNNING) index (9) is tap0 (NOT RUNNING) ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re[2]: [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library 2010-02-18 17:21 ` Jan Engelhardt @ 2010-02-18 20:00 ` Kuzin Andrey 0 siblings, 0 replies; 4+ messages in thread From: Kuzin Andrey @ 2010-02-18 20:00 UTC (permalink / raw) To: netfilter-devel; +Cc: Jan Engelhardt, Patrick McHardy >>Kuzin Andrey wrote: >>> Hello! I wrote about this problem later, but no any effect. >>> Kernel somewhere or nfnetlink library has error. >>> In kernel 2.6.27.x all forking fine. >>> In kernel 2.6.30.5 only latest up tun iface was visible. >>> Now i use kernel 2.6.32.3 and all tun ifaces become invisible. >>> >>> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# gcc iftest.c -lnfnetlink >>> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ./a.out >>> index (1) is lo (RUNNING) >>> index (2) is eth0 (RUNNING) >>> index (3) is eth1 (RUNNING) >>> index (4) is eth2 (RUNNING) >>> index (5) is eth3 (RUNNING) >>> index (6) is teql0 (NOT RUNNING) >>> index (7) is tunl0 (NOT RUNNING) >>> index (8) is gre0 (NOT RUNNING) >>> index (9) is eth0.11 (RUNNING) >>> index (10) is eth0.14 (RUNNING) >>> index (11) is eth0.15 (RUNNING) >>> index (12) is eth0.2 (RUNNING) >>> index (13) is eth0.3 (RUNNING) >>> >>> iftest output ifaces with index from 0 to 64. >>> >>> Here is ifaces list by ifconfig >>> --------------------------------- >>> root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ifconfig | grep Link >>> eth0 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth1 Link encap:Ethernet HWaddr 00:22:15:39:a3:34 >>> eth2 Link encap:Ethernet HWaddr 00:22:15:39:a3:35 >>> eth3 Link encap:Ethernet HWaddr 00:22:15:39:a3:36 >>> eth0.2 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth0.3 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth0.5 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth0.11 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth0.14 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> eth0.15 Link encap:Ethernet HWaddr 00:22:15:39:a3:33 >>> lo Link encap:Local Loopback >>> tun1 Link encap:UNSPEC HWaddr >>> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 >>> tun2 Link encap:UNSPEC HWaddr >>> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 >>> >>> In my program uses NFQUEUE packets from tun1 and tun2 coming >>> with indexex 14 and 17. But iftest not output any information >>> about this (and such code in my program). >>> I don't know another way to get name of iface by his index. >> >>I can't reproduce this hear with tap devices. Please try to >>figure out whether there are no netlink messages for these >>devices or whether userspace ignores them. JE> Can't reproduce either. Andrey, also try `ip addr` besides JE> iftest, just to be really sure. JE> 18:18 ares:../libnfnetlink/utils # tunctl -t tun0 JE> Set 'tun0' persistent and owned by uid 0 JE> 18:19 ares:../libnfnetlink/utils # tunctl -pt tap0 JE> Set 'tap0' persistent and owned by uid 0 JE> 18:19 ares:../libnfnetlink/utils # ip a JE> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN JE> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 JE> inet 127.0.0.1/8 brd 127.255.255.255 scope host lo JE> inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo JE> inet6 ::1/128 scope host JE> valid_lft forever preferred_lft forever JE> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 JE> link/ether 00:14:4f:e1:d1:24 brd ff:ff:ff:ff:ff:ff JE> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 JE> link/ether 00:14:4f:e1:d1:25 brd ff:ff:ff:ff:ff:ff JE> 4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 JE> link/ether 00:14:4f:e1:d1:26 brd ff:ff:ff:ff:ff:ff JE> 5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 JE> link/ether 00:14:4f:e1:d1:27 brd ff:ff:ff:ff:ff:ff JE> 6: sit0: <NOARP> mtu 1480 qdisc noop state DOWN JE> link/sit 0.0.0.0 brd 0.0.0.0 JE> 8: tun0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 500 JE> link/[65534] JE> 9: tap0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500 JE> link/ether aa:6d:76:59:17:e7 brd ff:ff:ff:ff:ff:ff JE> 18:19 ares:../libnfnetlink/utils # ./iftest JE> index (1) is lo (RUNNING) JE> index (2) is eth0 (RUNNING) JE> index (3) is eth1 (NOT RUNNING) JE> index (4) is eth2 (NOT RUNNING) JE> index (5) is eth3 (NOT RUNNING) JE> index (6) is sit0 (NOT RUNNING) JE> index (8) is tun0 (NOT RUNNING) JE> index (9) is tap0 (NOT RUNNING) Thanks for answer. This is my 'ip addr' results: root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo ........[skipped]....... 12: eth0.2@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP link/ether 00:22:15:39:a3:33 brd ff:ff:ff:ff:ff:ff inet 10.248.249.1/24 brd 10.248.249.255 scope global eth0.2 13: eth0.3@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:22:15:39:a3:33 brd ff:ff:ff:ff:ff:ff inet 192.168.18.1/24 brd 192.168.18.255 scope global eth0.3 14: eth0.5@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP link/ether 00:22:15:39:a3:33 brd ff:ff:ff:ff:ff:ff inet 10.10.1.1/24 brd 10.10.1.255 scope global eth0.5 17: tun2: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc htb state UNKNOWN qlen 500 link/[65534] inet 10.2.0.3 peer 10.2.0.4/32 scope global tun2 24: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc htb state UNKNOWN qlen 500 link/[65534] inet 10.2.0.1 peer 10.2.0.2/32 scope global tun1 And 'iftest' results: root@banana:/tmp/tgz/libnfnetlink-1.0.0/utils# ./iftest index (1) is lo (RUNNING) index (2) is eth0 (RUNNING) index (3) is eth1 (RUNNING) index (4) is eth2 (RUNNING) index (5) is eth3 (RUNNING) index (6) is teql0 (NOT RUNNING) index (7) is tunl0 (NOT RUNNING) index (8) is gre0 (NOT RUNNING) index (9) is eth0.11 (RUNNING) index (10) is eth0.14 (RUNNING) index (11) is eth0.15 (RUNNING) index (12) is eth0.2 (RUNNING) index (13) is eth0.3 (RUNNING) Here is no iface eth0.5@eth0=14, and as i see tun ifaces both has 'state UNKNOWN' I try to modify iftest to find error: for (i=0; i<64; i++) { char name[IFNAMSIZ]; unsigned int flags; if (nlif_index2name(h, i, name) == -1) { printf("can't get name for index=%d\n",i); continue; } if (nlif_get_ifflags(h, i, &flags) == -1) { printf("can't get flags for index=%d\n",i); continue; } printf("index (%d) is %s (%s)\n", i, name, flags & IFF_RUNNING ? "RUNNING" : "NOT RUNNING"); } And here is result: ./a.outnana:/tmp/tgz/libnfnetlink-1.0.0/utils# can't get flags for index=0 index (1) is lo (RUNNING) index (2) is eth0 (RUNNING) index (3) is eth1 (RUNNING) index (4) is eth2 (RUNNING) index (5) is eth3 (RUNNING) index (6) is teql0 (NOT RUNNING) index (7) is tunl0 (NOT RUNNING) index (8) is gre0 (NOT RUNNING) index (9) is eth0.11 (RUNNING) index (10) is eth0.14 (RUNNING) index (11) is eth0.15 (RUNNING) index (12) is eth0.2 (RUNNING) index (13) is eth0.3 (RUNNING) can't get name for index=14 can't get name for index=15 can't get name for index=16 can't get name for index=17 can't get name for index=18 can't get name for index=19 can't get name for index=20 can't get name for index=21 can't get name for index=22 can't get name for index=23 can't get name for index=24 can't get name for index=25 can't get name for index=26 can't get name for index=27 .......... can't get name for index=62 can't get name for index=63 I know only this way (described in iftest) how to get name of interface by index. May be another way ? I try to find source of "ip addr". But this is strange because in older kernel this code working right. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-02-18 19:57 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-18 6:14 [IMPORTANT] !!! tun ifaces don't visible by nfnetlink library Kuzin Andrey 2010-02-18 17:07 ` Patrick McHardy 2010-02-18 17:21 ` Jan Engelhardt 2010-02-18 20:00 ` Re[2]: " Kuzin Andrey
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.