Oracle Virtual Server 기반 가상 네트워크에서 올바른 무차별 모드를 활성화하는 방법이 있습니까? 카드가 전체 네트워크 트래픽의 일부만 가져오는 것 같습니다.
Oracle Virtual Manager 인프라에서 사용 가능한 모든 네트워크 유형을 시도했습니다.
가능한 가장 간단한 시나리오: 세 호스트의 "로컬" 가상 네트워크, 파일이 한 호스트에서 두 번째 호스트로 전송되고 세 번째 호스트가 네트워크를 tcpdump하려고 합니다. 파일 전송은 성공했지만 세 번째 호스트는 파일 전송 시작부터 하나의 패킷만 수신합니다. 일부 xl 명령을 사용하여 미세 조정해야 한다고 생각합니다. 이는 아마도 모든 Xen 기반 가상화의 일반적인 문제일 것입니다. 다른 네트워크 참가자가 트래픽을 볼 수 있도록 하려면 어떻게 해야 합니까?
모든 네트워크 인터페이스는 다음과 같은 방식으로 생성됩니다.
OVM> create vnic name=capture_network_card network=local on vm id=${id}
여기서 "local"은 가상 네트워크 유형의 이름입니다.
파일 전송 콘솔 로그:
1.2.3.6# scp 1.2.3.4:*p ./
/etc/ssh/ssh_config line 57: Unsupported option "gssapiauthentication"
1.2.3.4's password:
file.pp 100% 126MB 110.5MB/s 00:01
세 번째 호스트의 Tcpdump:
-sh# tcpdump -i eth6
tcpdump: WARNING: eth6: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth6, link-type EN10MB (Ethernet), capture size 65535 bytes
08:42:12.456647 IP 1.2.3.6.37610 > 1.2.3.4.ssh: Flags [S], seq 2743878644, win 29200, options [mss 1460,nop,wscale 10], length 0
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel
OVM "로컬" 네트워크:
OVM> show network name=local
Command: show network name=local
Status: Success
Time: 2019-04-17 11:13:29,434 EDT
Data:
Server Local = true
Server = b0:3c:4c:3a:75:fe:d5:11:88:cc:18:bb:00:30:c5:db [vmserver2]
MTU = 1500
Role 1 = Virtual Machine
Vnic 1 = 0004fb0000070000591e972d7b9043d0 [local_card_va11]
Vnic 2 = 0004fb00000700007d493cbb2938f30e [local_capture_on_3_29]
Vnic 3 = 0004fb00000700005d89961ae7d76d23 [local_capture_network_card]
Vnic 4 = 0004fb000007000075309ee8253700e8 [local_card_va9]
Id = 105e4d86c5 [local]
Name = local
Locked = false
현재 여기에는 몇 가지 다른 카드가 있지만 질문과 관련이 없습니다. 다른 호스트/카드를 만들어 보았으나 트래픽 캡처에 성공하지 못했습니다.
추가 조사 결과:
특정 PCAP 파일이 이러한 네트워크에서 재생되는 경우 캡처 카드는 일부 ICMP 및 ARP 패킷만 볼 수 있습니다. 트래픽이 가상 호스트 네트워크 어댑터에 직접 재생되는 경우에만 추가 패킷이 표시됩니다. OVM 및 OVS 콘솔을 통해 서버에서 이 어댑터를 식별했습니다.
[ovm]# exec 'list network'|grep local
id:105e4d86c5 name:local
그래서105e4d86c5네트워크 ID입니다.
이 네트워크에서 vmserver 인터페이스 검색105e4d86c5
[root@vmserver2 ~]# ip a |grep 105e4d86c5
16: 105e4d86c5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
19: vif1.2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master 105e4d86c5 state UP qlen 32
37: vif3.6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master 105e4d86c5 state DOWN qlen 32
44: vif3.6-emu: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master 105e4d86c5 state UNKNOWN qlen 500
tcpreplay 트래픽을 이 vif* 어댑터에 직접 보내는 경우 해당 가상 호스트는 확실히 이 패킷을 tcpdump할 수 있습니다. 그러나 가상 호스트에서 tcpreplay를 실행하고 서버에서 tcpdump를 실행하면 더 이상 트래픽이 없으며 tcpdump는 "커널에 의해 삭제됨" 패킷에 대해 인쇄합니다.
저는 Xen에 대한 경험이 거의 없지만 VMWare에서는 동일한 구성이 완벽하게 작동합니다.
Oracle Virtual Network에서 효과적인 패킷 스니핑을 수행하는 방법이 있습니까?