연구 프로젝트로 VirtualBox와 Debian 8을 사용하여 브리지 모드 인터페이스의 네트워킹 기본 사항을 배웠습니다.
다음 위치에서 네트워크 인터페이스를 비활성화했습니다 dhcp
.eth0
/etc/network/interfaces
# ...
# iface eth0 inet manual
이제 인터페이스를 직접 구성하겠습니다.
# ifconfig eth0 192.168.0.99/24
그런 다음 게이트웨이(192.168.0.1)를 테스트했는데 ping
제대로 작동했습니다.
그런 다음 라우팅 테이블에 기본 게이트웨이를 추가했습니다.
# route add default gateway 192.168.0.1 netmask 255.255.255.0 dev eth0
몇 가지 테스트, 다운로드 등을 거친 후 모든 것이 잘 작동하는 것으로 나타났습니다.
그런 다음 경로를 제거하고 테스트를 위해 기본 게이트웨이를 사용하는 방법을 배우기로 결정했습니다. 효과가있다.
이게 내 문제야
위와 같은 줄을 사용하여 게이트웨이를 다시 추가하려고 하면 "SIOCADDRT: 네트워크에 접근할 수 없습니다" 실수.
나는 어떤 문제를 해결하려고 하는가?
ifdown
그리고ifup
내 인터페이스;ifconfig
사용;인터페이스 재구성networking
데몬을 다시 시작하십시오 .
작동하는 유일한 것은재시작기계.
컴퓨터를 다시 시작하지 않고 경로를 다시 추가할 수 있는 방법이 있나요?
답변1
내 서버에서 문제를 재현했습니다.
주목해야 할 중요한 점은 인터페이스 구성이 이를 수행하므로 네트워크에 경로를 추가할 필요가 없다는 것입니다. 영구적으로 변경해야 하는 경우에도 이를 /etc/network/interfaces에 배치하고 "gateway" 옵션을 사용하여 네트워크의 게이트웨이를 지정할 수 있습니다. 이렇게 하면 네트워크에 기본 gw 경로를 추가할 필요조차 없습니다.
설정: 가정용 PC -> 고정 IP 추가 192.169.3.2 대상은 동일한 스위치에 연결된 서버에서 이 IP에 도달하는 것입니다. (가상 스위치 또는 물리적 스위치의 경우 동일)
서버 초기 구성
root@raspberrypi:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr b8:27:eb:fd:73:1b
inet addr:192.169.1.2 Bcast:192.169.1.255 Mask:255.255.255.0
inet6 addr: fe80::d89e:52c:aa96:d2b5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3883499 errors:0 dropped:46 overruns:0 frame:0
TX packets:5939416 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:580337982 (553.4 MiB) TX bytes:1486713518 (1.3 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:370 errors:0 dropped:0 overruns:0 frame:0
TX packets:370 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:29124 (28.4 KiB) TX bytes:29124 (28.4 KiB)
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 202 0 0 eth0
192.169.1.0 * 255.255.255.0 U 0 0 0 eth0
이제 컴퓨터 IP(192.169.3.2)를 얻기 위한 인터페이스를 생성하겠습니다.
인터페이스 생성 및 검증
root@raspberrypi:~# ifconfig eth0:1 192.169.3.5/24
root@raspberrypi:~# ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr b8:27:eb:fd:73:1b
inet addr:192.169.3.5 Bcast:192.169.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
경로를 추가하지 않고 집 컴퓨터에 ping을 보냅니다.
root@raspberrypi:~# ping 192.169.3.2
PING 192.169.3.2 (192.169.3.2) 56(84) bytes of data.
64 bytes from 192.169.3.2: icmp_seq=1 ttl=128 time=32.3 ms
64 bytes from 192.169.3.2: icmp_seq=2 ttl=128 time=2.95 ms
^C
--- 192.169.3.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.956/17.642/32.329/14.687 ms
실제 라우팅 테이블 확인
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 202 0 0 eth0
192.169.1.0 * 255.255.255.0 U 0 0 0 eth0
192.169.3.0 * 255.255.255.0 U 0 0 0 eth0
보시다시피 eth0 인터페이스를 통한 경로 192.169.3.0/24가 라우팅 테이블에 자동으로 추가되었으며 해당 경로를 제거하면 해당 네트워크에 액세스할 수 없으며 해당 네트워크를 통해 기본 경로를 추가할 수도 없습니다.
경로 삭제 및 연결성 확인
root@raspberrypi:~# route del -net 192.169.3.0/24 dev eth0
root@raspberrypi:~# route
root@raspberrypi:~# ping 192.169.3.2
PING 192.169.3.2 (192.169.3.2) 56(84) bytes of data.
^C
--- 192.169.3.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1005ms
인터페이스 구성 확인
root@raspberrypi:~# ifconfig eth0:1
eth0:1 Link encap:Ethernet HWaddr b8:27:eb:fd:73:1b
inet addr:192.169.3.5 Bcast:192.169.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
보시다시피 인터페이스는 올바르게 구성되었지만 라우팅 테이블에서 경로를 수동으로 제거했기 때문에 네트워크에 연결할 수 없습니다. 따라서 커널은 패킷을 보낼 위치를 알 수 없습니다.
라우팅 테이블 확인
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 202 0 0 eth0
192.169.1.0 * 255.255.255.0 U 0 0 0 eth0
root@raspberrypi:~#
경로를 수동으로 다시 추가하면 네트워크에 연결할 수 있고 핑을 할 수 있게 됩니다.