Два возможных подхода:

Виртуалка-псевдоинтернет

Плюсы: надёжно и работает даже в классе без интернета вообще (да, некоторые так живут)

Минусы: синтетические прикладные сервисы, более искусственные примеры обращения к ним.

Прикладные сервисы

В сетевом неймспейсе:

% python3 -m SimpleHTTPServer -b ::

Капризное замечание: SimpleHTTPServer слишком тупой, он даже AF_INET6-сокет по умолчанию создать не умеет.

Можно просто взять ASGI-сервер hypercorn, который не потребует -b :: и которому можно определить произвольную логику ответов.

DNS

TODO: unbound: для ряда имён выдавать адрес в своём net namespace, создаваемом выше

Виртуалка-прокси

Плюсы: реально как будто есть доступ к интернет-ресурсам хотя бы через HTTP!

Минусы: на службы в интернете полагаться совсем нельзя:

DNS

Чтобы отвечать на DNS-запросы, достаточно нижеследующего:

[root@nana ~]# cat /etc/systemd/network/90-eth0-any.network 
[Match]
Name=eth0

[Network]
IPv6AcceptRA=yes
DHCP=ipv4
[root@nana ~]# ip link set eth2 up
[root@nana ~]# ip a add fe80::3 dev eth2 preferred_lft 0
[root@nana ~]# cat /etc/unbound/unbound.conf
include: "/var/lib/unbound/conf.d/05-all-into-VB.conf"
[root@nana ~]# cat /var/lib/unbound/conf.d/05-all-into-VB.conf
server:
        interface: fe80::3%eth2
        ip-freebind: yes
        access-control: fe80::/10 allow

forward-zone:
        name: "."
        forward-addr: 10.0.2.3
[root@nana ~]# systemctl enable --now systemd-networkd unbound
[root@nana ~]# networkctl status eth0
* 2: eth0
                   Link File: /usr/lib/systemd/network/99-default.link
                Network File: /etc/systemd/network/90-eth0-any.network
                       State: routable (configured)
                Online state: online                                         
                        Type: ether
                        Path: pci-0000:00:03.0
                      Driver: pcnet32
           Alternative Names: enp0s3
                              enx08002734317c
            Hardware Address: 08:00:27:34:31:7c
                         MTU: 1500 (min: 68, max: 1500)
                       QDisc: fq_codel
IPv6 Address Generation Mode: eui64
    Number of Queues (Tx/Rx): 1/1
            Auto negotiation: no
                       Speed: 10Mbps
                      Duplex: half
                        Port: tp
                     Address: 10.0.2.15 (DHCPv4 via 10.0.2.2)
                              fd17:625c:f037:2:a00:27ff:fe34:317c
                              fe80::a00:27ff:fe34:317c
                     Gateway: 10.0.2.2
                              fe80::2
                         DNS: 192.168.1.1
                              0.168.1.1
                              10.3.0.1
                              fd17:625c:f037:2::3
           Activation Policy: up
         Required For Online: yes
            DHCPv4 Client ID: IAID:0xe2343f3e/DUID
          DHCPv6 Client DUID: DUID-EN/Vendor:0000ab110c474ff1296cccdd

Jun 30 02:12:12 nana systemd-networkd[818]: eth0: Found matching .network file, based on potentially unpredicta>
Jun 30 02:12:12 nana systemd-networkd[818]: eth0: Configuring with /etc/systemd/network/90-eth0-any.network.
Jun 30 02:12:12 nana systemd-networkd[818]: eth0: Link UP
Jun 30 02:12:12 nana systemd-networkd[818]: eth0: Gained carrier
Jun 30 02:12:12 nana systemd-networkd[818]: eth0: Found matching .network file, based on potentially unpredicta>
Jun 30 02:12:12 nana systemd-networkd[818]: eth0: DHCPv4 address 10.0.2.15/24, gateway 10.0.2.2 acquired from 1>
Jun 30 02:12:14 nana systemd-networkd[818]: eth0: Gained IPv6LL

Прикладные сервисы

Вариант: ограничиться HTTP, распознавать заголовок Host, по получении такого HTTP-запроса подключаться к такому хосту имеющимся способом.

LecturesCMC/LinuxNetwork2026/Six/OpaqueSupplements (последним исправлял пользователь ArsenyMaslennikov 2026-07-07 21:32:36)