Статический рутинг через интерфейс

spinore аватар

В Linux можно сделать статический рутинг через интерфейс посредством команд:

ifconfig eth0 172.16.252.178 netmask 255.255.255.255
route add 172.16.252.90 dev eth0
route add default gw 172.16.252.90
arp -s 172.16.252.90 AA:BB:CC::DD:EE:FF

Пытался сделать то же самое с NetBSD - успеха ноль. Поидее должно работать что-то типа
route -n add -interface -iface -static 172.16.252.178/32 172.16.252.178

или
route -n add -interface -iface -static 172.16.252.178/32 re0

или ещё что-то подобное. Перерыл весь инет, - ничего путёвого не нашёл. Есть подозрение что опция -interface вообще не работает. Кроме того, чёткие различия между смыслом -interface, -iface я не понял, равно как и следует ли в моём случае -static из них или нужно его явно указывать. При указании -interface поидее должно указываться re0 (мой интерфейс), но куда ыб я его не вписывал в команду - ругается. В принципе, команда типа
route -n add -interface -iface -static 172.16.252.178 172.16.252.178

работает (добавляется в таблицу), но ругается что Network is unreachable (чего не должно быть, так как принудительное указание на прямую доступность - аналог "route add 172.16.252.90 dev eth0" в Linux).
Если кто-то может написать заведомо рабочий вариант той Linux-конфигурации для NetBSD, был бы премного благодарен.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
shattered аватар

route add -interface

route add -interface 172.16.252.90 172.16.252.178

если я правильно понял вопрос

spinore аватар

Допустим. Отключаю файерволл,

Допустим. Отключаю файерволл, убираю все gw, прописываю маску и статический маршрут:

# ifconfig re0 172.16.252.90 netmask 255.255.255.255
# ifconfig re0
re0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
        capabilities=3f80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        enabled=0
        address: <MY_MAC>
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 172.16.252.90 netmask 0xffffffff broadcast 172.16.252.90
        inet6 ....
# route add -interface 172.16.252.90 172.16.252.178
add host 172.16.252.90: gateway 172.16.252.178
# pfctl -d
No ALTQ support in kernel
ALTQ related functions disabled
pf disabled

Проверяю доступность компа по маршруту:
$ ping 172.16.252.178
PING 172.16.252.178 (172.16.252.178): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
^C
----172.16.252.178 PING Statistics----
2 packets transmitted, 0 packets received, 100.0% packet loss

При этом рутинг выглядит следующим образом:
$ route show
Routing tables

Internet:
Destination        Gateway            Flags
loopback           127.0.0.1          UGR
localhost          127.0.0.1          UH
172.16.252.90      172.16.252.178     UH
172.16.252.90/32   link#2             U

И как я понимаю, вместо строки
172.16.252.90      172.16.252.178     UH

должна была бы быть какая-то, наподобие
172.16.252.178     AA:BB:CC:DD:EE:FF <flags>

ЧЯДНТ?

spinore аватар

Может быть, в команде надо

Может быть, в команде надо поменять местами IPшники? Тоже не работает:

# ifconfig re0 172.16.252.90 netmask 255.255.255.255
# route add -interface 172.16.252.178 172.16.252.90
add host 172.16.252.178: gateway 172.16.252.90
# ping 172.16.252.178
PING 172.16.252.178 (172.16.252.178): 56 data bytes
^C
----172.16.252.178 PING Statistics----
10 packets transmitted, 0 packets received, 100.0% packet loss
# route show
Routing tables

Internet:
Destination        Gateway            Flags 
localhost          127.0.0.1          UH     
172.16.252.90/32   link#2             U      
172.16.252.178     172.16.252.90      UH     

shattered аватар

"Для дальнейшего продвижения

"Для дальнейшего продвижения в Вашей проблеме мне необходима более детальная дополнительная информация."

Зачем, например, на интерфейсе ставить единственный адрес с маской /32, если искомый хост находится в той же подсети (/24)?

spinore аватар

В вышеприведённых командах

В вышеприведённых командах типа

route -n add -interface -iface -static 172.16.252.178/32 re0
route -n add -interface -iface -static 172.16.252.178/32 172.16.252.178

/32 не существенно. Просто игрался с параметрами. Думал, что может это как-то влияет на восприятие адреса (ибо есть -host и -net).

На самом деле весь вопрос уже достаточно точно содержится во фразе: хочу сделать так, как под линуксом, а там это достигается командами

ifconfig eth0 172.16.252.178 netmask 255.255.255.255
route add 172.16.252.90 dev eth0
route add default gw 172.16.252.90
arp -s 172.16.252.90 AA:BB:CC::DD:EE:FF

Не известен точный аналог лишь для команды
route add 172.16.252.90 dev eth0

В NetBSD нет соответствующего функционала?