У меня проблема: существует непредвиденный путь маршрутизации между виртуальными сетевыми устройствами.
Давайте создадим две независимые пары устройств veth-peer:
$ sudo ip link add veth0 type veth имя однорангового узла peer0
$ sudo ip link add veth1 type veth имя однорангового узла peer1
Назначьте адреса устройствам peerX:
$ sudo IP-адрес добавить ab:: dev peer0
$ sudo ip addr добавить cd:: dev peer1
Настройте все устройства:
$ sudo ip link set dev veth0 up
$ sudo ip link set dev veth1 up
$ sudo ip link set dev peer1 up
$ sudo ip link set dev peer0 up
Проверить устройства:
$ ip а
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
инет 127.0.0.1/8 область хоста lo
valid_lft навсегда
inet6 :: 1/128 узел области видимости
valid_lft навсегда
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 02:82:b2:df:b0:58 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 область глобальная динамическая enp0s3
valid_lft 84429 сек. selected_lft 84 429 сек.
inet6 fe80::82:b2ff:fedf:b058/64 ссылка на область действия
valid_lft навсегда
3: peer0@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
ссылка/эфир 6e:8d:c0:7c:02:9c brd ff:ff:ff:ff:ff:ff
inet6 ab::/128 глобальная область видимости
valid_lft навсегда
ссылка на область inet6 fe80::6c8d:c0ff:fe7c:29c/64
valid_lft навсегда
4: veth0@peer0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
ссылка/эфир 4e:43:26:75:10:11 брд ff:ff:ff:ff:ff:ff
ссылка на область inet6 fe80::4c43:26ff:fe75:1011/64
valid_lft навсегда
5: peer1@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
ссылка/эфир ea:8c:82:e6:2e:a9 brd ff:ff:ff:ff:ff:ff
inet6 cd::/128 глобальная область видимости
valid_lft навсегда
ссылка на область inet6 fe80::e88c:82ff:fee6:2ea9/64
valid_lft навсегда
6: veth1@peer1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
ссылка/эфир da:5a:68:b1:e8:43 brd ff:ff:ff:ff:ff:ff
inet6 fe80::d85a:68ff:feb1:e843/64 ссылка на область действия
valid_lft навсегда
и маршруты:
$ ip р
по умолчанию через 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 метрика 100
10.0.2.0/24 dev enp0s3 ссылка на область действия ядра proto src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 метрика 100
Теперь слушайте peer0 на UDP-порту 2000:
$ nc -u -6 -l аб:: 2000
И отправить пакет через peer1:
$ echo -n abc nc -u -6 -s cd::ab::2000
И слушаю нк
отпечатки азбука
! Но Почему? пир0
и одноранговый узел1
никак не связаны. Если я правильно понял, слушаю нк
должен привязываться к пир0
и отправка нк
должен привязываться к одноранговый узел1
.