Jump to content
Калькуляторы

arprequest: cannot find matching address

Последнее время падает border.

стоит freebsd 8.1 на флешке в режиме read only.

падает почти каждкую неделю.

В эти моменты не пингуется не один интерфейс.

И на экран постоянно выводит сообщение

arprequest: cannot find matching address

Помогает только перезагрузка.

Если кто сталкивался с подобным, подскажите почему так происходит и как решили эту проблему?

Edited by Amazing

Share this post


Link to post
Share on other sites

if_ether.c

/*
* Broadcast an ARP request. Caller specifies:
*    - arp header source ip address
*    - arp header target ip address
*    - arp header source ethernet address
*/
void
arprequest(struct ifnet *ifp, struct in_addr *sip, struct in_addr  *tip,
    u_char *enaddr)
{
    struct mbuf *m;
    struct arphdr *ah;
    struct sockaddr sa;

    if (sip == NULL) {
        /* XXX don't believe this can happen (or explain why) */
        /*
         * The caller did not supply a source address, try to find
         * a compatible one among those assigned to this interface.
         */
        struct ifaddr *ifa;

        TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
            if (!ifa->ifa_addr ||
                ifa->ifa_addr->sa_family != AF_INET)
                continue;
            sip = &SIN(ifa->ifa_addr)->sin_addr;
            if (0 == ((sip->s_addr ^ tip->s_addr) &
                SIN(ifa->ifa_netmask)->sin_addr.s_addr) )
                break;  /* found it. */
        }
        if (sip == NULL) {  
            printf("%s: cannot find matching address\n", __func__);
            return;
        }
    }

 

Оно не может найти ипв4 адреса на сетевом интерфейсе для данного ипв4 адреса чтобы послать запрос.

Посмотрите что выдаёт ifconfig когда такое происходит.

Какие ещё сообщения в логах, до этих?

Как вариант можно сделать патч для себя, чтобы туда подставлялся 0.0.0.0 если ничего не найдено, вместо сообщения об ошибке, теоретически должно работать.

 

Можно ещё попробовать ifconfig down и потом up для интерфейсов.

Либо rc.d скриптом рестартануть сеть.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this