Skip to content

IPv6 address being parsed as IPv4 #29

@joelbu

Description

@joelbu

Hello Dan,
Hello everyone,

I get the following traceback

$ sudo openconnect sslvpn.myschool.tld -u [email protected] -g student-net -s 'vpn-slice --dump netseminar.myschool.tld'
POST https://sslvpn.myschool.tld/student-net
Connected to 1.2.3.4:443
SSL negotiation with sslvpn.myschool.tld
Connected to HTTPS on sslvpn.myschool.tld
XML POST enabled
Fuer eine Verbindung in die entsprechende VPN-Gruppe (VPZ) muss beim Feld "Connect to" "sslvpn.myschool.tld/VPZ_NAME" eingegeben werden, beim Feld Benutzername "[email protected]"
=> Aktuell ist student-net selektiert
=> Login: [email protected]
Bitte geben Sie Benutzernamen und Passwort ein.
Password:
POST https://sslvpn.myschool.tld/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected as 5.6.7.8 + 2001:1:2:3:4::ab/115, using SSL, with DTLS in progress
Established DTLS connection (using GnuTLS). Ciphersuite (DTLS1.2)-(ECDHE-(null))-(AES-256-GCM).
Exception while setting dns from environment variable INTERNAL_IP4_DNS='31.31.31.31 32.32.32.32 2001:555:8888::c'
Traceback (most recent call last):
  File "/usr/local/bin/vpn-slice", line 11, in <module>
    load_entry_point('vpn-slice==0.11', 'console_scripts', 'vpn-slice')()
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 399, in main
    p, args, env = parse_args_and_env()
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 357, in parse_args_and_env
    env = parse_env(environ)
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 293, in parse_env
    try: val = maker(environ[envar])
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 276, in <lambda>
    ('dns','INTERNAL_IP4_DNS',lambda x: [IPv4Address(x) for x in x.split()],[]),
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 276, in <listcomp>
    ('dns','INTERNAL_IP4_DNS',lambda x: [IPv4Address(x) for x in x.split()],[]),
  File "/usr/lib64/python3.7/ipaddress.py", line 1327, in __init__
    self._ip = self._ip_int_from_string(addr_str)
  File "/usr/lib64/python3.7/ipaddress.py", line 1161, in _ip_int_from_string
    raise AddressValueError("Expected 4 octets in %r" % ip_str)
ipaddress.AddressValueError: Expected 4 octets in '2001:67c:10ec::c'
Script 'vpn-slice --dump netseminar.myschool.tld' returned error 1
Exception while setting dns from environment variable INTERNAL_IP4_DNS='31.31.31.31 32.32.32.32 2001:555:8888::c'
Traceback (most recent call last):
  File "/usr/local/bin/vpn-slice", line 11, in <module>
    load_entry_point('vpn-slice==0.11', 'console_scripts', 'vpn-slice')()
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 399, in main
    p, args, env = parse_args_and_env()
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 357, in parse_args_and_env
    env = parse_env(environ)
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 293, in parse_env
    try: val = maker(environ[envar])
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 276, in <lambda>
    ('dns','INTERNAL_IP4_DNS',lambda x: [IPv4Address(x) for x in x.split()],[]),
  File "/usr/local/lib/python3.7/site-packages/vpn_slice/main.py", line 276, in <listcomp>
    ('dns','INTERNAL_IP4_DNS',lambda x: [IPv4Address(x) for x in x.split()],[]),
  File "/usr/lib64/python3.7/ipaddress.py", line 1327, in __init__
    self._ip = self._ip_int_from_string(addr_str)
  File "/usr/lib64/python3.7/ipaddress.py", line 1161, in _ip_int_from_string
    raise AddressValueError("Expected 4 octets in %r" % ip_str)
ipaddress.AddressValueError: Expected 4 octets in '2001:555:8888::c'
Script 'vpn-slice --dump netseminar.myschool.tld' returned error 1

It seems to me that the environment variable INTERNAL_IP4_DNS should never contain an IPv6 address, I suspect this might be a mistake of my organization, would you agree?
Do you happen to have an idea how I could work around this?

Best
--Joel

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions