Date: Sat, 28 Nov 1998 22:03:07 -0800 (PST) From: "Jonathan M. Bresler" <jmb> To: hackers Subject: tun interfaces not returned by SIOCGIFCONF ?? Message-ID: <199811290603.WAA27066@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
kernel info: 3.0-CURRENT FreeBSD 3.0-CURRENT #10: Fri Nov 27 12:00:05
tried nmap over ppp on a tun interface.
nmap claims it cant find the source address (my address on tun0).
nmap uses SIOCGIFCONF to get a ifconf (/sys/net/if.h) which
contains a list of ifreq structures. neither tun0 nor ppp0
appear on the list. (ifconfig -a uses a sysctl to get the list,
by the way).
is it a bug or a misconfiguration on my part?
~~~~~~~~~~~~~~~~~~~~
in this code snippit, i always call inet_ntoa() eventhough the argument
may no be an address but rather other data.
code from nmap (printf()'s are my additions):
for (ifr = (struct ifreq *) pbuf;
ifr && *((char *) ifr) && ((char *) ifr) < pbuf + ifc.ifc_len;
((*(char **) &ifr) += sizeof(ifr->ifr_name) + len)) {
sin = (struct sockaddr_in *) & ifr->ifr_addr;
printf("ifc_len: %d (currently at %u)\n", ifc.ifc_len, (char *)ifr - pbuf);
printf("trying: %s: %s\n", ifr->ifr_name, inet_ntoa(sin->sin_addr));
if (sin->sin_addr.s_addr == addr->s_addr) {
/*
* Stevens does this in UNP, so it may be useful in
* some cases
*/
if ((p = strchr(ifr->ifr_name, ':')))
*p = '\0';
/*
* If an app gives me less than 64 bytes, they
* deserve to be overflowed!
*/
strncpy(dev, ifr->ifr_name, 63);
dev[63] = '\0';
return 1;
}
}
if (!ifr)
printf("ifr\n");
else if (!(*((char *)ifr)))
printf("*((char *)ifr)\n");
else if (!((char *)ifr < pbuf + ifc.ifc_len))
printf("(char *) ifr < pbuf + ifc.ifc_len\n");
~~~~~~~~~~~~~~~~~~~~
nmap shows:
Aspen:[399] ./nmap -s -D -n -v -S 207.172.87.229 .......
Starting nmap V. 1.51 by Fyodor (fyodor@dhp.com, www.dhp.com/~fyodor/nmap/)
ifc_len: 412 (currently at 0)
trying: lp0: 34.3.0.0
ifc_len: 412 (currently at 36)
trying: ep0: 6.3.6.0
ifc_len: 412 (currently at 72)
trying: ep0: 192.168.250.10
*((char *)ifr)
Could not figure out what device to send the packet out on! You might possibly want to try -S (but this is probably a bigger problem)
~~~~~~~~~~~~~~~~~~~~
ifconfig -a shows:
Aspen:[400] ifconfig -a
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
ep0: flags=c843<UP,BROADCAST,RUNNING,SIMPLEX,LINK2,MULTICAST> mtu 1500
inet 192.168.250.10 netmask 0xffffff00 broadcast 192.168.250.255
ether 00:60:8c:79:b5:4a
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1006
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
inet 207.172.87.115 --> 255.255.255.255 netmask 0xffffffff
inet 207.172.87.229 --> 10.11.64.66 netmask 0xffffff00
tun1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
sl1: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
~~~~~~~~~~~~~~~~~~~~
jmb
--
Jonathan M. Bresler FreeBSD Core Team, Postmaster jmb@FreeBSD.ORG
FreeBSD--The Power to Serve http://www.freebsd.org/
PGP 2.6.2 Fingerprint: 31 57 41 56 06 C1 40 13 C5 1C E3 E5 DC 62 0E FB
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811290603.WAA27066>
