Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPv6 routes parsing bug on 2.6.0 #4541

Closed
alancanniff opened this issue Sep 30, 2024 · 10 comments · Fixed by #4560
Closed

IPv6 routes parsing bug on 2.6.0 #4541

alancanniff opened this issue Sep 30, 2024 · 10 comments · Fixed by #4560
Labels

Comments

@alancanniff
Copy link

alancanniff commented Sep 30, 2024

Brief description

After upgrading to scapy 2.6 previously working scripts now fail at the import stage. I've been able to reproduce this on the command line in a venv with only scapy installed.

I've attached a full version of the stack trace
example.txt

I've noticed from the stack trace reference to inet6. inet6 is not enabled on this host

$ ip a | grep inet6
$

Scapy version

2.6.0

Python version

3.9

Operating system

Linux 4.18.0-372.26.1.el8_6.x86_64

Additional environment information

Using rockylinux8

How to reproduce

using python3.9 run the following
from scapy.all import *

Actual result

(venv) myhost:~/username/project$ python
Python 3.9.18 (main, Nov 18 2023, 01:00:14)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.all import *
ERROR: Loading module scapy.layers.dcerpc
Traceback (most recent call last):
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/main.py", line 226, in _load
    mod = importlib.import_module(module)
  File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/layers/dcerpc.py", line 35, in <module>
    from scapy.layers.dns import DNSStrField
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/layers/dns.py", line 68, in <module>
    from scapy.layers.inet import IP, DestIPField, IPField, UDP, TCP
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/layers/inet.py", line 2541, in <module>
    import scapy.layers.inet6
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/layers/inet6.py", line 110, in <module>
    import scapy.route6  # noqa: F401
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/route6.py", line 333, in <module>
    conf.route6 = Route6()
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/route6.py", line 47, in __init__
    self.resync()
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/route6.py", line 64, in resync
    self.routes = read_routes6()
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/arch/linux/rtnetlink.py", line 961, in read_routes6
    cset = scapy.utils6.construct_source_candidate_set(prefix, plen, devaddrs)
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/utils6.py", line 75, in construct_source_candidate_set
    if in6_isgladdr(addr) or in6_isuladdr(addr):
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/utils6.py", line 784, in in6_isgladdr
    return in6_isincluded(str, '2000::', 3)
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/utils6.py", line 714, in in6_isincluded
    temp = inet_pton(socket.AF_INET6, addr)
  File "/home/jenkins/username/project/venv/lib64/python3.9/site-packages/scapy/pton_ntop.py", line 92, in inet_pton
    return socket.inet_pton(af, addr)
OSError: illegal IP address string passed to inet_pton

Expected result

I expect the package to load without error

Related resources

No response

@gpotter2 gpotter2 added the bug label Sep 30, 2024
@gpotter2
Copy link
Member

gpotter2 commented Sep 30, 2024

Could you share the content of your IPv6 table?
Like

ip -6 route show table all

Also the output of the following in a Python shell:

from scapy.arch.linux.rtnetlink import _read_routes
resp = _read_routes(socket.AF_INET6)
resp.show()

This is an OS-specific issue, so please run it in the same environment. Thanks

@gpotter2 gpotter2 changed the title from scapy.all import * fails on python3.9 IPv6 routes parsing bug on 2.6.0 Sep 30, 2024
@alancanniff
Copy link
Author

$ ip -6 route show table all
$ 
$ python
Python 3.9.18 (main, Nov 18 2023, 01:00:14) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.arch.linux.rtnetlink import _read_routes
>>> resp = _read_routes(socket.AF_INET6)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'socket' is not defined

@alancanniff
Copy link
Author

ahh - just realised that socket should be imported too...
the resposne was a list, so I've added the 'show' output for all the entries

$ python
Python 3.9.18 (main, Nov 18 2023, 01:00:14) 
[GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from scapy.arch.linux.rtnetlink import _read_routes
>>> import socket
>>> resp = _read_routes(socket.AF_INET6)
>>> resp.show()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'show'
>>> resp
[<rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_LINK rtm_type=RTN_BROADCAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=127.0.0.0 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=127.0.0.1 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=1 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=8 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_HOST rtm_type=RTN_LOCAL rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=127.0.0.0 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=127.0.0.1 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=1 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_HOST rtm_type=RTN_LOCAL rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=127.0.0.1 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=127.0.0.1 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=1 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_LINK rtm_type=RTN_BROADCAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=127.255.255.255 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=127.0.0.1 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=1 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_LINK rtm_type=RTN_BROADCAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=172.16.60.0 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=172.16.60.206 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=10 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_HOST rtm_type=RTN_LOCAL rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=172.16.60.206 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=172.16.60.206 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=10 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=32 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_LOCAL rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_LINK rtm_type=RTN_BROADCAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_LOCAL |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=172.16.60.255 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=172.16.60.206 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=10 |>] |>>, <rtmsghdr  nlmsg_len=60 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=0 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_MAIN rtm_protocol=RTPROT_STATIC rtm_scope=RT_SCOPE_UNIVERSE rtm_type=RTN_UNICAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_MAIN |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PRIORITY rta_data=100 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_GATEWAY rta_data=172.16.60.254 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=10 |>] |>>, <rtmsghdr  nlmsg_len=68 nlmsg_type=RTM_NEWROUTE nlmsg_flags=NLM_F_MULTI+NLM_F_DUMP_FILTERED nlmsg_seq=1727726456 nlmsg_pid=316652 |<rtmsg  rtm_family=AF_INET rtm_dst_len=24 rtm_src_len=0 rtm_tos=0 rtm_table=RT_TABLE_MAIN rtm_protocol=RTPROT_KERNEL rtm_scope=RT_SCOPE_LINK rtm_type=RTN_UNICAST rtm_flags= data=[<rtmsg_rtattr  rta_len=8 rta_type=RTA_TABLE rta_data=RT_TABLE_MAIN |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_DST rta_data=172.16.60.0 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PRIORITY rta_data=100 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTA_PREFSRC rta_data=172.16.60.206 |>, <rtmsg_rtattr  rta_len=8 rta_type=RTS_OIF rta_data=10 |>] |>>]
>>> len(resp)
9
>>> for m in resp:
...   m.show()
... 
###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_LINK
     rtm_type  = RTN_BROADCAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 127.0.0.0
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 127.0.0.1
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 1

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 8
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_HOST
     rtm_type  = RTN_LOCAL
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 127.0.0.0
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 127.0.0.1
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 1

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_HOST
     rtm_type  = RTN_LOCAL
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 127.0.0.1
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 127.0.0.1
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 1

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_LINK
     rtm_type  = RTN_BROADCAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 127.255.255.255
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 127.0.0.1
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 1

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_LINK
     rtm_type  = RTN_BROADCAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 172.16.60.0
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 172.16.60.206
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 10

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_HOST
     rtm_type  = RTN_LOCAL
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 172.16.60.206
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 172.16.60.206
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 10

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 32
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_LOCAL
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_LINK
     rtm_type  = RTN_BROADCAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_LOCAL
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 172.16.60.255
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 172.16.60.206
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 10

###[ rtmsghdr ]###
  nlmsg_len = 60
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 0
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_MAIN
     rtm_protocol= RTPROT_STATIC
     rtm_scope = RT_SCOPE_UNIVERSE
     rtm_type  = RTN_UNICAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_MAIN
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PRIORITY
      |  rta_data  = 100
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_GATEWAY
      |  rta_data  = 172.16.60.254
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 10

###[ rtmsghdr ]###
  nlmsg_len = 68
  nlmsg_type= RTM_NEWROUTE
  nlmsg_flags= NLM_F_MULTI+NLM_F_DUMP_FILTERED
  nlmsg_seq = 1727726456
  nlmsg_pid = 316652
###[ rtmsg ]###
     rtm_family= AF_INET
     rtm_dst_len= 24
     rtm_src_len= 0
     rtm_tos   = 0
     rtm_table = RT_TABLE_MAIN
     rtm_protocol= RTPROT_KERNEL
     rtm_scope = RT_SCOPE_LINK
     rtm_type  = RTN_UNICAST
     rtm_flags = 
     \data      \
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_TABLE
      |  rta_data  = RT_TABLE_MAIN
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_DST
      |  rta_data  = 172.16.60.0
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PRIORITY
      |  rta_data  = 100
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTA_PREFSRC
      |  rta_data  = 172.16.60.206
      |###[ rtmsg_rtattr ]###
      |  rta_len   = 8
      |  rta_type  = RTS_OIF
      |  rta_data  = 10

@gpotter2
Copy link
Member

gpotter2 commented Oct 1, 2024

Thanks. What's the content of socket.AF_INET6 ?

Results are supposed to be filtered for IPv6 only in this part of the code, but as you can see here the answer contains all the IPv4 too. Somethings going wrong.. I'll have to try to reproduce using RHEL

@alk0ve
Copy link

alk0ve commented Oct 3, 2024

I've also seen this reproduced on Ubuntu 20.04 with IPv6 disabled.

@alancanniff
Copy link
Author

alancanniff commented Oct 6, 2024

Thanks. What's the content of socket.AF_INET6 ?

>>> socket.AF_INET6
<AddressFamily.AF_INET6: 10>

Is this what you're looking for?

@gpotter2
Copy link
Member

gpotter2 commented Oct 6, 2024

Does this: #4560 fixes your issue?

@alancanniff
Copy link
Author

Yes, this resolves the issue I was seeing.
I've been successfully able to load scapy on the host - and scripts that were working on 2.5 are now working on package built from that branch

@gpotter2
Copy link
Member

gpotter2 commented Oct 6, 2024

Great ! Thanks. Glad we could work that out.

@alancanniff
Copy link
Author

Me too - thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants