ip route tampilkan bidang src


12

Saya membaca halaman manual ipdan masih tidak mengerti apa srcitu dan saya tidak dapat menemukan banyak dokumentasi.

Tolong, jika Anda bisa menjelaskannya dengan seksama atau menunjuk ke beberapa tautan, itu adalah jawaban yang bagus.


3
Anda tidak tahu apa artinya "sumber" dalam konteks komunikasi IP? Anda tidak perlu server Fault - Anda memerlukan buku Stevens ...
voretaq7

Jawaban:


17

Saat menambahkan rute ke host multihomed, Anda mungkin ingin memiliki kontrol atas alamat IP sumber yang dikirim oleh host Anda saat memulai komunikasi menggunakan rute ini. Inilah gunanya src .

Contoh singkat: Anda memiliki host dengan dua antarmuka dan alamat IP 192.168.1.123/24 dan 10.45.22.12/24. Anda menambahkan rute ke 78.22.45.0/24 melalui 10.45.22.1 dan ingin memastikan Anda tidak mengirim ke 78.22.45.0/24 menggunakan alamat 192.168.1.123 (mungkin karena jaringan 78.22.45.0/24 tidak memiliki rute kembali ke 192.168.1.0/24 atau karena Anda tidak ingin lalu lintas mengambil rute ini karena satu dan lain hal):

ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12

Perhatikan bahwa src yang Anda berikan hanya akan memengaruhi lalu lintas yang berasal dari host Anda. Jika paket asing dirutekankan, itu pasti sudah memiliki alamat IP sumber sehingga akan diteruskan tanpa diubah (kecuali jika Anda menggunakan NAT tentu saja, tetapi ini adalah masalah yang sama sekali berbeda). Selain itu, pengaturan ini mungkin ditimpa oleh proses yang secara khusus memilih untuk mengikat ke alamat tertentu daripada menggunakan default ketika memulai koneksi (agak jarang).


9

The srcatribut adalah petunjuk yang digunakan oleh algoritma seleksi alamat . Ini penting ketika sebuah host memiliki beberapa alamat IP, yang biasanya, tetapi tidak selalu, ketika memiliki beberapa antarmuka. Sementara ada aturan lain yang mempengaruhi pemilihan alamat, dan aplikasi jaringan juga dapat mengesampingkan algoritma pemilihan dengan menggunakan panggilan sistem seperti bind(), srcatribut adalah cara untuk menggunakan pencarian tabel routing untuk menjawab pertanyaan, "Jika saya ingin memulai koneksi ke host X, alamat mana yang harus saya gunakan? "

Berikut adalah contoh untuk menggambarkan penggunaan dan efek srcatribut. Untuk menegaskan bahwa ini terkait dengan alamat dan rute, bukan hanya untuk antarmuka, host contoh ini hanya memiliki satu antarmuka jaringan tetapi dua alamat. Lebih jauh, kedua alamat berada pada subnet yang sama untuk menekankan fakta bahwa tidak ada cara lain yang jelas untuk memilih mana yang akan digunakan.

$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.1.0.2/24 brd 10.1.0.255 scope global eth0
    inet 10.1.0.16/24 scope global secondary eth0
$ ip route list dev eth0
10.1.0.32/27  scope link  src 10.1.0.16
10.1.0.0/24  proto kernel  scope link  src 10.1.0.2

Tuan rumah ini dapat berkomunikasi dengan salah satu dari 252 alamat lainnya pada subnet / 24 ini dari salah satu alamat, tetapi secara default akan menggunakan 10.1.0.16 ketika memulai koneksi dengan 10.1.0.32 hingga 10.1.0.63, dan menggunakan 10.1.0.2 untuk semua beristirahat.

Jika tuan rumah merespons, alih-alih memulai, maka tuan rumah akan merespons dari alamat tujuan permintaan. Misalnya, jika host lain di 10.1.0.32 terhubung ke host ini di 10.1.0.2, respons akan datang dari 10.1.0.2 meskipun itu tidak cocok dengan srcatribut dari rute kembali.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.