У меня есть компьютер и маршрутизатор, подключенные в разных местах к коммутируемой сети Ethernet. Я хочу подключить их, как будто я подключил свой компьютер непосредственно к маршрутизатору.
Насколько я понимаю, сети Ethernet отправляют данные в кадрах с использованием MAC-адресов и с них, поэтому любые два подключенных устройства должны иметь возможность напрямую общаться, не получая сначала IP-адрес от основного маршрутизатора, верно?
Ответы:
Я обнаружил, что ключом к работе с MAC-адресами является таблица ARP, таблица, которая связывает соседние IP-адреса (IP-адреса в локальной сети) с MAC-адресами.
Все, что вам нужно сделать, это использовать
ip neigh add
для привязки MAC-адреса вашего маршрутизатора к IP-адресу, а затем направить через этот IP-адрес, как обычно:Посмотрите полный скрипт, который я использую на GitHub Gist.
Приведенный выше скрипт устанавливает статическое IP-соединение с маршрутизатором по его MAC-адресу (который вы можете указать в командной строке или указать MAC-адрес по умолчанию в коде).
Если вы используете статический IP вместо DCHP, вам может потребоваться настроить серверы имен (
resolv.conf
).источник