Hello,
After switching from zebra-0.93b to quagga-0.96.4 on one of my routers I
notice two problems with ripd:
1. There are a lot of "RIP: Can't bind socket: Invalid argument" messages
in my ripd logs. It seems that every time ripd tries to send RIP message
it send this error message. After little modification in ripd.c,
rip_interface.c and ripd.h which shows device name in such message I know
that there is a problem with my eth0 device:
(...)
2003/11/05 19:57:34 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:57:45 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:00 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:09 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:19 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:25 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:39 RIP: Can't bind socket on eth0: Invalid argument
(...)
This is quite strange since there was no problem with old zebra. eth0 is
normal ethernet device, with inet address and inet6 scope link address:
eth0 Link encap:Ethernet HWaddr 00:10:5A:63:F0:88
inet addr:XXX.XXX.210.1 Bcast:XXX.XXX.210.15 Mask:255.255.255.240
inet6 addr: fe80::210:5aff:fe63:f088/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:258817742 errors:2 dropped:0 overruns:0 frame:2
TX packets:218332628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3695505971 (3524.3 Mb) TX bytes:1047039677 (998.5 Mb)
Interrupt:11 Base address:0xd400
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:10:5a:63:f0:88 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.210.1/28 brd XXX.XXX.210.15 scope global eth0
inet6 fe80::210:5aff:fe63:f088/64 scope link
This is Linux 2.4.23-pre9 kernel.
2. I don't know why but someone changed format of "show ip rip". Now
it is totally unreadable:
Network Next Hop Metric From Tag Time
S(r) 0.0.0.0/0 0.0.0.0 1 self 0
R(n) XXX.XXX.129.0/24XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.8.133.0/30 XXX.XXX.210.2 3 XXX.XXX.210.2 0 00:43
S(r) XXX.XXX.210.0/230.0.0.0 1 self 0
C(i) XXX.XXX.210.0/280.0.0.0 1 self 0
C(r) XXX.XXX.210.16/290.0.0.0 1 self 0
R(n) XXX.XXX.210.64/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.XXX.211.0/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.XXX.211.224/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
S(r) XXX.XXX.251.64/27XXX.XXX.210.13 1 self 0
S(r) XXX.XXX.251.64/30XXX.XXX.210.3 1 self 0
R(n) XXX.XXX.251.80/29XXX.XXX.210.3 4 XXX.XXX.210.3 0 00:45
S(r) XXX.XXX.251.80/30XXX.XXX.210.3 1 self 0
R(n) XXX.XXX.127.236/30XXX.XXX.210.3 4 XXX.XXX.210.3 0 00:45
C(r) XXX.XX.32.44/30 0.0.0.0 1 self 0
R(n) XXX.XX.32.180/30XXX.XXX.210.2 3 XXX.XXX.210.2 0 00:43
S(r) XXX.XX.46.64/26 XXX.XXX.210.13 1 self 0
S(r) XXX.XX.46.64/27 XXX.XXX.210.13 1 self 0
There are two ways to fix it - break line if network is to long
(like in "show ip bgp") or revert the change which removed two spaces
between "Network" and "Next Hop". AFAIK Cisco routers do no not have such
command so if we do the second thing it won't breaks "compatibility".
There is also third solution - allow user to decide which type of output
he wants at time of compiling or starting zebra. Any other ideas?
Best regards,
Krzysztof Olêdzki
After switching from zebra-0.93b to quagga-0.96.4 on one of my routers I
notice two problems with ripd:
1. There are a lot of "RIP: Can't bind socket: Invalid argument" messages
in my ripd logs. It seems that every time ripd tries to send RIP message
it send this error message. After little modification in ripd.c,
rip_interface.c and ripd.h which shows device name in such message I know
that there is a problem with my eth0 device:
(...)
2003/11/05 19:57:34 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:57:45 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:00 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:09 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:19 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:25 RIP: Can't bind socket on eth0: Invalid argument
2003/11/05 19:58:39 RIP: Can't bind socket on eth0: Invalid argument
(...)
This is quite strange since there was no problem with old zebra. eth0 is
normal ethernet device, with inet address and inet6 scope link address:
eth0 Link encap:Ethernet HWaddr 00:10:5A:63:F0:88
inet addr:XXX.XXX.210.1 Bcast:XXX.XXX.210.15 Mask:255.255.255.240
inet6 addr: fe80::210:5aff:fe63:f088/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:258817742 errors:2 dropped:0 overruns:0 frame:2
TX packets:218332628 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3695505971 (3524.3 Mb) TX bytes:1047039677 (998.5 Mb)
Interrupt:11 Base address:0xd400
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:10:5a:63:f0:88 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.210.1/28 brd XXX.XXX.210.15 scope global eth0
inet6 fe80::210:5aff:fe63:f088/64 scope link
This is Linux 2.4.23-pre9 kernel.
2. I don't know why but someone changed format of "show ip rip". Now
it is totally unreadable:
Network Next Hop Metric From Tag Time
S(r) 0.0.0.0/0 0.0.0.0 1 self 0
R(n) XXX.XXX.129.0/24XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.8.133.0/30 XXX.XXX.210.2 3 XXX.XXX.210.2 0 00:43
S(r) XXX.XXX.210.0/230.0.0.0 1 self 0
C(i) XXX.XXX.210.0/280.0.0.0 1 self 0
C(r) XXX.XXX.210.16/290.0.0.0 1 self 0
R(n) XXX.XXX.210.64/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.XXX.211.0/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
R(n) XXX.XXX.211.224/27XXX.XXX.210.11 2 XXX.XXX.210.11 0 00:43
S(r) XXX.XXX.251.64/27XXX.XXX.210.13 1 self 0
S(r) XXX.XXX.251.64/30XXX.XXX.210.3 1 self 0
R(n) XXX.XXX.251.80/29XXX.XXX.210.3 4 XXX.XXX.210.3 0 00:45
S(r) XXX.XXX.251.80/30XXX.XXX.210.3 1 self 0
R(n) XXX.XXX.127.236/30XXX.XXX.210.3 4 XXX.XXX.210.3 0 00:45
C(r) XXX.XX.32.44/30 0.0.0.0 1 self 0
R(n) XXX.XX.32.180/30XXX.XXX.210.2 3 XXX.XXX.210.2 0 00:43
S(r) XXX.XX.46.64/26 XXX.XXX.210.13 1 self 0
S(r) XXX.XX.46.64/27 XXX.XXX.210.13 1 self 0
There are two ways to fix it - break line if network is to long
(like in "show ip bgp") or revert the change which removed two spaces
between "Network" and "Next Hop". AFAIK Cisco routers do no not have such
command so if we do the second thing it won't breaks "compatibility".
There is also third solution - allow user to decide which type of output
he wants at time of compiling or starting zebra. Any other ideas?
Best regards,
Krzysztof Olêdzki