Avanti Indietro Indice

15. MARK

15.1 Descrizione

In alcuni casi può essere utile marcare i pacchetti per poi prendere, in base a queste, delle decisioni di instradamento particolari (routing).

In particolare può essere utilizzato assieme al comando tc del pacchetto iproute2 per gestire il controllo del traffico.

I pacchetti sono sottoposti a tutte le regole presenti in questa tabella, anche se ad esempio soddisfano già la prima regola.

15.2 Opzioni

--mark-value[/mask]

Permette di specificare il valore ed eventualmente anche la maschera che contrassegnerà i pacchetti specificati. E' possibile far precedere all'opzione il carattere '!' per negare.

15.3 Esempi

Esempio1

#!/bin/bash
#
# Esempio 1
#

modprobe ipt_MARK

ETH=eth0
FTP=1
TELNET=2
PC1=192.168.0.2
PC2=192.168.0.3
FAST=1
SLOW=0

# --------------------------------------------------------------------------------
# Prima che i pacchetti generati localmente siano immessi nella rete in base alla 
# porta di destinazione sono marcati con un valore.
# NOTA: Qui si utilizza la catena OUTPUT ma della tabella mangle !
# --------------------------------------------------------------------------------
iptables -A OUTPUT -o $ETH -t mangle -p tcp --dport ftp    -j MARK --set-mark $FTP
iptables -A OUTPUT -o $ETH -t mangle -p tcp --dport telnet -j MARK --set-mark $TELNET

# --------------------------------------------------------------------------------
# Prima che i pacchetti siano instradati sono marcati in base all'indirizzo di destinazione
# Il kernel potrà utilizzare queste informazioni ad esempio per indirizzare i 
# pacchetti FAST su una "banda" veloce e i SLOW su una lenta.
# --------------------------------------------------------------------------------
iptables -A PREROUTING -t mangle -p tcp -d $PC1    -j MARK --set-mark $FAST
iptables -A PREROUTING -t mangle -p tcp -d $PC2    -j MARK --set-mark $SLOW

Avanti Indietro Indice