Como forçar o envio de dados para o roteador (em L3) em vez de enviar diretamente? (em L2)

0

Eu tenho um endereço IP público em uma máquina:

a.b.c.156/32

O GW é a.b.c.133 (que está na rede / 27 com seu gateway a.b.c.129)

Eu adicionei estaticamente uma rota arp:

sudo arp -an
a.b.c.133 at ab:cd:ef:12:34:56 [ether] PERM on eth0

Se eu fizer ping de a.b.c.156/32 :

From a.b.c.133: icmp_seq=2 Redirect Host (New nexthop: a.b.c.129)

então:

sudo arp -an
a.b.c.129 at aa:bb:cc:dd:ee:ff [ether] on eth0 # !<------ why? (it is even not from the same network)
a.b.c.133 at ab:cd:ef:12:34:56 [ether] PERM on eth0

Como evitar que ele envie arp para o meu roteador (a.b.c.133)? De modo que a.b.c.129 seria acessível apenas por IP nível 3, não como uma sub-rede?

Atualização:

A estrutura da rede:

provider's GW (a.b.c.129/27) <--- my host (a.b.c.133/27) <--- my second host (a.b.c.156/32)
                                                      <--- my third host (a.b.c.151/32)
                                                      ...
(a.b.c.x - public IP)

Como evitar que os hosts atrás de "my host (a.b.c.133)" enviem arp para o "provider's GW (a.b.c.129/27)" , mas usando o roteamento? De modo que a.b.c.129 seria acessível apenas por IP nível 3, não diretamente? Então, como isolar o segundo, terceiro ... hosts de enviar arp para o "provider's GW (a.b.c.129/27)" ?

Atualização 2:

Eu tenho o seguinte no "route -n" :

Dest.     GW.       Mask             Flags Metrics Ref Interface
0.0.0.0   a.b.c.133 0.0.0.0          UG    0       0   eth0
a.b.c.133 0.0.0.0   255.255.255.255  UH    0       0   eth0

Atualização 3:

===============
my host (a.b.c.133/27):
> ip r
a.b.c.151 dev vmbr0  scope link  # third host
a.b.c.156 dev vmbr0  scope link  # second host
192.168.1.0/24 dev vmbr1  proto kernel  scope link  src 192.168.1.1  # local network
default via a.b.c.129 dev vmbr0  # provider's gw

> ip n
a.b.c.129 dev vmbr0 lladdr AA:BB:CC:DD:EE:FF REACHABLE
a.b.c.156 dev vmbr0 lladdr AB:CD:EF:12:34:56 PERMANENT
a.b.c.151 dev vmbr0 lladdr A1:B2:C3:D4:E5:F6 PERMANENT
===============
my second host (a.b.c.156/32):
> ip r
default via a.b.c.133 dev eth0
a.b.c.133 dev eth0 scope link

> ip n # before "ping a.b.c.129" or "ping 8.8.8.8"
a.b.c.133 dev eth0 lladdr F1:E2:D3:C4:B5:A6 PERMANENT

> ip n # after "ping a.b.c.129" or "ping 8.8.8.8"
a.b.c.129 dev eth0 lladdr AA:BB:CC:DD:EE:FF REACHABLE # after some minutes idle => STALE
a.b.c.133 dev eth0 lladdr F1:E2:D3:C4:B5:A6 PERMANENT
===============
other hosts the similar to "my second host"
    
por static 23.07.2013 / 00:41

1 resposta

0

a.b.c.129 at aa:bb:cc:dd:ee:ff [ether] on eth0 # !<------ why? 
                                          (it is even not from the same network)

Na mesma rede. Caso contrário, você não verá o endereço de hardware do nó. Se você estivesse em redes diferentes, só veria o endereço MAC do seu roteador *. Sub-redes separadas logicamente podem estar na mesma rede física. Nada impede que eles usem o caminho físico mais curto. O gateway do provedor e seu gateway compartilham uma sub-rede no exemplo.

Se você deseja forçar todo o tráfego através do seu gateway, eu acho que você precisará criar regras de firewall nos hosts.

* Você veria o endereço MAC de + '. (uma cruz representa uma placa de rede)

   [local subnet]---------+' local gw +"
                                      |
                                      |
     [ remote subnet]----+. remote gw +,
    
por 23.07.2013 / 03:15