GNU/Linux >> Belajar Linux >  >> Linux

Linux - temukan hit dari rute default

Cache perutean linux untuk IPv4 telah dihapus di Linux 3.6 (hanya menyisakan penggunaan LPC-trie yang dioptimalkan). Oleh karena itu, tidak ada cara bagi sistem Linux dengan OS setelah 2012 untuk mendapatkan cache perutean statistik.

Cara mudah untuk memberi tag penggunaan rute default adalah menempatkan ranah nilai pada rute ini. Paket yang cocok dengan rute ini (daripada rute yang lebih spesifik menggunakan gateway yang sama) akan diidentifikasi dengan nilai ranah yang diberikan. Jadi jika rute defaultnya adalah 192.0.2.1 via eth0 , rutenya akan diatur misalnya seperti ini:

ip route add default via 192.0.2.1 proto static realm 10

Atau Anda dapat mengubah rute default sebelumnya (tanpa ranah) dengan mengganti add dengan change , tanpa gangguan.

Tag ranah ini kemudian dapat digunakan kembali setidaknya di dua subsistem jaringan lainnya:tc filter ... route atau nft ... meta rtclassid nftables .

Kontrol Lalu Lintas

tc cukup kasar dan biasanya bekerja pada tingkat antarmuka. Cara termudah untuk melampirkan filter adalah dengan menggunakan prio qdisc, qdisc classful yang paling sederhana. Properti prioritas spesifiknya tidak akan benar-benar digunakan. Jadi ikuti contoh sebelumnya:

tc qdisc add dev eth0 root handle 1: prio

Sekarang tambahkan filter dengan tindakan kosong (dan dengan pref pesan dan lanjutkan kontrol untuk mengizinkan filter serupa tambahan jika diperlukan), hanya untuk memiliki statistik tentangnya:

tc filter add dev eth0 parent 1: protocol ip pref 1 route to 10 action continue

Sekarang setiap rute pencocokan paket ip realme 10, akan ditampilkan dalam statistik dengan menggunakan tc -s filter show dev eth0 . Contoh:

# tc -s filter show dev eth0
filter parent 1: protocol all pref 1 route chain 0 
filter parent 1: protocol all pref 1 route chain 0 fh 0xffff000a to 10 
    action order 1: gact action continue
     random type none pass val 0
     index 1 ref 1 bind 1 installed 48 sec used 4 sec
    Action statistics:
    Sent 12230 bytes 79 pkt (dropped 0, overlimits 0 requeues 0) 
    backlog 0b 0p requeues 0

Catatan:keduanya diteruskan dan paket yang berasal secara lokal cocok, yang bisa menjadi masalah untuk pengukuran.

nftabel

nftabel di sini tidak akan digunakan untuk melakukan firewall apa pun, tetapi hanya untuk menambahkan beberapa penghitung.

nftabel instalasi hanya meminta pengait netfilter, daripada semua yang tersedia, sehingga biasanya memiliki footprint yang lebih rendah daripada iptables . Di sini kita hanya perlu aturan yang cocok dengan ranah - itulah peran rtclassid ekspresi - dengan penghitung di atasnya. Jika ini untuk paket yang berasal secara lokal, gunakan saja output kait. Pengait ke depan hanya akan cocok dengan paket yang diteruskan.

nft add table ip mystats
nft add chain ip mystats forward '{ type filter hook forward priority 0; policy accept; }'
nft add rule ip mystats forward meta rtclassid 10 counter

Yang akan memberi contoh nanti:

# nft list ruleset
table ip stats {
    chain forward {
        type filter hook forward priority filter; policy accept;
        meta rtclassid 10 counter packets 1453 bytes 118264
    }
}

Meniadakan nilai hanya mungkin jika menyimpannya dalam objek bernama, sebagai gantinya, kumpulan aturan akan menjadi (memuat dengan nft -f file ):

table ip mystats {
    counter defaultroutecount { }

    chain forward {
        type filter hook forward priority filter; policy accept;
        meta rtclassid 10 counter name "defaultroutecount"
    }
}

Lalu nft list counters atau nft reset counters akan menampilkan (atau menampilkan dan menyetel ulang) kontennya.


Linux
  1. Cara menggunakan FIND di Linux

  2. Cara menemukan File di Linux

  3. Linux – Cara Portabel Untuk Mendapatkan Alamat Sumber Rute Default?

  1. Cara Menemukan IP Gateway Default di Linux

  2. Temukan Proses Orphan Linux

  3. Linux menemukan id inti Hyper-threaded

  1. Cara menemukan file di Linux

  2. Linux menemukan perintah

  3. temukan Contoh Perintah di Linux