LINUX.ORG.RU

История изменений

Исправление kvv213, (текущая версия) :

Если говорить по логике ipv4(там это проще): вот смотри, у тебя есть сеть 192.168.1.0/24. 192.168.1.1 - шлюз провайдера, 192.168.1.2 - твоя машина. Но в этой сети, теоретически, могут находиться еще компьютеры, так? Поэтому когда снаружи пойдет обращение, например на адрес 192.168.1.10, то этот трафик уйдет именно в саму сеть, а не на твой шлюз.

Варианта добиться получения машиной с адресом 192.168.1.2 трафика для 192.168.1.10 в мире IPv4 всего три:

  1. организовать интерфейс-мост и иметь за одним из членов моста хост с адресом 192.168.1.10;
  2. назначить адрес 192.168.1.10 дополнительным на тот же интерфейс на самой машине;
  3. настроить proxy arp.

В моем понимании на примере IPv4, если мы говорим про наиболее популярную сеть с маршрутизатором и подключением через коммутаторы, то общение пакетами идет на уровне L2. В случае если L3 адреса получены, то пакеты уже не будут бегать через роутер, а будут маршрутизироваться на коммутаторе. В Ethernet чтобы получить пакеты от другой машины, то нужно подключиться к концентратору (где его только нынче найти) и включить неразборчивый режим на сетевой карте и слушать все пакеты, что прибегают на интерфейс, соответственно в драйвере должен быть включен аналогичный режим.

Если у нас есть две сети или два сегмента одной сети, то соединить их можно мостом, который на L2 будет гонять пакеты, включая широковещательные, по наличию получателя (его физического адреса) в том или ином сегменте.

Однако, соединение можно сделать и на L3 при помощи роутера. Если есть маршруты правильные. Если есть определенная иерархия сетей, допустим /48 сеть содержит 65 тысяч /64-х сетей. Эта /48 сеть входит в /32 сеть. В /32 и /48 сетях должны быть гейтвеи. Если пакет, предназначенный любому адресу в /48 сети приходит на /32 сеть, то он должен быть отправлен на гейтвей в /48 сети, а там он уже должен разобраться куда этот пакет конкретно запихнуть, в какую /64-ю сеть его пристроить. Настраивается это маршрутизацией.

Правильна ли моя логика?

Идем далее. Вероятно, что на гейтвее /32 сети может не быть «DHCP6» и все адреса там заводятся руками. Т.е. если я выделяю внутри своей /48 сети еще одну /64 сеть, то гейтвей на /32 просто не знает о ее существовании и по прежнему отправлять пакеты со всеми адресами из моей /48 сети в утиль. Правильно ли понимание проблемы с моей стороны?

Я обратил внимание, что IPv6 адрес у моего VPS прописан как 2a04:5201:2::b8/48 а не как 2a04:5201:2::b8/128 при этом указан шлюз 2a04:5201:2::1. Верно ли это, что весь 2a04:5201:2::/48 диапазон адресов мой?

В этом есть сомнения, либо я не так выделяю адреса как следует, либо происходить что-то не ясное, поскольку добавляют на ens3 дополнительный IPv6 и получаю вот это вот:

ip -6 addr add 2a04:5201:2:22::1/48 dev ens3

ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 185.117.119.101  netmask 255.255.255.0  broadcast 185.117.119.255
        inet6 fe80::5054:ff:feb6:7c08  prefixlen 64  scopeid 0x20<link>
        inet6 2a04:5201:2::b8  prefixlen 48  scopeid 0x0<global>
        inet6 2a04:5201:2:22::1  prefixlen 48  scopeid 0x0<global>
        ether 52:54:00:b6:7c:08  txqueuelen 1000  (Ethernet)
        RX packets 9850333  bytes 632411861 (632.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52593  bytes 43117002 (43.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ping -6 -I ens3 ya.ru
PING ya.ru(ya.ru (2a02:6b8::2:242)) from 2a04:5201:2:22::1 ens3: 56 data bytes
From 2a04:5201:2:22::1 icmp_seq=1 Destination unreachable: Address unreachable
From 2a04:5201:2:22::1 icmp_seq=2 Destination unreachable: Address unreachable

traceroute6 ya.ru
traceroute to ya.ru (2a02:6b8::2:242) from 2a04:5201:2:22::1, 30 hops max, 24 byte packets
 1  2a04:5201:2:22::1 (2a04:5201:2:22::1)  60.1584 ms !H  3074.6161 ms !H  3071.8484 ms !H

Т.е. если у меня появляется дополнительный IPv6 адрес на интерфейсе, у меня вообще отваливается IPv6 выход внаружу. Видимо по-умолчанию идет все от нового адреса, т.к. если использовать параметр -B (Use sticky address) то пинги возобновляются.

Пример конфигурации можно посмотреть например тут.

Буду изучать, спасибо.

Исходная версия kvv213, :

Если говорить по логике ipv4(там это проще): вот смотри, у тебя есть сеть 192.168.1.0/24. 192.168.1.1 - шлюз провайдера, 192.168.1.2 - твоя машина. Но в этой сети, теоретически, могут находиться еще компьютеры, так? Поэтому когда снаружи пойдет обращение, например на адрес 192.168.1.10, то этот трафик уйдет именно в саму сеть, а не на твой шлюз.

Варианта добиться получения машиной с адресом 192.168.1.2 трафика для 192.168.1.10 в мире IPv4 всего три:

  1. организовать интерфейс-мост и иметь за одним из членов моста хост с адресом 192.168.1.10;
  2. назначить адрес 192.168.1.10 дополнительным на тот же интерфейс на самой машине;
  3. настроить proxy arp.

В моем понимании на примере IPv4, если мы говорим про наиболее популярную сеть с маршрутизатором и подключением через коммутаторы, то общение пакетами идет на уровне L2. В случае если L3 адреса получены, то пакеты уже не будут бегать через роутер, а будут маршрутизироваться на коммутаторе. В Ethernet чтобы получить пакеты от другой машины, то нужно подключиться к концентратору (где его только нынче найти) и включить неразборчивый режим на сетевой карте и слушать все пакеты, что прибегают на интерфейс, соответственно в драйвере должен быть включен аналогичный режим.

Если у нас есть две сети или два сегмента одной сети, то соединить их можно мостом, который на L2 будет гонять пакеты, включая широковещательные, по наличию получателя (его физического адреса) в том или ином сегменте.

Однако, соединение можно сделать и на L3 при помощи роутера. Если есть маршруты правильные. Если есть определенная иерархия сетей, допустим /48 сеть содержит 65 тысяч /64-х сетей. Эта /48 сеть входит в /32 сеть. В /32 и /48 сетях должны быть гейтвеи. Если пакет, предназначенный любому адресу в /48 сети приходит на /32 сеть, то он должен быть отправлен на гейтвей в /48 сети, а там он уже должен разобраться куда этот пакет конкретно запихнуть, в какую /64-ю сеть его пристроить. Настраивается это маршрутизацией.

Правильна ли моя логика?

Идем далее. Вероятно, что на гейтвее /32 сети может не быть «DHCP6» и все адреса там заводятся руками. Т.е. если я выделяю внутри своей /48 сети еще одну /64 сеть, то гейтвей на /32 просто не знает о ее существовании и по прежнему отправлять пакеты со всеми адресами из моей /48 сети в утиль. Правильно ли понимание проблемы с моей стороны?

Я обратил внимание, что IPv6 адрес у моего VPS прописан как 2a04:5201:2::b8/48 а не как 2a04:5201:2::b8/128 при этом указан шлюз 2a04:5201:2::1. Верно ли это, что весь 2a04:5201:2::/48 диапазон адресов мой?

В этом есть сомнения, либо я не так выделяю адреса как следует, либо происходить что-то не ясное, поскольку добавляют на ens3 дополнительный IPv6 и получаю вот это вот:

ip -6 addr add 2a04:5201:2:22::1/48 dev ens3

ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 185.117.119.101  netmask 255.255.255.0  broadcast 185.117.119.255
        inet6 fe80::5054:ff:feb6:7c08  prefixlen 64  scopeid 0x20<link>
        inet6 2a04:5201:2::b8  prefixlen 48  scopeid 0x0<global>
        inet6 2a04:5201:2:22::1  prefixlen 48  scopeid 0x0<global>
        ether 52:54:00:b6:7c:08  txqueuelen 1000  (Ethernet)
        RX packets 9850333  bytes 632411861 (632.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52593  bytes 43117002 (43.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ping -6 -I ens3 ya.ru
PING ya.ru(ya.ru (2a02:6b8::2:242)) from 2a04:5201:2:22::1 ens3: 56 data bytes
From 2a04:5201:2:22::1 icmp_seq=1 Destination unreachable: Address unreachable
From 2a04:5201:2:22::1 icmp_seq=2 Destination unreachable: Address unreachable

traceroute6 ya.ru
traceroute to ya.ru (2a02:6b8::2:242) from 2a04:5201:2:22::1, 30 hops max, 24 byte packets
 1  2a04:5201:2:22::1 (2a04:5201:2:22::1)  60.1584 ms !H  3074.6161 ms !H  3071.8484 ms !H

Т.е. если у меня появляется дополнительный IPv6 адрес на интерфейсе, у меня вообще отваливается IPv6 выход внаружу. Видимо по-умолчанию идет все от нового адреса, т.к. если использовать параметр -B (Use sticky address) то пинги возобновляются.

Пример конфигурации можно посмотреть например тут. Буду изучать, спасибо.