IP 주소가 없다는 질문이 많은데, 제 상황에 맞는 해결책을 찾을 수 없는 것 같아 안타깝습니다. 나는 기술적인 세부 사항을 통해 누군가가 이 Windows 직원이 무엇을 잘못하고 있는지 지적할 수 있기를 바랍니다.
질문:새 이더넷 PCI-x 카드에는 IP 주소가 없습니다. 배경: Docker 컨테이너와 Samba를 실행하는 홈 개발 서버. 처음에는 무선 설정 메뉴를 사용하여 설정했는데, TP-LINK TG-3468 기가비트 PIC Express 카드로 변경하기 전까지는 잘 작동했습니다.
운영 체제: 우분투 16.04.3 LTS
$ifconfig eno1
br-1...
br-8...
docker0...
lo...
새 네트워크 카드의 eno1은 보이지 않았지만 docker에 의해 생성된 일부 인터페이스는 보았습니다.
$ifconfig eno1
eno1 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 everruns:0 carrier:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:20 Memory:f7f00000-f7f20000
콘텐츠 /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet dhcp
게이트웨이로 라우팅되는 항목을 설정하는 방법을 알 수 없지만 라우팅에 문제가 있다고 생각합니다.
$route
Destination Gateway Genmask Flags Metric Ref Use Iface
172.17.0.0 * 255.255.0.0 U 0 0 0 docker0
172.18.0.0 * 255.255.0.0 U 0 0 0 br-8...
172.19.0.0 * 255.255.0.0 U 0 0 0 br-1...
라우터에 대한 경로를 설정해 보세요.
sudo route add default gw 192.168.1.254
밝혀지다SIOCADDRT: Network is unreachable
또한 라우터에서 고정 IP를 얻기 위해 인터페이스 파일을 설정해 보았지만 아무 것도 개선되지 않았습니다. 나는 IP를 얻은 적이 없으며 앞으로도 얻을 수 없습니다.
편집 1:결과ip route get 192.168.1.254
RTNETLINK answers: Network is unreachable
편집 2: 다음을 통해 고정 IP를 수동으로 구성해 보세요.
sudo /sbin/ifconfig eth0 192.168.1.91 netmask 255.255.255.0 broadcast 192.168.1.255
그 후에도 여전히 라우터에 ping을 보낼 수 없습니다.
추가 정보:
$sudo lshw -numeric -C network
*-network
description Ethernet interface
product: 82579V Gigabit Network Connection [8086:1503]
vendor: Intel Corporation [8086]
physical id: 19
bus info: pci@0000:00:19.0
logical name: eno1
version: 04
serial: XX:XX:XX:XX:XX:XX
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.13-4 ip=192.168.1.91 latency=0 link=no multicast=yes port=twisted pair
resources: irq:33 memory:f7f00000-f7f1ffff memoroy:f7f39000-f7f39fff ioport:f080(size=32)
편집 3:
$ip link show eno1
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
XX는 내 MAC 주소입니다.
@EricF, brctl이 설치되지 않았으며 bridge link show
아무것도 반환하지 않습니다. 내가 이해한 바에 따르면 이러한 인터페이스는 현재 닫힌 컨테이너로의 트래픽을 허용하기 위해 docker에 의해 생성되었습니다. 이러한 컨테이너가 시작되면 동일한 bridge link show
명령이 처음에 나열하지 않은 인터페이스 목록을 반환합니다. 이에 대한 나의 평가는 eno1은 브리지를 사용하지 않지만 도커 인터페이스는 브리지를 사용한다는 것입니다.
답변1
문제(또는 브리징에 대한 ErikF의 의견을 고려한 문제 중 하나)는 인터페이스가 연결되지 않았다는 것입니다.
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP>
그리고 NO-CARRIER
누락된 플래그 LOWER_UP
("lower layer up", 즉 링크 계층, 이더넷을 의미함)는 NIC가 (물리적으로) 어떤 것에도 연결되어 있지 않은 것처럼 보이기 때문에 NIC가 데이터를 보내거나 받을 수 없음을 알려줍니다. 케이블 한쪽이 연결되지 않았거나 스위치가 꺼져 있을 수도 있습니다.
라우팅 구성
IP 주소는 링크-로컬 게이트웨이로만 구성할 수 있습니다. 즉, 인터페이스 중 하나의 네트워크에 이 IP(IP 주소 및 넷마스크)가 있어야 합니다.
일반적으로 이는 경로를 구성하지 않고도 게이트웨이를 ping할 수 있음을 의미합니다.
다음 명령을 사용할 수도 있습니다.
ip route get 192.168.1.254
이러한 패킷을 처리하는 방법을 확인하세요. 결과는 192.168.1.254 dev
선이 아니라 192.168.1.254 via
선이어야 합니다.