GNU/Linux >> Linux Esercitazione >  >> Linux

più interfacce fisiche con IP sulla stessa sottorete

Soluzione 1:

Hai bisogno di un forte modello di sistema finale. Linux è fondamentalmente basato su un modello di sistema di invio debole, quindi non è davvero una buona scelta di sistema operativo per questa applicazione.

Dovrai falsificare ogni parte del comportamento di cui hai bisogno, dall'ARP al policy routing alla selezione dell'indirizzo di origine. Avrai anche bisogno di filtri per impedire che i pacchetti vengano accettati se arrivano sull'interfaccia sbagliata.

I passaggi assolutamente necessari sono:

  1. Configura arp_filter=1 e arp_ignore=2 su tutte le interfacce.

  2. Aggiungi il routing basato sull'origine per interfaccia per il traffico in uscita. (L'interfaccia di destinazione deve essere scelta in base all'indirizzo di origine.)

  3. Aggiungi il filtro in ingresso per interfaccia per eliminare silenziosamente i pacchetti ricevuti sull'interfaccia sbagliata. (Pacchetti con un indirizzo di destinazione assegnato a un'altra interfaccia.)

Sfortunatamente, non c'è consenso sul fatto che questi tre passaggi siano tutto ciò che è necessario. Il modello di sistema dell'estremità debole è integrato nell'intero stack TCP/IP di Linux e non è chiaro cosa potrebbe andare storto con problemi sottili come il multicast.

Ad esempio, non è chiaro come sceglieresti l'interfaccia di output per le trasmissioni. Dovrebbe uscire da tutti? Forse. Qual è il comportamento corretto se lo stack riceve una trasmissione in uscita con un indirizzo di origine non assegnato a una delle interfacce?

Ancora una volta, hai scelto lo strumento sbagliato per il lavoro.

Soluzione 2:

È più probabile che tu voglia creare un bridge con le interfacce 8/9 e quindi assegnare un indirizzo IP a quel bridge (pacchetto bridge-utils, comando 'brctl add').

In questo modo il bridge funzionerà come uno switch e potrà avere un indirizzo IP nella tua sottorete.

Soluzione 3:

Consiglierei di collegare le interfacce fisiche, quindi configurare tutti gli indirizzi sulla singola interfaccia collegata.

Avrai bisogno di assistenza anche sullo switch.

Ecco un mini tutorial che puoi utilizzare per iniziare.

Soluzione 4:

Sembra che tu voglia un ambiente di test equivalente a 9 macchine separate e ritieni che 9 interfacce su una macchina possano emularlo. In Linux semplicemente non può farlo attraverso un singolo stack per i motivi descritti da David Schwartz. BTDT e avere le cicatrici. Era già abbastanza brutto con 2 interfacce.

Una soluzione migliore potrebbe essere quella di eseguire 8 o 9 macchine virtuali discrete nel tuo unico host e collegare 8 o 9 interfacce a queste macchine virtuali.


Linux
  1. 3 trucchi per ottenere più comandi in uscita nella stessa riga

  2. Esegui più comandi paralleli contemporaneamente nello stesso terminale

  3. Perché il kernel è mappato allo stesso spazio di indirizzi dei processi?

  4. Come eseguire più processi Tor contemporaneamente con diversi IP di uscita?

  5. Come controllare l'indirizzo IP di origine di un pacchetto ZeroMQ su una macchina con più IP?

Impara Linux con Raspberry Pi

Eseguire un eseguibile nel percorso con lo stesso nome di una funzione esistente?

Come installare più contenitori di discorsi sullo stesso server

Come ospitare autonomamente più siti WordPress sullo stesso server con Docker

stampa di più immagini separate su una pagina di carta fisica con terminale

Come fa la CPU a sapere quale indirizzo fisico è mappato a quale indirizzo virtuale?