루프백 장치는 어떻게 구현됩니까? 소프트웨어로 완전히 구현 된

루프백 네트워킹 인터페이스

소프트웨어로 완전히 구현 된 가상 네트워크 장치입니다.

그러나이 구현은 실제로 어떻게 이루어지고 어떻게 조작합니까?

내가 아는 한 IP는 로컬 라우팅 테이블에서 로컬로 표시됩니다.

ip route show table local

로컬로 표시된 IP로 전송하면 루프백 장치가 트리거됩니다. 그러나이 탐지는 순전히 라우팅 테이블이나 다른 커널 작업에 의해 수행됩니까?

편집 : 나의 궁극적 인 목표는 루프 장치 구성을 조작하여 랩톱의 인터페이스 (두 개의 WLAN 어댑터)간에 데이터 그램을 보내면 로컬 루프가 아닌 네트워크에서 실제 트래픽 / 데이터 그램이 발생하도록하는 것입니다. 인터페이스 1-> WLAN-> 인터페이스 2 및 NOT : 인터페이스 1-> LOOP-> 인터페이스 2



답변

라우팅 테이블을 통해 완전히 처리됩니다.

당신이 재미를 원한다면 가상 머신에서 시도하는 것은 매우 쉽습니다. 나는 당신이 이것을 시도하는 기계에서 일어날 수있는 일에 대해 책임을지지 않습니다.

먼저 넷 마스크 lo를 255.255.0.0으로 변경해 보겠습니다 .

sudo ip addr del 127.0.0.1/8 dev lo; sudo ip addr add 127.0.0.1/16 dev lo

이제 우리를 보자 lo.

$ ip -4 addr show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    inet 127.0.0.1/16 scope host lo

127.1.1.1로가는 패킷은 어디로 갈까요?

$ sudo ip route get 127.1.1.1
127.1.1.1 via 172.16.22.2 dev eth0  src 172.16.22.130
    cache  mtu 1500 advmss 1460 hoplimit 64

다른 터미널에서 핑을 시작합니다.

$ ping 127.1.1.1

eth0에서 ICMP 트래픽을 모니터링 해 봅시다 :

$ sudo tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:42.060077 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 4, length 64
07:28:43.059920 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 5, length 64

lo원격 컴퓨터 의 넷 마스크 를 255.255.0.0으로 변경하고 IP 주소 127.1.1.1을 네트워크 인터페이스에 추가하는 연습을하겠습니다. ICMP 응답이 다시 오는 것을 볼 수 있습니다. 라우터가 제대로 재생되지 않을 수 있습니다.