FRRouting / frr

The FRRouting Protocol Suite
https://frrouting.org/
Other
3.18k stars 1.22k forks source link

eigrp question for help #5411

Open leidemon opened 4 years ago

leidemon commented 4 years ago

I cross complier the frr code in mipsel; then I want to test eigrp on nhrp, adn in the code (eigrp_packets.c),it show as followed 2019/11/22 17:07:18 EIGRP: interface tun0: eigrp_read network address is not same [22.252.169.1] 2019/11/22 17:07:18 EIGRP: --lwd--line:991, me:22.252.169.41,him:2.252.169.41, ip:2.252.169.41.ei:22.252.169.41

I do not know why ? please frr term give me some suggestions; eigrp.conf is as follow: ! hostname eigrp ! interface tun0 ip address 22.252.169.41 255.255.255.0 no ip redirects ip nhrp authentication prov ip nhrp map multicast 192.168.252.22 ip nhrp map 22.252.169.1 192.168.252.22 ip nhrp network-id 1 ip nhrp holdtime 255 ip nhrp nhs 22.252.169.1 tunnel source vlan2 tunnel mode gre multicast tunnel key 3333 ! interface vlan2 ip address 190.168.252.22 255.255.255.0 ! interface br0 ip address 193.168.1.1 255.255.255.0 ! ! ! router eigrp 100 network 22.252.169.0/24 network 193.168.1.0/24 network 190.168.252.0/24 auto-summary !

static int eigrp_check_network_mask(struct eigrp_interface *ei, struct in_addr ip_src) { struct in_addr mask, me, him; zlog_debug("--lwd--line:%d, ip:%s.ei:%s,len:%d\n",LINE,inet_ntoa(ip_src),inet_ntoa(ei->address.u.prefix4),ei->address.prefixlen);

    if (ei->type == EIGRP_IFTYPE_POINTOPOINT)
            return 1;

    masklen2ip(ei->address.prefixlen, &mask);

    me.s_addr = ei->address.u.prefix4.s_addr & mask.s_addr;
    him.s_addr = ip_src.s_addr & mask.s_addr;
    zlog_debug("--lwd--line:%d, me:%s,him:%s, ip:%s.ei:%s\n",__LINE__,inet_ntoa(me),inet_ntoa(him),inet_ntoa(ip_src),inet_ntoa(ei->address.u.prefix4));
leidemon commented 4 years ago

add more messages: log: 2019/11/22 18:11:16 EIGRP: --lwd--line:544, ip:22.252.169.1

2019/11/22 18:11:16 EIGRP: --lwd--line:557, ip:2.252.169.41.ei:22.252.169.41 code: 544 zlog_debug("--lwd--line:%d, ip:%s\n",LINE,inet_ntoa(iph->ip_src)); 545 / associate packet with eigrp interface / 546 ei = ifp->info; 547 548 / eigrp_verify_header() relies on a valid "ei" and thus can be called 549 only 550 after the checks below are passed. These checks in turn access the 551 fields of unverified "eigrph" structure for their own purposes and 552 must remain very accurate in doing this. 553 / 554 if (!ei) 555 return 0; 556 557 zlog_debug("--lwd--line:%d, ip:%s.ei:%s\n",LINE,inet_ntoa(iph->ip_src),inet_ntoa(ei->address.u.prefix4));

leidemon commented 4 years ago

use the last version7.2

donaldsharp commented 4 years ago

what's mask? But it sure looks like we are receiving a packet that we think we originated. Do you happen to have the same address configured in the interface?

leidemon commented 4 years ago

nhrp conf as follow,nhrp server ip is 22.252.169.1,the product is 22.252.169.41 interface tun0 map 22.252.169.1 192.168.252.22 register cisco cisco-authentication prov multicast dynamic holding-time 255 shortcut redirect non-caching multicast nhs

interface lo shortcut-destination

leidemon commented 4 years ago

what's mask? But it sure looks like we are receiving a packet that we think we originated. Do you happen to have the same address configured in the interface? the mask is strange,I will debug it if as soon as I have time nhrp server ip is 22.252.169.1,the product is 22.252.169.41

chris-tof commented 4 years ago

Hello. Do you still have the issue ?

I am testing currently eigrp and nhrp but I see that ip nhrp multicast is not yet implemented, even in the master branch... Are you sure that your configuration with ip nhrp multicast is correctly applied ?

Thank you.