VLAN 장치의 Ping을 통해 대상 호스트에 연결할 수 없음

VLAN 장치의 Ping을 통해 대상 호스트에 연결할 수 없음

VLAN 장치 eth0.100을 192.168.1.100으로 설정했습니다. eth0의 주소는 10.137.16.108입니다.

해당 주소를 사용하여 핑을 하면 정상적으로 작동하는 것 같습니다.

$핑 10.137.16.108 -I 192.168.1.1

PING 10.137.16.108 (10.137.16.108) from 192.168.1.100 : 56(84) bytes of data.
64 bytes from 10.137.16.108: icmp_seq=1 ttl=64 time=0.153 ms
64 bytes from 10.137.16.108: icmp_seq=2 ttl=64 time=0.058 ms
64 bytes from 10.137.16.108: icmp_seq=3 ttl=64 time=0.060 ms
^C
--- 10.137.16.108 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms rtt min/avg/max/mdev = 0.058/0.090/0.153/0.045 ms

그러나 장치 이름 eth0.100을 사용하여 동일한 ping을 수행하면 대상 호스트에 연결할 수 없습니다.

$ 핑 10.137.16.108 -I eth0.100

PING 10.137.16.108 (10.137.16.108) from 192.168.1.100 eth0.100: 56(84) bytes of data.
From 192.168.1.100 icmp_seq=1 Destination Host Unreachable
From 192.168.1.100 icmp_seq=2 Destination Host Unreachable
From 192.168.1.100 icmp_seq=3 Destination Host Unreachable
^C
--- 10.137.16.108 ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4024ms

arp 테이블 문제인거 같네요

$ARP

 Address            HWtype  HWaddress   Flags Mask            Iface
 10.137.16.108        (incomplete)                          eth0.100

SOL_SOCKET 및 SO_BINDTODEVICE를 사용하여 원시 소켓을 보내려면 VLAN 장치 이름이 필요하므로 도와주실 수 있나요?

감사해요

답변1

고쳐 쓰다:

내 목표는 10개 이상의 작은 가상 머신이나 프로그램에 대한 공유 장치 대역폭의 흐름을 제어하는 ​​것입니다. vconfig 명령을 사용하여 가상 인터페이스를 만들고 tc 명령을 사용합니다. 호스트와 가상 개발 사이의 트래픽에 주소를 사용할 때 vconfig를 사용한 개발은 괜찮아 보입니다. 하지만 IP 프로토콜을 통한 트래픽에 가상 개발 태그를 사용하면 잘못된 것처럼 보입니다.

내 문제에 대한 해결책을 찾았습니다. 이 기사에서와 같이:[물리적 어댑터 없이 컴퓨터에서 가상 이더넷 인터페이스를 만드는 방법은 무엇입니까?

해결책은 iproute2 툴킷을 사용하는 것입니다. 피어 가상 인터페이스를 생성합니다.

ip link add veth0 type veth peer name veth1

두 가상 장치의 주소를 추가합니다.

sudo ip addr add 10.1.1.1/24 dev veth1 && ip set dev veth1 up
sudo ip addr add 10.1.1.2/24 dev veth1 && ip set dev veth2 up

그런 다음 개발자 이름을 veth2로 사용하여 10.1.1.1에 ping을 실행할 수 있으며 제대로 작동하는 것 같습니다.

ping 10.1.1.1 -I veth2

 PING 10.1.1.1 (10.1.1.1) from 10.1.1.1 veth2: 56(84) bytes of data.
 64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.021 ms
 64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.041 ms
 ^C
 --- 10.1.1.1 ping statistics ---
 5 packets transmitted, 5 received, 0% packet loss, time 3999ms

나는 veth 클래스 가상 장치에 가상 Mac 주소가 있다는 것을 발견했습니다. 어쩌면 ARP와 RARP에서 작동할 수도 있습니다.

veth1     Link encap:Ethernet  HWaddr 1a:8d:89:82:da:68  
      inet addr:10.1.1.1  Bcast:0.0.0.0  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

veth2     Link encap:Ethernet  HWaddr 2e:11:c9:ad:9c:e7  
      inet addr:10.1.1.1  Bcast:0.0.0.0  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

당신의 도움을 주셔서 감사합니다.

베드로

관련 정보