solaris 10 route add em interface específica

2

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?

    
por conandor 03.09.2009 / 12:20

5 respostas

2

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>
    
por 05.02.2010 / 08:52
1

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 .

    
por 03.09.2009 / 15:34
0

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,

    
por 05.09.2013 / 14:58
-1

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
    
por 03.09.2009 / 13:49
-1

Tente isto: route add -net 192.168.1.0 -netmask 255.255.255.0 -interface 192.168.1.42

    
por 22.01.2010 / 16:01