В виртуалку Centos 5 (vmware workstation) проброшены 2 железных ethernet контроллера. Каждый из них в отдельной несвязанной eth сети (два свича). Есть комп ПК в одной из сетей (eth0).
+--------+ | | | ПК | | | +--------+ | IP=B.1 | +----+---+ | | +--------+---------+-----+ | | | +-------+------------+ | | | | | | +---+----+ +----+---+ |MAC=AA22| |MAC=BB22| | | | | | | | | | IP=A.2 | | IP=B.2 | +--------+-----+--------+ | eth0 eth1 | | | | Сервер Centos 5 | +-----------------------+
Если ПК назначить IP=B.1, соответствующий ip-подсети из другой eth-сети (т.е. B.1 и B.2 - формально одна ip-подсеть, A.2 - другая), затем пингануть (или явно запросить arp) B.1, то в таблице arp -ne появится запись о том, что адресу B.2 соответствует MAC AA22. (пинг, конечно, не проходит, так и надо, естественно)
Считаю это поведение неправильным, B.1 никак не должен узнавать о мак-адресе B.2 (его значение BB22), т.к. они находятся в разных eth-сетях, и тем более, не должен получать чужой AA22! Почему то сетевая подсистема centos считает возможным на арп-запрос передать мак с соседнего интерфейса. Как это исправить?
Vmware тут не причем, поэтому опускаю на рисунке. Винда, установленная вместо центоси в ту же вмварю с теми же проброшенными сетевыми адаптерами не транслировала мак-адрес с соседнего интерфейса, и пинг B.2 с ПК не заполнял arp таблицу ничем.