Возможно ли это через командную строку или код C с использованием sysctl / fcntl / etc. API, чтобы отключить запросы маршрутизатора IPv6, прием рекламы маршрутизатора и т. Д. На OSX для определенного интерфейса? Это кажется возможным через sysctl из командной строки, но только в масштабе всей системы.
Эквивалент Linux sysctl:
sysctl net.ipv6.conf.<ifname>.autoconf=0
sysctl net.ipv6.conf.<ifname>.accept_ra=0
sysctl net.ipv6.conf.<ifname>.accept_redirects=0
sysctl net.ipv6.conf.<ifname>.router_solicitations=0
(Последнее является избыточным, возможно, ненужным.)
В Linux это делается для одного интерфейса, но не для всех интерфейсов.
Я не хочу отключать локальную адресацию канала или предотвращать ручную настройку с помощью ifconfig, просто чтобы OSX отключила и игнорировала материал autoconf маршрутизатора IPv6.
Вы можете получить список интерфейсов с:
networksetup -listallnetworkservices
А затем отключите его для каждого интерфейса:
networksetup -setv6off "Ethernet 1"