Это не то, что на самом деле происходит.
IP не зависит от Ethernet, поэтому то, что происходит, зависит от базового протокола нижнего уровня.
То же самое происходит, если этолокально созданный IP-пакет или пакет, маршрутизируемый для другого хоста.
Стек Linux для IPv4 никак не зависит от Ethernet, фактически многие другие протоколы канального уровня поддерживаютсяядро.IP-протокол WAN, вы можете маршрутизировать между различными базовыми протоколами.Вот некоторые примеры:
- ppp, slip (последовательные линии)
- PPTP, GRE (для туннелей, в основном VPN)
- IP через ATM
- Token Ring (в основном устаревший, я думаю)
- Loopback и dummy (только для локальной связи)
- Wifi (хотя на самом деле это в основном идентично Ethernet)
Так что на самом деле происходит при маршрутизации IP-фреймов от одного интерфейса Ethernet к другому, что канальный уровень полностью удаляется, а после маршрутизации формируется новый канальный уровень.Если бы протокол не был Ethernet, вместо него был бы использован соответствующий пакет канального уровня для этого протокола.
Таким образом, никто не «меняет MAC-адрес», а пакет канального уровня просто полностью перестраивается.