Подскажите, пожалуйста.
Код: Выделить всё
# uname -srm
FreeBSD 7.0-RC1 i386
Код: Выделить всё
net.link.ether.inet.log_arp_permanent_modify: 0
net.link.ether.inet.log_arp_movements: 0
net.link.ether.inet.log_arp_wrong_iface: 0
net.inet.tcp.log_in_vain: 0
net.inet.tcp.log_debug: 0
kernel: arplookup xxx.xx.xx.xx failed: host is not on local network
yyy.yy.yy.yy - em0 1000Base
zzz.zz.zz.zz - алиас em0
С настройками сети абсолютно всё в порядке, маски - верные, роуты - тоже.
Конфиг ядра:
Код: Выделить всё
# grep 'option' /usr/src/sys/i386/conf/BEASTIE-RC7
# An exhaustive list of options and more detailed explanations of the
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
options MROUTING
options "MAXDSIZ=(512*1024*1024)"
options "DFLDSIZ=(128*1024*1024)"
options NMBCLUSTERS=32768
options MAXFILES=16384
options IPSEC
options IPSEC_FILTERTUNNEL
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_DEFLATE
options NETGRAPH_DEVICE
options NETGRAPH_SOCKET
options NETGRAPH_ECHO
options NETGRAPH_TEE
options NETGRAPH_GIF
options NETGRAPH_IPFW
options NETGRAPH_IFACE
options NETGRAPH_NAT
options NETGRAPH_PPP
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP
options HZ=1000
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_NAT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPSTEALTH
options DEVICE_POLLING
options ZERO_COPY_SOCKETS
options SMP # Symmetric MultiProcessor Kernel
options ATA_STATIC_ID # Static device numbering
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
Код: Выделить всё
/usr/src/sys/netinet/if_ether.c
.........................849.......................
/*
* Lookup or enter a new address in arptab.
*/
static struct rtentry *
arplookup(u_long addr, int create, int proxy)
{
struct rtentry *rt;
struct sockaddr_inarp sin;
const char *why = 0;
bzero(&sin, sizeof(sin));
sin.sin_len = sizeof(sin);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = addr;
if (proxy)
sin.sin_other = SIN_PROXY;
rt = rtalloc1((struct sockaddr *)&sin, create, 0UL);
if (rt == 0)
return (0);
if (rt->rt_flags & RTF_GATEWAY)
why = "host is not on local network";
else if ((rt->rt_flags & RTF_LLINFO) == 0)
why = "could not allocate llinfo";
else if (rt->rt_gateway->sa_family != AF_LINK)
why = "gateway route is not ours";
if (why) {
#define ISDYNCLONE(_rt) \
(((_rt)->rt_flags & (RTF_STATIC | RTF_WASCLONED)) == RTF_WASCLONED)
if (create)
log(LOG_DEBUG, "arplookup %s failed: %s\n",
inet_ntoa(sin.sin_addr), why);
/*
* If there are no references to this Layer 2 route,
* and it is a cloned route, and not static, and
* arplookup() is creating the route, then purge
* it from the routing table as it is probably bogus.
*/
if (rt->rt_refcnt == 1 && ISDYNCLONE(rt))
rtexpunge(rt);
RTFREE_LOCKED(rt);
return (0);
#undef ISDYNCLONE
} else {
RT_REMREF(rt);
return (rt);
}
}
Спасибо.