wpa_supplicant: IPv6 비활성화

wpa_supplicant: IPv6 비활성화

내 시스템은 이를 지원하지 않습니다 IPv6. 나는 단지 를 사용합니다 IPv4. 내 wpa_supplicant로그는 다음과 같은 오류 메시지로 채워집니다.

wpa_supplicant[3370]:  nl80211: Failed to open /proc/sys/net/ipv6/conf/wlan0/drop_unicast_in_l2_multicast: No such file or directory
wpa_supplicant[3370]:  nl80211: Failed to set IPv6 unicast in multicast filter

이것 자체는 무해하지만 실제로 다른 유용한 정보를 찾기는 어렵습니다.

구성을 시도하지 않고 wpa_supplicant그냥 사용 하도록 어떻게 알 수 있습니까 ?IPv4IPv6

답변1

다른 게시물에서 언급했듯이 wpa_supplicant에서 IPv6 지원을 비활성화하는 것은 불가능합니다. 유일한 목표가 wpa_supplicant가 질문에 언급된 두 가지 오류를 기록하는 것을 방지하는 것이라면 소스 코드를 복제하고 수정하십시오.이것IPv6 매개변수를 설정하는 줄을 주석 처리하여 이 기능을 구현합니다.

// comment out these lines in nl80211_configure_data_frame_filters(...)

static int nl80211_configure_data_frame_filters(void *priv, u32 filter_flags)
{
    struct i802_bss *bss = priv;
    char path[128];
    int ret;

    /* P2P-Device has no netdev that can (or should) be configured here */
    if (nl80211_get_ifmode(bss) == NL80211_IFTYPE_P2P_DEVICE)
        return 0;

    wpa_printf(MSG_DEBUG, "nl80211: Data frame filter flags=0x%x",
           filter_flags);

    /* Configure filtering of unicast frame encrypted using GTK */
    ret = os_snprintf(path, sizeof(path),
              "/proc/sys/net/ipv4/conf/%s/drop_unicast_in_l2_multicast",
              bss->ifname);
    if (os_snprintf_error(sizeof(path), ret))
        return -1;

    ret = nl80211_write_to_file(path,
                    !!(filter_flags &
                       WPA_DATA_FRAME_FILTER_FLAG_GTK));
    if (ret) {
        wpa_printf(MSG_ERROR,
               "nl80211: Failed to set IPv4 unicast in multicast filter");
        return ret;
    }

/** THIS BLOCK
    os_snprintf(path, sizeof(path),
            "/proc/sys/net/ipv6/conf/%s/drop_unicast_in_l2_multicast",
            bss->ifname);
    ret = nl80211_write_to_file(path,
                    !!(filter_flags &
                       WPA_DATA_FRAME_FILTER_FLAG_GTK));

    if (ret) {
        wpa_printf(MSG_ERROR,
               "nl80211: Failed to set IPv6 unicast in multicast filter");
        return ret;
    }
**/

    /* Configure filtering of unicast frame encrypted using GTK */
    os_snprintf(path, sizeof(path),
            "/proc/sys/net/ipv4/conf/%s/drop_gratuitous_arp",
            bss->ifname);
    ret = nl80211_write_to_file(path,
                    !!(filter_flags &
                       WPA_DATA_FRAME_FILTER_FLAG_ARP));
    if (ret) {
        wpa_printf(MSG_ERROR,
               "nl80211: Failed set gratuitous ARP filter");
        return ret;
    }

    /* Configure filtering of IPv6 NA frames */
/** THIS BLOCK
    os_snprintf(path, sizeof(path),
            "/proc/sys/net/ipv6/conf/%s/drop_unsolicited_na",
            bss->ifname);
    ret = nl80211_write_to_file(path,
                    !!(filter_flags &
                       WPA_DATA_FRAME_FILTER_FLAG_NA));
    if (ret) {
        wpa_printf(MSG_ERROR,
               "nl80211: Failed to set unsolicited NA filter");
        return ret;
    }
**/

    return 0;
}

하지만 실제로 당신이 해야 할 일은 사람들에게 이메일을 보내는 것입니다.주인([이메일 보호됨]) IPv6를 지원하지 않으며 wpa_supplicant가 로그에 스팸을 보내고 있으며 이를 중지하고 싶다고 설명하세요. 솔직히 말해서 유지보수 직원은 질문에 대답하는 데 있어서 매우 무심할 수 있으므로 질문을 명확하게 하고 평가에 필요한 모든 정보를 제공해야 합니다.

답변2

wpa_supplicant런타임 시 IPv6 지원을 비활성화하는 옵션은 없습니다. 다시 컴파일해야 합니다. 2.9 버전의 소스코드를 확인했습니다.

관련 정보