Parece que todas as respostas são aplicáveis apenas na plataforma Linux.
No entanto, no Solaris 10, o comando que eu achei que funcionava:
route -p <add/delete> <hostname> <gateway> -ifp <interface>
Eu tenho 2 interfaces na caixa Solaris
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.1.41 netmask ffffff00 broadcast 192.168.1.255
ether x:x:x:x:x:x
hme1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.1.42 netmask ffffff00 broadcast 192.168.1.255
ether x:x:x:x:x:x
# netstat -rn
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
192.168.1.0 192.168.1.41 U 1 91 hme0
192.168.1.0 192.168.1.42 U 1 0 hme1
224.0.0.0 192.168.1.41 U 1 0 hme0
default 192.168.1.1 UG 1 91
127.0.0.1 127.0.0.1 UH 1 0 lo0
hme0 a interface padrão, mas eu quero especificar o host 192.168.1.32 para usar a interface hme1. eu tento usar
route add 192.168.1.32 192.168.1.42 -interface hme1
mas retorne
hme1: bad value
alguma ideia de como posso resolvê-lo?
a solução do l1x está correta , mas tem alguns problemas; outros hosts no hme0
side não poderão alcançar 192.168.1.32
e 192.168.1.32
talvez não consiga alcançar esses outros hosts.
Se isso for um problema, é porque suas máscaras de rede dizem que 192.168.1.*
está conectado a ambas redes, o que não é verdade. Talvez você queira fazer isso sem sub-redes e definir a máscara como 255.255.255.255
, o que permitiria criar rotas sem a linha -interface
.
Talvez você possa usar 192.168.2.*
para um lado e rotear o outro, embora você precise de acesso para criar a rota no roteador ou reconfigure todas as máquinas na sua rede 192.168.1.*
para saber sobre essa rota .
Se você não puder fazer nenhuma dessas coisas, poderá criar uma ponte.
Se você não tem medo de corrigir seu kernel e carregar drivers com qualidade alfa, faça uma Ponte Ethernet (veja também RBridge ).
Se uma solução somente de IP for adequada, você poderá usar o proxy arp e o encaminhamento de IP para criar uma ponte somente de IP. Comece com algo assim:
arp -s 192.168.1.32 macaddress-of-hme0 pub
route add 192.168.1.32 secretip
ndd -set /dev/ip ip_forawrding 1
No Solaris, o proxy_arp está realmente quebrado. A única maneira confiável de fazer isso é dar à máquina 192.168.1.32 um endereço IP secreto adicional , tal como 10.5.3.2 que você somente usa para isso.
,-----, hme1,-----, hme0
|hostA|-------------|hostB |----------- ?
'-----' '-----'
192.168.1.32 192.168.1.41
10.5.3.2 192.168.1.42
10.5.3.1
Embora, nesta configuração, "hostB" não exija 192.168.1.41
e 192.168.1.42
.
Este seria o comando no Solaris 10:
route add 192.168.1.32 192.168.1.42 -interface
Você não precisa adicionar o nome da interface após o argumento -interface porque o endereço IP 192.168.1.42 já está dizendo implicitamente para usar o hme1.
Atenciosamente,
A sintaxe da rota solaris é a seguinte:
route [-fn] add | delete | get [net|host|default] [destination] [gateway]
Então você comanda assim:
route add 192.168.1.32 -interface hme1
Tente isto: route add -net 192.168.1.0 -netmask 255.255.255.0 -interface 192.168.1.42
Tags route solaris-10