Ситуация совершенно гипотетическая. Допустим, есть два интерфейса eth0 и eth1 с полностью аналогичными сетевыми настройками, т.е. и там и там адрес 192.168.0.1, и там и там подсеть та же, даже мак адрес совпадает.
Во-первых, как это вообще настроить?
Во-вторых, допустим я хочу получать UDP пакет с конкретно eth0 интерфейса, в berkeley sockets я не вижу, как это можно было бы сделать. Функция recvfrom()
и sendto()
принимает структуру struct sockaddr_in
в которой sin_addr
указывает ip хоста, а конкретный интерфейс указать нельзя! С этим что-то можно сделать? Или только TCP/IP стек в ядре патчить?