Можно ли использовать netfilter для перехвата всех пакетов Ethernet?
Я могу просто получить пакет с ipv4 или ipv6.
Редактировать:
Приведенный выше код - это мой модуль ядра. Я хочу, чтобы все пакеты, поступающие на один интерфейс Ethernet, перенаправлялись на другой интерфейс. Этот модуль просто печатает имя устройства, на которое пришел пакет (только для тестирования). С помощью этого крючка я просто получаю пакеты, тип которых - ipv4, но я хочу получить все типы.
Я искал в Интернете, но не нашел, как настроить свой хук, чтобы получать все пакеты, которые обходят интерфейс Ethernet.
С уважением
статическая структура nf_hook_ops nfho;
int hook_func (структура sk_buff * skb)
{struct ethhdr * eth;
printk ("Устройство:% s \ n, skb-> dev-> name);
}
int init_module () {
printk ("Модуль перехвата в сети! \ n");nfho.hook = (nf_hookfn *) hook_func;
nfho.hooknum = NF_IP_PRE_ROUTING;
nfho.pf = PF_INET; nfho.priority = NF_IP_PRI_FIRST;nf_register_hook (& nfho);
возврат 0; }
/ * Процедура очистки * / void cleanup_module () {
printk ("Снова и снова! \ n"); nf_unregister_hook (& nfho); }