2013-08-09 2 views
1

안녕하세요 여러분, 여기 새로 왔으니 친절하시기 바랍니다.Scapy가 ipv6 패킷을 보내지 못했습니다.

나는 최근에 선택된 ipv6 지원 서버로 ipv6 패킷을 보내고 받기 위해 scapy를 사용하고 있습니다. 코드의 요점은 여기에 있습니다 :

내가, 패킷이 그럼에도 불구하고 보냈습니다 이해하는 것과
Begin emission: 
Finished to send 1 packets. 
.................WARNING: No route found for IPv6 destination :: (no default route?) 
WARNING: No route found for IPv6 destination 2607:f1c0:1000:60e0:7992:97f7:61b2:2814 (no default route?) 
............................................................................................................ 
Received 1322 packets, got 0 answers, remaining 1 packets 

응답을받은되지 않습니다 : 내가 코드 hoever를 실행하면

text = line[:-1] 
      #destination=getIPv6Addr(line[:-1]) 
      destination="2607:f1c0:1000:60e0:7992:97f7:61b2:2814" 
      source="2001:630:d0:f105:5cfe:e988:421a:a7b7" 
      syn = IPv6(dst=destination,src=source)/TCP(sport=555,dport=80,flags="S")#flag S is syn packet 
      syn.show() 
      syn_ack = sr1(syn,timeout=11) 

이 내가 무엇을 얻을 (0 답변). 이것은 wireshark를 사용하여 패킷을 냄새 맡는 것을 생각하게했습니다. 필터를 사용하면

:

ip6 net 2607:f1c0:1000:60e0:7992:97f7:61b2:2814 

나는 패킷이 처음에 전송되지 않습니다 것을 깨달았다! 왜 이런 일이 일어나고 있는지 또는 여기에서 무엇이 일어나고 있는지 아는 사람이 있습니까?

감사 Martinos

편집 :

댓글에서 더 정밀한 점검에, 내가 경로 목록이 비어있을 수 없습니다 것을 깨달았다. 패킷을 보낼 경로가 없습니다. 나는 그들을 추가하는 방법을 모르겠다! 제발 여기 도와주세요 :

내 장치에서 모든 인터페이스를 가져 오려고했습니다. 여기에 제가 돌아 왔을 때입니다 :

{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth0', 'mtu': 1500L} 
{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth1', 'mtu': 1500L} 
{'flags': 33, 'link_addr': 00:50:56:a0:1e:df, 'type': 6, 'name': 'eth2', 'mtu': 1500L} 
{'flags': 33, 'link_addr': 00:50:56:a0:1e:df, 'type': 6, 'name': 'eth3', 'mtu': 1500L} 
{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth4', 'mtu': 1500L} 
{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth5', 'mtu': 1500L} 
{'flags': 32, 'link_addr': 00:50:56:a0:00:6c, 'type': 6, 'name': 'eth6', 'mtu': 0L} 
{'flags': 32, 'link_addr': 00:50:56:a0:01:0e, 'type': 6, 'name': 'eth7', 'mtu': 0L} 
{'flags': 32, 'link_addr': 00:50:56:a0:6e:61, 'type': 6, 'name': 'eth8', 'mtu': 0L} 
{'addr': 152.78.61.39/24, 'mtu': 1500L, 'flags': 33, 'link_addr': 00:50:56:a0:1e:df, 'type': 6, 'name': 'eth9'} 
{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth10', 'mtu': 1500L} 
{'flags': 33, 'link_addr': b0:90:20:52:41:53, 'type': 6, 'name': 'eth11', 'mtu': 1500L} 
{'flags': 33, 'type': 23, 'name': 'ppp0', 'mtu': 1494L} 
{'flags': 33, 'link_addr': 20:41:53:59:4e:ff, 'type': 23, 'name': 'ppp1', 'mtu': 3256L} 
{'addr': 127.0.0.1/8, 'flags': 3, 'type': 24, 'name': 'lo0', 'mtu': 1500L} 
{'flags': 33, 'type': 131, 'name': 'tun0', 'mtu': 4091L} 
{'flags': 32, 'type': 131, 'name': 'tun1', 'mtu': 1480L} 
{'flags': 33, 'type': 131, 'name': 'tun2', 'mtu': 1460L} 
{'flags': 33, 'type': 131, 'name': 'tun3', 'mtu': 1464L} 
{'flags': 32, 'type': 131, 'name': 'tun4', 'mtu': 1280L} 
{'flags': 32, 'type': 131, 'name': 'tun5', 'mtu': 1280L} 
{'flags': 33, 'type': 131, 'name': 'tun6', 'mtu': 1472L} 
{'flags': 32, 'type': 131, 'name': 'tun7', 'mtu': 1280L} 

당신이 볼 수 있듯이 아무데도 ipv6 주소가 있습니다. ipv6 주소가 나열되어 있지 않으면 어떻게 ipv6 패킷을 보내겠습니까? 여기에 cmd에서 ipconfig가 있습니다.

Ethernet adapter Local Area Connection 4: 

    Connection-specific DNS Suffix . : ecs.soton.ac.uk 
    IPv6 Address. . . . . . . . . . . : 2001:630:d0:f105:5cfe:e988:421a:a7b7 
    Temporary IPv6 Address. . . . . . : 2001:630:d0:f105:e8bc:7c26:9a40:31b8 
    Link-local IPv6 Address . . . . . : fe80::5cfe:e988:421a:a7b7%17 
    IPv4 Address. . . . . . . . . . . : 152.78.61.39 
    Subnet Mask . . . . . . . . . . . : 255.255.255.0 
    Default Gateway . . . . . . . . . : fe80::210:18ff:fee5:5bfa%17 
             152.78.61.254 

Tunnel adapter 6TO4 Adapter: 

    Media State . . . . . . . . . . . : Media disconnected 
    Connection-specific DNS Suffix . : 

Tunnel adapter Teredo Tunneling Pseudo-Interface: 

    Connection-specific DNS Suffix . : 
    IPv6 Address. . . . . . . . . . . : 2001:0:5ef5:79fd:142e:398d:67b1:c2d8 
    Link-local IPv6 Address . . . . . : fe80::142e:398d:67b1:c2d8%13 
    Default Gateway . . . . . . . . . : 

Tunnel adapter isatap.ecs.soton.ac.uk: 

    Media State . . . . . . . . . . . : Media disconnected 
    Connection-specific DNS Suffix . : ecs.soton.ac.uk 

이것은 VM에서 실행되지만 중요한 것은 아니라고 생각합니다.

누군가를 도와주세요. 이것이 매우 중요합니다! ipv6 패킷을 보내는 방법을 이해하기 위해 scapy를 어떻게 구성 할 수 있습니까? 왜 인터페이스 위의 목록에 ipv6 주소가 표시되지 않습니까?

+0

aanyone는 :(scapy 내가 Wireshark는 그것을 볼 수 없습니다, 패킷을 전송 : scapy에서 S – Martin

+0

오류 메시지가 적절한 IPv6 경로를 찾을 수 없다고 무엇 _IP 않습니다 -. 6 경로 목록 _ 보여 주시겠습니까? – thuovila

+0

빈 목록이 아무것도 표시되지 않습니다. 무엇이 있어야합니까? – Martin

답변

1

이더넷 어댑터에는 실제로 IPv6 주소와 기본 게이트웨이가 모두 있습니다. 당신은

  • 은 IPv6 연결이 있는지 ping -6 ipv6.google.com을 시도 할 수 있습니다. 나는 누군가가 지금 다른 사람에게 재 할당하지 않았다면 IPv6 주소를 핑 할 수 있기 때문에 반드시 있어야한다고 생각합니다.

  • 불필요한 경로가 없는지 라우팅 테이블을 검사하십시오. 특히 Teredo 인터페이스로 인해 문제가 발생할 수 있습니다. 끄세요. (netsh를 인터페이스 Teredo를 설정 한 상태 비활성화)

의 Teredo는 : http://tools.ietf.org/html/rfc4380 http://en.wikipedia.org/wiki/Teredo_tunneling

나는 scapy를 사용하여 IPv6 라우팅 및 인터페이스를 구성하는 방법을 모르겠어요.

의견에 충분한 공간이 없기 때문에이 답변을 작성했습니다. 수퍼 유저에게 물어볼 것을 제안합니다. "JANET"또는 Windows 네트워킹 구성에 익숙하지 않으므로 충분히 도와 드릴 수 없습니다.

-1

IPv6 패킷을 보내려면 conf.iface6을 설정해야합니다.

1

"layers/inet6.py"에서 scapy 라우팅 테이블을 기반으로 인터페이스 정보를 얻으려는 getmacbyip6에 대한 함수 호출이 있음을 확인했습니다.

iff,a,nh = conf.route6.route(ip6, dev=conf.iface6) 

conf.iface6은 기본적으로 "lo"로 설정되어 있으므로 항상 루프백 인터페이스를 반환합니다. 다음, I는 해당 인터페이스에서 나가는 패킷을 볼 수 있었다 아래와 같이

iff,a,nh = conf.route6.route(ip6) 

는 I은 상기 문장을 바꿨다.

예 : -

[[email protected] scapy]# ifconfig eth1 
eth1: flags=323<UP,BROADCAST,RUNNING,PROMISC> mtu 1500 
     inet 11.0.0.5 netmask 255.255.255.0 broadcast 0.0.0.0 
     inet6 2001::6 prefixlen 64 scopeid 0x0<global> 
     inet6 fe80::f816:3eff:fe2b:cc67 prefixlen 64 scopeid 0x20<link> 
     ether fa:16:3e:2b:cc:67 txqueuelen 1000 (Ethernet) 
     RX packets 6107709 bytes 1239209940 (1.1 GiB) 
     RX errors 0 dropped 0 overruns 0 frame 0 
     TX packets 12093723 bytes 4161092991 (3.8 GiB) 
     TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

[[email protected] scapy]# ip -6 route show dev eth1 
2001::7 via fe80::f816:3eff:fed1:43de metric 1024 
2001::/64 proto kernel metric 256 
fe80::/64 proto kernel metric 256 

[[email protected] scapy]# scapy 
INFO: Can't import python gnuplot wrapper . Won't be able to plot. 
INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). 
WARNING: No route found for IPv6 destination :: (no default route?) 

Welcome to Scapy (2.3.1) 
>>> 
>>> conf.route6 
Destination     Next Hop     iface src candidates   
::1/128      ::       lo  ::1      
2001::7/128     fe80::f816:3eff:fed1:43de eth1 2001::6     
2001::/64      ::       eth1 2001::6     
2002::/64      ::       eth2 2002::6     
fe80::/64      ::       eth0 fe80::f816:3eff:fe7c:d9fe 
fe80::/64      ::       eth1 fe80::f816:3eff:fe2b:cc67 
fe80::/64      ::       eth2 fe80::f816:3eff:fe1a:a62e 
::1/128      ::       lo  ::1      
2001::6/128     ::       lo  ::1      
2002::6/128     ::       lo  ::1      
fe80::f816:3eff:fe1a:a62e/128 ::       lo  ::1      
fe80::f816:3eff:fe2b:cc67/128 ::       lo  ::1      
fe80::f816:3eff:fe7c:d9fe/128 ::       lo  ::1      
>>> iff,a,nh = conf.route6.route("2001::7", dev=conf.iface6) 
WARNING: No route found for IPv6 destination 2001::7 (no default route?) 
>>> print iff 
lo 
>>> iff,a,nh = conf.route6.route("2001::7") 
>>> print iff 
eth1 
관련 문제