История изменений
Исправление 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 всего три:
- организовать интерфейс-мост и иметь за одним из членов моста хост с адресом 192.168.1.10;
- назначить адрес 192.168.1.10 дополнительным на тот же интерфейс на самой машине;
- настроить 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 всего три:
- организовать интерфейс-мост и иметь за одним из членов моста хост с адресом 192.168.1.10;
- назначить адрес 192.168.1.10 дополнительным на тот же интерфейс на самой машине;
- настроить 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) то пинги возобновляются.
Пример конфигурации можно посмотреть например тут. Буду изучать, спасибо.