Setelah menetapkan alamat IP publik menggunakan DHCP, whatsmyip menunjukkan 193.xxx yang diharapkan tetapi ifconfig menunjukkan 169.254.xx alamat tautan-lokal

3

Komputer tersebut memiliki SO Linux dan terhubung ke jaringan lokal yang memiliki layanan DHCP aktif. Saya mengkonfigurasi alamat ip publik untuk diberikan ke komputer itu oleh DHCP dan saya bisa ssh ke dalamnya menggunakan alamat ip ini. Sekarang sampai pada bagian yang aneh.

ifconfigmengembalikan alamat 169.254.xx. Saya telah membaca bahwa 169.254.xx diberikan ke komputer ketika DHCP gagal memberikannya alamat yang benar. Tapi itu memang memberikan alamat yang tepat, saya dapat ssh untuk itu (menggunakan alamat IP publik) dan situs-situs seperti http://www.whatsmyip.org/ katakan padaku komputer memiliki alamat ip publik yang saya konfigurasikan pada DHCP.

Bagaimana ini bisa dilakukan dan detail apa yang harus saya sertakan dalam posting ini?

Ketika saya meminta rekan saya untuk me-restart jaringannya

/etc/init.d/net.eth0 restart

inilah hasilnya:

 * Caching service dependencies  ...                [ ok ]
 * Unmounting network filesystems ...               [ ok ]
 * Bringing down interface eth0
 *   Stopping dhcpcd on eth0 ...                    [ ok ]
 * Bringing up interface eth0
 *   dhcp ...
 *     Running dhcpcd ...
control_open: Connection refused
eth0: adding address fe80::f85f:1ef7:db63:7475
eth0: waiting for carrier
eth0: carrier acquired
DUID 00:01:00:01:1b:ef:52:ea:dc:85:de:20:38:fa
eth0: IAID a9:04:2c:82
eth0: soliciting an IPv6 router
eth0: rebinding lease of 193.136.136.136
eth0: probing for an IPv4LL address
eth0: DHCP lease expired
eth0: soliciting a DHCP lease
eth0: using IPv4LL address 169.254.78.15
eth0: adding route to 169.254.0.0/16
forked to background, child pid 6332                [ ok ]
 *     received address 169.254.78.15/16            [ ok ]
* Mounting network filesystems ...

Outputnya ifconfigadalah sebagai berikut:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.78.15  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::f85f:1ef7:db63:7475  prefixlen 64  scopeid 0x20<link>
        ether 48:85:a3:04:2d:81  txqueuelen 1000  (Ethernet)
        RX packets 113090  bytes 80195148 (76.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39425  bytes 7462270 (7.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 2259  bytes 217008 (211.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2259  bytes 217008 (211.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether df:83:de:11:37:fb  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip addr menunjukkan kedua IP, 169.xxx dan 193.xxx Masih belum menemukan mengapa 169.xxx diberikan oleh server DHCP.

pernikahan
sumber
Bagaimana maksud Anda mengonfigurasi alamat IP publik untuk diberikan oleh DHCP? Saat Anda menjalankan Linux, apakah Anda menggunakan manajer jaringan atau Anda menggunakan /etc/network/interfacesfile untuk mengelola koneksi Anda?
Kinnectus
Saya tidak mengkonfigurasi IP di komputer, saya melakukannya di server DHCP.
rmarques
Karena saya dapat ssh ke komputer itu menggunakan 193.136.136.136, alamat yang saya inginkan.
rmarques
Apa output dari ifconfig?
Niall
Dan: apa yang ifconfigdikembalikan ketika digunakan di komputer lain?
Arjan

Jawaban:

3

IP dari kisaran 169.254.x.xmerupakan indikasi bahwa alamat belum diperoleh dari DHCP.

Dari Wikipedia pada 169.254.x.xkisaran;

Dalam IPv4, alamat tautan-lokal dikodifikasikan dalam RFC 6890 dan RFC 3927. Utilitasnya ada dalam konfigurasi otomatis oleh perangkat jaringan ketika layanan Dynamic Host Configuration Protocol (DHCP) tidak tersedia dan konfigurasi manual oleh administrator jaringan tidak diinginkan.

Blok 169.254.0.0/16 dicadangkan untuk tujuan ini, dengan pengecualian dari subnet pertama dan terakhir / 24 dalam kisaran. Jika host di jaringan IEEE 802 (ethernet) tidak dapat memperoleh alamat jaringan melalui DHCP, alamat dari 169.254.1.0 hingga 169.254.254.255 dapat ditugaskan secara acak. Standar menentukan bahwa tabrakan alamat harus ditangani dengan anggun.

IP Anda terdaftar oleh ifconfigdan publik (terlihat secara eksternal) sedang diidentifikasi oleh http://www.whatsmyip.org/ .

Sangat umum bahwa jaringan internal atau lokal berada pada kisaran alamat IP yang berbeda (dan seringkali pribadi) ke jaringan eksternal. IP eksternal mungkin terbatas dan NATing digunakan untuk merutekan lalu lintas eksternal ke perangkat / PC internal Anda.

Niall
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Sathyajith Bhat
@Arjan memindahkannya ke obrolan membantu menjaga pertanyaan / jawaban tetap jelas sementara tetap mempertahankan komentar di tempat yang bagus untuk diajak bicara atau referensi nanti;) juga memperhatikan Anda kembali beraksi - senang memiliki Anda lagi
Sathyajith Bhat
3

Anda menggunakan ifconfigperintah yang sudah tidak digunakan lagi . Ini menunjukkan hanya satu alamat IPv4 per antarmuka meskipun satu antarmuka dapat memiliki beberapa alamat yang ditetapkan.

Coba saja ipperintahnya:

user@host ~ $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet x.x.x.x peer x.x.x.x/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet x.x.x.x/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::4/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::3/128 scope global
       valid_lft forever preferred_lft forever
    inet6 2a01:xxxx:xxxx:xxxx::2/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

Anda juga dapat mengatur dhcpcd untuk tidak menetapkan alamat IPv4LL, lihat halaman manual .

Daniel B
sumber
Saya tidak akan memanggil perintah usang, hanya saja ada opsi yang lebih baik di Linux, karena di freebsd dan perintah unix lainnya terus menjadi ifconfig
Francisco Tapia
@FranciscoTapia Hanya saja Linux bukan Unix. ;) Ini adalah perintah yang sama sekali berbeda pada sistem operasi lain, jadi itu tidak benar-benar sebanding. ifconfigdi Linux adalah peninggalan masa lalu. Tentu mudah digunakan, tapi hanya itu yang ada.
Daniel B
jangan mengambil komentar saya sebagai kritik, saya sudah menguji sendiri semua keuntungan dari perintah ip, saya hanya menuntut rasa hormat terhadap yang lama;) PD: Halaman manual menunjukkan catatan berikut: "Program ini sudah usang! Untuk penggantian periksa ip addr dan tautan ip. Untuk statistik gunakan tautan ip -s. ": o
Francisco Tapia