Moderator: SlashBeast
Strzelam, że brakuje Ci określenia ilości urządzeń IMQ. Albo definiujesz dynamicznie przy ładowaniu modułu przez "numdevs", albo określasz ich ilość w configu kernela.dafqq wrote:ok ,thx:)
otrzymuje:??modprobe: ERROR: could not insert 'imq': Invalid argument
Code: Select all
strace modprobe imqCode: Select all
strace modprobe imq
execve("/sbin/modprobe", ["modprobe", "imq"], [/* 24 vars */]) = 0
brk(0) = 0x93c1000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d6000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=15848, ...}) = 0
mmap2(NULL, 15848, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77d2000
close(3) = 0
open("/lib/libkmod.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320(\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=91792, ...}) = 0
mmap2(NULL, 94600, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb77ba000
mmap2(0xb77d0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15) = 0xb77d0000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\312\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1705312, ...}) = 0
mmap2(NULL, 1714940, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7617000
mmap2(0xb77b4000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19d) = 0xb77b4000
mmap2(0xb77b7000, 11004, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb77b7000
close(3) = 0
open("/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\35\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=87556, ...}) = 0
mmap2(NULL, 90364, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7600000
mmap2(0xb7615000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0xb7615000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ff000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb75ffa80, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb77b4000, 8192, PROT_READ) = 0
mprotect(0xb7615000, 4096, PROT_READ) = 0
mprotect(0xb77d0000, 4096, PROT_READ) = 0
mprotect(0x805a000, 4096, PROT_READ) = 0
mprotect(0xb77f8000, 4096, PROT_READ) = 0
munmap(0xb77d2000, 15848) = 0
brk(0) = 0x93c1000
brk(0x93e2000) = 0x93e2000
uname({sys="Linux", node="olimp", ...}) = 0
stat64("/etc/modprobe.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/etc/modprobe.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
getdents64(3, /* 4 entries */, 32768) = 112
fstatat64(3, "i386.conf", {st_mode=S_IFREG|0644, st_size=122, ...}, 0) = 0
fstatat64(3, "aliases.conf", {st_mode=S_IFREG|0644, st_size=1216, ...}, 0) = 0
getdents64(3, /* 0 entries */, 32768) = 0
close(3) = 0
stat64("/run/modprobe.d", 0xbf8266d4) = -1 ENOENT (No such file or directory)
stat64("/lib/modprobe.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/lib/modprobe.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
getdents64(3, /* 3 entries */, 32768) = 96
fstatat64(3, "usb-load-ehci-first.conf", {st_mode=S_IFREG|0644, st_size=62, ...}, 0) = 0
getdents64(3, /* 0 entries */, 32768) = 0
close(3) = 0
open("/etc/modprobe.d/aliases.conf", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat64(3, {st_mode=S_IFREG|0644, st_size=1216, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d5000
_llseek(3, 0, [0], SEEK_CUR) = 0
read(3, "# Aliases to tell insmod/modprob"..., 4096) = 1216
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb77d5000, 4096) = 0
open("/etc/modprobe.d/i386.conf", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat64(3, {st_mode=S_IFREG|0644, st_size=122, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d5000
_llseek(3, 0, [0], SEEK_CUR) = 0
read(3, "alias parport_lowlevel parport_p"..., 4096) = 122
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb77d5000, 4096) = 0
open("/lib/modprobe.d/usb-load-ehci-first.conf", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat64(3, {st_mode=S_IFREG|0644, st_size=62, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d5000
_llseek(3, 0, [0], SEEK_CUR) = 0
read(3, "softdep uhci_hcd pre: ehci_hcd\ns"..., 4096) = 62
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb77d5000, 4096) = 0
open("/proc/cmdline", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "root=/dev/sda3\n", 4095) = 15
read(3, "", 4080) = 0
close(3) = 0
open("/lib/modules/3.7.10-gentoo/modules.dep.bin", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10288, ...}) = 0
mmap2(NULL, 10288, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77d3000
close(3) = 0
open("/lib/modules/3.7.10-gentoo/modules.alias.bin", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=7930, ...}) = 0
mmap2(NULL, 7930, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75fd000
close(3) = 0
open("/lib/modules/3.7.10-gentoo/modules.symbols.bin", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=4454, ...}) = 0
mmap2(NULL, 4454, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75fb000
close(3) = 0
open("/lib/modules/3.7.10-gentoo/modules.builtin.bin", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=7968, ...}) = 0
mmap2(NULL, 7968, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75f9000
close(3) = 0
open("/sys/module/imq/initstate", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/sys/module/imq", 0xbf8266a0) = -1 ENOENT (No such file or directory)
open("/sys/module/imq/initstate", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/sys/module/imq", 0xbf8266a0) = -1 ENOENT (No such file or directory)
open("/lib/modules/3.7.10-gentoo/kernel/drivers/net/imq.ko", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177E", 2) = 2
_llseek(3, 0, [0], SEEK_SET) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=12631, ...}) = 0
mmap2(NULL, 12631, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb75f5000
init_module(0xb75f5000, 12631, "") = -1 ENOEXEC (Exec format error)
munmap(0xb75f5000, 12631) = 0
close(3) = 0
write(2, "modprobe: ERROR: could not inser"..., 59modprobe: ERROR: could not insert 'imq': Exec format error
) = 59
munmap(0xb77d3000, 10288) = 0
munmap(0xb75fd000, 7930) = 0
munmap(0xb75fb000, 4454) = 0
munmap(0xb75f9000, 7968) = 0
exit_group(1) = ?
+++ exited with 1 +++Jakoś nigdy nie miałem przekonania do IFB mimo kilku prób - zawsze mi coś w qos-ie i zarządzaniu pasmem nie grało (nawet udało mi się zaliczyć kilka zwisów przez ifb... ( )Jacekalex wrote:A nie wystarczy Ci obecny w kernelu IFB?
Robi to samo, co IMQ, nie ma tyko przekierowania w iptables, całość przekierowania robi się w iproute.
Ostatnio nakładałem imq na kernel 3.5.7 (gentoo-sources), iptables 1.4.17 i poszło bez problemu. Ale pamiętam, że na najnowszym (wtedy 3.7.1) kernelu miałem jakieś problemy - niby moduł się ładował ale ruch na to imq nie szedł.dafqq wrote:No właśnie jest mi niezbędne imq, tym bardziej że na www.linuximq.net jest patch do obecnego jajka, a tym bardziej mam podobny problem z iptables wydaje mi sie ze moze to byc poloczone i jest gdzies blad w systemie ktory odpowiada za problem z iptables i imq
Code: Select all
CONFIG_NETFILTER_XT_TARGET_IMQ=m
CONFIG_IMQ=y
# CONFIG_IMQ_BEHAVIOR_AA is not set
CONFIG_IMQ_BEHAVIOR_AB=y
# CONFIG_IMQ_BEHAVIOR_BA is not set
# CONFIG_IMQ_BEHAVIOR_BB is not set
CONFIG_IMQ_NUM_DEVS=16Jakoś nigdy nie miałem przekonania do IFB mimo kilku prób - zawsze mi coś w qos-ie i zarządzaniu pasmem nie grało (nawet udało mi się zaliczyć kilka zwisów przez ifb... ( )
Code: Select all
ifb0: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500
inet6 fe80::f8eb:7ff:fe15:dc27 prefixlen 64 scopeid 0x20<link>
ether fa:eb:07:15:dc:27 txqueuelen 32 (Ethernet)
RX packets 1012834 bytes 1409494511 (1.3 GiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 1012831 bytes 1409494301 (1.3 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifb1: flags=195<UP,BROADCAST,RUNNING,NOARP> mtu 1500
inet6 fe80::981b:1aff:fe10:6816 prefixlen 64 scopeid 0x20<link>
ether 9a:1b:1a:10:68:16 txqueuelen 32 (Ethernet)
RX packets 520802 bytes 32639601 (31.1 MiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 520799 bytes 32639391 (31.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Nie żebym się czepał samego IFB, ale spróbuj używac hfsc w ruch x-set mbits to się trochę zdziwisz jak to nie potrafi sobie poradzićJacekalex wrote: Robiłem wg tego:
http://wampir.mroczna-zaloga.org/archiv ... t-imq.html
Code: Select all
modprobe: ERROR: could not insert '8021q': Invalid argumentCode: Select all
modprobe: ERROR: could not insert 'imq': Invalid argumentCode: Select all
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=yCode: Select all
modprobe imq numdevs=2
dmesg | grep -i imqMimo ze przy kompilacji widac wyraznie ze uzywa tego patcha z katalogu portageMożesz wykorzystać do tego automat portage (od jakiegoś czasu potrafi nakładać "zewnętrzne" patche) albo patchować ręcznie.
Aby wykorzystać portage, zrób sobie taką strukturę: /etc/portage/patches/net-firewall/iptables/ i do tego katalogu wrzuć patche jakie chcesz dodać. Emerge potem je ładnie (albo i nie ) nałoży.
Code: Select all
iptables -A PREROUTING -t mangle -i eth0 -j IMQ --todev 0
iptables v1.4.16.3: unknown option "--todev" Code: Select all
iptables -j IMQ --helpCode: Select all
iptables -j IMQ --help | grep -iA2 IMQ
IMQ target options:
--todev <N> enqueue to imq<N>, defaults to 0Code: Select all
>>> Emerging (1 of 1) net-firewall/iptables-1.4.16.2
* iptables-1.4.16.2.tar.bz2 SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
>>> Unpacking source...
>>> Unpacking iptables-1.4.16.2.tar.bz2 to /var/tmp/portage/net-firewall/iptables-1.4.16.2/work
>>> Source unpacked in /var/tmp/portage/net-firewall/iptables-1.4.16.2/work
>>> Preparing source in /var/tmiptables -j IMQ --help | grep -iA2 IMQ
p/portage/net-firewall/iptables-1.4.16.2/work/iptables-1.4.16.2 ...
* Applying iptables-1.4.16.2-static.patch ... [ ok ]
* Applying user patches from /etc/portage/patches//net-firewall/iptables-1.4.16.2 ...
* iptables-1.4.13-IMQ-test1.patch ... [ ok ]
* Done with patching