iproute does not work when trying to manipulate with rules. /tmp]# /sbin/ip rule list RTNETLINK answers: Invalid argument Dump terminated /tmp]# Same thing with any other operations except help The strace is: /tmp]# strace /sbin/ip rule list execve("/sbin/ip", ["/sbin/ip", "rule", "list"], [/* 32 vars */]) = 0 brk(0) = 0x805cfe0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=21968, ...}) = 0 mmap(0, 21968, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40013000 close(3) = 0 open("/lib/libresolv.so.2", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=170564, ...}) = 0 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\"\0"..., 4096) = 4096 mmap(0, 59900, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40019000 mprotect(0x40024000, 14844, PROT_NONE) = 0 mmap(0x40024000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa000) = 0x40024000 mmap(0x40026000, 6652, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40026000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0755, st_size=4118299, ...}) = 0 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\250\202"..., 4096) = 4096 mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40028000 mmap(0, 993500, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40029000 mprotect(0x40114000, 30940, PROT_NONE) = 0 mmap(0x40114000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xea000) = 0x40114000 mmap(0x40118000, 14556, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40118000 close(3) = 0 mprotect(0x40029000, 962560, PROT_READ|PROT_WRITE) = 0 mprotect(0x40029000, 962560, PROT_READ|PROT_EXEC) = 0 munmap(0x40013000, 21968) = 0 personality(0 /* PER_??? */) = 0 getpid() = 2346 brk(0) = 0x805cfe0 brk(0x805d180) = 0x805d180 brk(0x805e000) = 0x805e000 socket(0x10 /* PF_??? */, SOCK_RAW, 0) = 3 bind(3, {sa_family=16, sa_data="\0\0\0\0\0\0\0\0\0\0\260&\1@"}, 12) = 0 getsockname(3, {sa_family=16, sa_data="\20\300*\t\0\0\0\0\0\0\260&\1@"}, [12]) = 0 time(NULL) = 942639616 sendto(3, "\24\0\0\0\"\0\1\3\1\212/8\0\0\0\0\2\372\377\277", 20, 0, {sa_family=16, sa_data="\0\0\0\0\0\0\0\0\0\0\24\0\0\0"}, 12) = 20 socketcall(0x11, 0xbfffda64) = 36 write(2, "RTNETLINK answers: Invalid argum"..., 36RTNETLINK answers: Invalid argument ) = 36 write(2, "Dump terminated\n", 16Dump terminated ) = 16 _exit(1) = ? /tmp]#
assigned to nalin
As I was told back then the problem is with RedHat kerner. It was not compiled with corresponding option (CONFIG_IP_ADVANCED_ROUTER) After recompiling the kernel with this option iproute started to work OK.
Same problem still with RedHat 7.0 beta /sbin/ip rule list RTNETLINK answers: Invalid argument Dump terminated. Should CONFIG_IP_ADVANCED_ROUTER be added to kernel options?
davem says yes, added to list of things to do...
OK, in our source tree! Thanks.