Routing table για Internet σε Linux με iproute2

(Reference) Συγγραφέας: Acinonyx

Αυτός είναι ένας οδηγός για να έχουμε σε ξεχωριστό routing table το routing για Internet.

  • Βήμα 1ο
    Κάνουμε edit το /etc/iproute2/rt_tables και προσθέτουμε την παρακάτω γραμμή στο τέλος:
    1       internet

    Αυτό δημιουργεί ένα νέο table με ID 1 και όνομα internet

  • Βήμα 2ο
    Τρέχουμε το παρακάτω script στην εκκίνηση:
    #!/bin/sh
    
    ip route add to default via [gateway] table internet
    ip rule add from [allow_net] to 10/8 lookup main prio 16000
    ip rule add from [allow_net] to default lookup internet prio 16010

    [gateway] = το gateway για τη DSL, VPN κλπ
    [allow_net] = το network που θέλουμε να έχει πρόσβαση στο Internet (π.χ. 10.2.16.128/27)

    Η πρώτη εντολή προσθέτει το default gateway στο table που φτιάξαμε παραπάνω.

    Η δεύτερη εντολή δημιουργεί ένα κανόνα ώστε οποιοδήποτε πακέτο από το προς το AWMN (10/8 ) να χρησιμοποιεί το κυρίως table.

    Η τρίτη εντολή δημιουργεί ένα κανόνα ώστε οποιοδήποτε πακέτο από το προς οποιοδήποτε άλλο προορισμό (default) να χρησιμοποιεί το internet table.

    Αντίστοιχα μπορούμε να προσθέσουμε κι άλλα subnet να έχουν πρόσβαση στο Internet προσθέτοντας επιπλέον ζευγάρια ip rules.

    Για να έχει ο ίδιος ο router πρόσβαση στο Internet θα πρέπει να δοθεί το παρακάτω ζευγάρι εντολών:

    ip rule add iif [loopback] to 10/8 lookup main prio 16020
    ip rule add iif [loopback] to default lookup internet prio 16030

    [loopback] = το loopback interface του router (π.χ. lo)