Você deve conseguir fazer isso usando o utilitário 'arp'.
arp -i eth0 -s
Eu tenho um problema na configuração da tabela de encaminhamento no Linux.
Chamamos tabelas IP para tabela de roteamento na camada 3, tabelas MAC para tabela de encaminhamento na camada 2.
Agora quero adicionar uma entrada na tabela de encaminhamento. Eu sei que o comando route
da ferramenta pode ser usado para adicionar entrada de roteamento na tabela de roteamento como:
#[root]# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0
Então, existe uma ferramenta como 'route' que me permite adicionar entrada na tabela de encaminhamento como:
#[root]# 'command name' add 01:02:03:04:05:06 dev eth1
Tudo o que eu preciso é como vincular o endereço MAC de destino a uma interface de rede fixa ?!
Obrigado por responder a todos vocês. Agora parece que eu não apresentei meu objetivo claramente, então a maioria de vocês estava pensando na minha exigência. Estamos agora trabalhando em um experimento de rede de data center que foca principalmente no tamanho das tabelas de encaminhamento dos switches. Neste cenário, é uma topologia de árvore gorda e outra equipe de pesquisa desenvolveu um novo método de endereçamento e roteamento que pode garantir duas propriedades: multi-caminho e pequeno tamanho da tabela de encaminhamento tabela de encaminhamento . Aqui nós chamamos a tabela de camada 2 de uma tabela de encaminhamento, já que é a mesma chamada pela Cisco. Existe um controlador nesta rede para que todas as tabelas de encaminhamento possam ser obtidas pelo trabalho deste controlador. A experiência agora está incomodando como escrever a tabela de encaminhamento do controlador para os switches. Isso significa, como escrever as entradas como MAC_ADDR --- > OUTPUT INTERFACE . Por favor, note que esta rede é como uma grande 'LAN' que não precisa fazer o roteamento IP.
Você deve conseguir fazer isso usando o utilitário 'arp'.
arp -i eth0 -s
No Linux, você deve sempre usar o comando ip
para alterar a configuração da rede. O comando route
está lá, mas não lhe dá acesso a todos os recursos de roteamento do Linux. Agora, o encaminhamento de MAC é geralmente chamado de bridging, para o qual você pode usar a ferramenta brctl
. Mas não está claro na questão de como você está usando endereços MAC.
Primeiro, algumas observações. Routing é o processo de encontrar direção (s). O encaminhamento do pacote TCP / IP é chamado de encaminhamento . É por isso que há sysctl chamado net.ipv4.ip_forward
e a cadeia do netfilter chamada FORWARD
. Existem roteamento dinâmico e estático, devo adicionar. E o que o swithes faz é chamado (surpresa) alternando .
Os switches de 2º nível da OSI usam tabela de correspondência MAC_Dest-PortNum apenas porque essas portas são de 2º nível - isso é suficiente para mudar o frame Ethernet para uma porta específica (ou transmiti-lo na ausência de entrada de tabela específica).
As interfaces de rede do Linux não são apenas portas de comutação, elas são interfaces . O encaminhamento do pacote TCP / IP (datagrama) envolve a consulta da interface de saída correspondente (dentro da cache de tabelas de roteamento). E eu nunca ouvi nada sobre o suporte do Linux de troca .
Conclusão : no caso de você fazer o pacote encontrar o caminho através do sistema Linux, você tem que usar a tabela de roteamento. Você pode usar arptables / ebtables / iptables para fazer alguns truques nesses pacotes, mas como você não descreveu por que você precisa, não está claro se sua meta pode ser alcançada e como. / p>
Por melhor que eu saiba, você quer dizer ao kernel que quadros Ethernet destinados a um MAC em particular devem ser entregues a uma interface específica. No entanto, isso deve ser feito automaticamente; contanto que suas duas interfaces sejam conectadas juntas, os quadros Ethernet atravessarão a ponte e encontrarão bem seus destinos. Obviamente, você deve observar algumas diretrizes, incluindo não ter muitas alternâncias entre vários pontos em sua rede.
Se você já estiver operando seu sistema como uma ponte e seus quadros Ethernet não estiverem atingindo os locais corretos, você poderá ter um erro em sua rede; você vai querer verificar novamente para ter certeza de que você não tem nenhum loop em sua rede de fiação e assim por diante.
Se você tiver uma rede maior, as sub-redes IP serão o caminho a ser seguido; Dessa forma, você tem a capacidade de executar roteadores completos que podem mover os pacotes da camada 3 de qualquer maneira que precisarem ser movidos. Geralmente, você desejará preferir a criação de sub-redes IP sobre truques inteligentes na camada 2. Você não deve precisar trabalhar com endereços MAC, a menos que você os esteja usando como chaves para o registro. Você certamente não deseja basear nenhuma segurança neles, pois os endereços MAC podem ser facilmente falsificados / clonados.
Tags linux mac-address route