salah satu server saya (Debian 5.0.6) memiliki dua alamat ip publik pada antarmuka yang sama. Ini digunakan untuk bekerja dengan baik selama berbulan-bulan tetapi tiba-tiba ia menggunakan alamat ip yang "salah" untuk koneksi keluar. Ini adalah masalah karena pencarian sebaliknya tidak akan cocok dan karenanya email mendapatkan poin spam.
eth0 Link encap:Ethernet Hardware Adresse 00:1b:21:14:8e:9c
inet Adresse:81.169.180.51 Bcast:81.169.180.51 Maske:255.255.255.255
inet6-Adresse: fe80::21b:21ff:fe14:8e9c/64 Gültigkeitsbereich:Verbindung
eth0:0 Link encap:Ethernet Hardware Adresse 00:1b:21:14:8e:9c
inet Adresse:85.214.157.120 Bcast:85.214.157.120 Maske:255.255.255.255
Kernel-IP-Routentabelle
Destination Router Genmask Flags Metric Ref Use Iface
81.169.180.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
0.0.0.0 81.169.180.1 0.0.0.0 UG 0 0 0 eth0
Saat ini menggunakan 85.214.157.120 untuk koneksi keluar. Bagaimana cara mendapatkannya menggunakan 81.169.180.51?
Sunting : Netmask dari 255.255.255.255 konsisten dengan dokumentasi dan respons DHCP dari perusahaan hosting. Memanggil /etc/init.d/networking restart beberapa kali pada akhirnya akan berakhir dengan alamat ip yang benar untuk koneksi outbount. Tapi itu jelas bukan solusi yang stabil. / Edit
Sunting 2 : Untuk memastikan bahwa rute host tidak terkait dengan masalah saya, saya menyiapkan jaringan pengujian lokal:
eth0 inet Adresse:192.168.0.2 Bcast:192.168.0.255 Maske:255.255.255.0
eth0:0 inet Adresse:192.168.0.3 Bcast:192.168.0.255 Maske:255.255.255.0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Jika ada yang punya ide bagaimana memastikan bahwa sumber ip-address 192.168.0.2 digunakan pada koneksi tcp keluar, saya akan berterima kasih. / Edit 2
Jawaban bindbn bagus, tetapi saya menemukan beberapa komplikasi.
1) Anda harus memeriksa "daftar rute ip" seperti yang dikatakan bindbn. Beberapa aturan lain dalam daftar mungkin didahulukan dari rute default. Anda mungkin perlu menghapus aturan itu, atau membuat aturan yang sedikit berbeda.
2) Semua perubahan yang dilakukan melalui perintah ip hanya berfungsi sampai reboot berikutnya. Jawaban ini Secara permanen menambahkan aturan perutean kebijakan sumber menjelaskan cara membuatnya terus-menerus.
Singkatnya, Anda dapat menambahkan perintah ip route yang perlu Anda jalankan sebagai baris "up" atau "post-up" ke / etc / network / interfaces. Anda bisa menambahkan baris "down" yang sesuai untuk menghapus rute.
sumber
Coba ubah
untuk
Itu akan memaksa antarmuka fisik Anda untuk muncul lebih dulu. Anda mungkin atau mungkin tidak perlu mengubah entri allow-hotplug untuk eth0: 0 juga.
sumber
Karena penasaran, mengapa alamat IP Anda memiliki netmask 255.255.255.255? Itu benar-benar tidak layak, karena itu berarti seluruh alamat adalah jaringan. Tidak ada ruang untuk tuan rumah. Fakta bahwa alamat broadcast Anda sama dengan IP host Anda juga mengkhawatirkan, tetapi kemungkinan karena masalah netmask. Sepertinya netmask Anda seharusnya 255.255.255.0.
Apakah ini dilakukan untuk memberi Anda dua host pada subnet yang sama? Mungkin lebih baik untuk membuat perubahan sehingga setiap antarmuka berada pada subnet yang berbeda. 255.255.255.128 akan menempatkan eth0 dan gateway Anda (dari 81.169.180.1) pada subnet yang sama, dengan eth0: 0 pada subnet yang terpisah. Namun, itu berarti bahwa eth0 hanya bisa berkomunikasi dengan 81.169.180.1-81.169.180.127. Dan eth0: 0 pergi dari 129-254. Tapi itu dikatakan, saya tidak bisa melihat mengapa pengaturan Anda saat ini bekerja sama sekali.
Sekarang, apakah ini akan menyebabkan masalah yang Anda lihat di atas? Saya tidak dapat melihat tautan langsung, tetapi itu mungkin.
Itu pasti sesuatu yang akan saya sesuaikan. Jika itu tidak membantu, mungkin Anda bisa menjelaskan mengapa Anda memiliki pengaturan seperti ini.
Sunting: Apakah ini berfungsi dengan baik pada host ini, atau apakah itu mesin / OS yang berbeda? Adakah yang tahu apa yang mungkin telah berubah? Alasan saya bertanya adalah karena Linux benar-benar tidak suka memiliki dua antarmuka pada subnet yang sama. Itu membuat saya gila mencoba untuk membuatnya bekerja di jaringan saya sendiri. Kedengarannya sangat mungkin bahwa Anda berhasil menggunakan IP yang tepat, hingga Anda mem-boot ulang / memulai kembali layanan jaringan. Kemudian muncul menggunakan antarmuka yang salah. Referensi: http://anders.com/cms/258
Anda juga dapat mencoba
ifdown
pada eth0: 0, lalu menambahkan rute, laluifup
mengembalikannya. Itu mungkin menjamin IP yang benar digunakan.Secara manual menambahkan
dev eth0
mungkin membantu, tetapi tampaknya seolah-olah rute dilakukan dengan benar.Edit Lebih Lanjut: Anda dapat mencoba menggunakan alat manajemen IP terbaru di Debian
iproute 2
,. ( Tautan sekunder ) Sepertinya ada sesuatu di sepanjang garis yangmembawa antarmuka:
ip link set eth0 up
ip addr add 192.168.0.2/24 dev ethe0
ip addr add 192.168.0.3/24 dev eth0
Kemudian mengatur tabel routing dengan
ip route add 10.0.0.0/16 via 192.168.0.2
--Christopher Karel
sumber
Pengaturan Anda saat ini seharusnya tidak bekerja sama sekali. Karena netmask untuk kedua antarmuka adalah 255.255.255.255, tidak ada ruang untuk gateway. Namun, untuk mengirimkan lalu lintas yang berarti, server Anda memerlukan gateway. ISP yang menyediakan dua alamat IP publik juga harus memberi Anda pengaturan netmask dan gateway untuk kedua alamat IP.
Contoh (ini adalah server pribadi saya dan alamat IP asli):
Server itu sendiri pada 217.10.144.210, yang terletak di subnet yang sama dengan gateway (harus, jika tidak, lalu lintas tidak dapat dialihkan). Agaknya ISP juga menyediakan subnet yang sama untuk beberapa pelanggan lain.
Jika Anda berada di server itu dan melakukan ping ke gateway Anda, Anda akan menerima pesan "no route to host".
Bicaralah dengan ISP dan dapatkan pengaturan yang benar, kemudian perbarui konfigurasi antarmuka Anda, restart jaringan dan periksa lagi.
sumber