Невозможно изменить информацию о маршрутизации для широковещательного адреса в macOS

0

Я использую macOS High Sierra (10.13.4) и пытаюсь заставить трафик, предназначенный для подсети 255.255.255.255/32, проходить через мой интерфейс VPN (utun1).

Команда, которую я пытался использовать:

route change 255.255.255.255/32  -interface utun1

Тем не менее, это дает мне ошибку route: bad address: 255.255.255.255/32, Я не могу понять, почему это так.

Документация route говорит это:

route [-n] command [-net | -host] [-ifscope boundif] destination gateway [netmask]

...

где пункт назначения - это хост или сеть назначения, шлюз - это посредник следующего перехода, через который следует направлять пакеты. Маршруты к конкретному хосту        можно отличить от таковых для сети, интерпретируя Интернет-адрес, указанный в качестве аргумента назначения. Необязательные модификаторы -net и        -host заставляет адресата интерпретироваться как сеть или хост соответственно. В противном случае, если у получателя есть `` локальная часть адреса '' INADDR_ANY        (0.0.0.0), или если пункт назначения является символическим именем сети, то предполагается, что маршрут является сетью; в противном случае предполагается, что это путь к        хозяин. При желании пункт назначения также может быть указан в формат сети / бит ,

Например, 128.32 интерпретируется как -host 128.0.0.32; 128.32.130 интерпретируется как -host 128.32.0.130; -net 128.32 интерпретируется как 128.32.0.0; -сеть        128.32.130 интерпретируется как 128.32.130.0; а также 192.168.64 / 20 интерпретируется как -net 192.168.64 -netmask 255.255.240.0 ,

Выход из netstat -nr:

Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.8.0.1           UGSc           73        0   utun1
default            10.160.16.1        UGSc            1        0     en0
10.8/24            10.8.0.2           UGSc           17        0   utun1
10.8.0.2           10.8.0.2           UH              1        0   utun1
10.160.16/23       link#5             UCS             0        0     en0
10.160.16.1/32     link#5             UCS             1        0     en0
10.160.16.1        b0:aa:77:a2:8e:bf  UHLWIir         5       86     en0    298
10.160.16.10/32    link#5             UCS             0        0     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              7  6945381     lo0
127.0.0.1/32       10.160.16.1        UGSc            0        0     en0
128.0/1            10.8.0.1           UGSc            5        0   utun1
159.89.172.205/32  10.160.16.1        UGSc            1        0     en0
169.254            link#5             UCS             0        0     en0
224.0.0/4          link#5             UmCS            1        0     en0
224.0.0.251        1:0:5e:0:0:fb      UHmLWI          0        0     en0
255.255.255.255    utun1              UHSb            0        0   utun1
255.255.255.255/32 link#5             UCS             0        0     en0

Обратите внимание на маршрут для 255.255.255.255, который я успешно создал с помощью sudo route add 255.255.255.255 -interface utun1,

Ссылка на маршрутную документацию: https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/route.8.html

Rishav
источник
Если вы пытаетесь создать маршрут перехвата всех каналов, то вам нужен 0.0.0.0/0 (маршрут по умолчанию). Чем больше число после косой черты, тем конкретнее (уже) маршрут. / 32 означает, что он соответствует только одному адресу назначения, в вашем случае 255.255.255.255, что не имеет смысла в маршруте.
Johan Myréen