Префикс Radvd проходит через RA

Когда на моем маршрутизаторе запущено radvd, мой клиентский компьютер, как все говорят в сети «автоматически», получает адрес IPv6. Можно ли как-нибудь использовать тот же префикс, который опубликован radvd в его RA, и заставить того же клиента Ubuntu действовать как маршрутизатор (запустив radvd) с этим префиксом на каком-то другом интерфейсе? Если да, пожалуйста, объясните, как это сделать.

2
задан 17 December 2018 в 07:57

1 ответ

Нет, Вы не можете. Это не отсутствие проблемы функций, но ограничение спецификации протокола IPv6.

Вот то, почему:

"Автоволшебно" Вы обращаетесь к, Адрес StateLess AutoConfiguration (SLAAC). Спецификация для SLAAC говорит, что работает с сетевой маской на 64 бита (подразумевать, что первые 64 бита (16 шестнадцатеричных символов) адреса должны быть тем же, чтобы адрес рассмотрели в том же блоке и использовали на этом сегменте сети).

По определению маршрутизатор является машиной, которая находится по крайней мере на 2 различных сегментах сети. На самом деле маршрутизатор добирается, это - имя от того, что это направляет трафик между этими двумя сегментами.

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

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

С SLAAC, который происходит в одном интерфейсе Вашей машины Ubuntu, сетевая маска определяется как являющийся 64 битами спецификацией протокола. Нет способа требовать меньшей части того/64 блока сетевой маски и использовать его в другом интерфейсе и сегменте с SLAAC по двум причинам. Во-первых, SLAAC требует сетевой маски на 64 бита. Если необходимо было вырезать меньший блок из блока сетевой маски на 64 бита, меньший блок был бы по его самому характеру не быть блоком сетевой маски на 64 бита, потому что большая сетевая маска означает меньший блок. (Например, блок сетевой маски на 65 битов является половиной размера блока сетевой маски на 64 бита). Во-вторых, все другие машины в сети, которая в настоящее время имеет блок сетевой маски на 64 бита, рекламируемый с SLAAC, ожидают, что весь блок будет непосредственно достижим на том сегменте и не ожидают должными быть проходить Ваш маршрутизатор для достижения части того блока.

Теперь, существует путь вокруг этого, но не Вашей машиной Ubuntu, действующей как маршрутизатор. Можно настроить порты на машине Ubuntu для действия как переключатель, прозрачно проходящий трафик между портами, не изменяя его. При этом Ваша машина получит новый интерфейс, который действует, как будто она была подключена к третьему порту на этом виртуальном коммутаторе. Это позволит Вам получать любую конфигурацию, Вы нуждаетесь (включая SLAAC) к Вашей машине Ubuntu и предоставляете ей доступ к сети, все еще позволяя трафику течь нетронутые между этими двумя физическими интерфейсами на Вашей машине. Это делает его так, чтобы Ваша машина и эти две сети на он был физический интерфейс, все становятся тем же сегментом (потому что Ваша машина делает задание переключателя).

Чтобы сделать это, Вы захотите настроить мост. Вы захотите установить bridge-utils пакет. Вы затем захотите удалить любые адреса/конфигурацию из своего текущего физического интерфейса. Затем Вы захотите сделать:

brctl addbr br0
brctl addif br0 intefacename1
brctl addif br0 intefacename2
ifconfig br0 up
ifconfig intefacename1 up
ifconfig intefacename2 up

и затем добавьте любую конфигурацию, в которой Вы раньше нуждались на физическом интерфейсе к новому интерфейсу br0. Можно хотеть смотреть на https://wiki.debian.org/BridgeNetworkConnections и https://wiki.debian.org/NetworkConfiguration#Bridging для получения дополнительной информации (особенно, как заставить конфигурацию применяться через перезагрузки в/etc/network/interfaces).

2
ответ дан 2 December 2019 в 03:48

Другие вопросы по тегам:

Похожие вопросы: