У меня есть соединение 6in4 ipv6 от linux box к брокеру. Я использую gogoc
для установки соединения с брокером и radvd
для объявления маршрута клиентам в сети.
Все это, кажется, работает, проблема в том, что у меня есть машина с Windows 7 в той же сети, и она рекламирует себя как маршрутизатор ipv6. Но это не так.
Это вывод radvdump:
#
# radvd configuration generated by radvdump 1.8.5
# based on Router Advertisement from [snip]:ea2
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag on;
AdvOtherConfigFlag on;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 0;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
AdvLinkMTU 1500;
}; # End of interface definition
#
# radvd configuration generated by radvdump 1.8.5
# based on Router Advertisement from [snip]:1121
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvLinkMTU 1280;
AdvSourceLLAddress on;
prefix [snip]::/64
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition
}; # End of interface definition
И в итоге у меня есть два пути:
$ ip -6 route
[snip]::/64 dev eth0 proto kernel metric 256 expires 86117sec
fe80::/64 dev eth0 proto kernel metric 256
default via [snip]:ea2 dev eth0 proto kernel metric 1024 expires 1492sec
default via [snip]:1121 dev eth0 proto kernel metric 1024 expires 1506sec
Маршрут ea2
ведет к коробке Windows7. На ней не установлен маршрутизатор и нет никаких интерфейсов tun/tap. Я не понимаю, почему она это делает.
Я мог бы отключить на нем ipv6, но я хочу, чтобы он был клиентом, а не маршрутизатором.
Обновлять: Похоже, виновата IP Helper
служба ( ), как будто она остановлена, маршруты не объявляются. Так что теперь мой вопрос звучит более конкретно: «Почему IP Helper объявляет маршруты?».Provides tunnel connectivity using IPv6 transition technologies (6to4, ISATAP, Port Proxy, and Teredo), and IP-HTTPS. If this service is stopped, the computer will not have the enhanced connectivity benefits that these technologies offer.
решение1
Запустите повышенный режим
netsh
и перейдите кinterface ipv6
.Проверьте, есть ли
show route
какие-либо спискиопубликованомаршруты.Если это так, отмените их публикацию с помощью
set route ::/0 "Local Area Connection" publish=no
.
Однако, судя по radvdump
выходным данным, ваш компьютер с Windows не объявляет никаких префиксов, поэтому я не понимаю, зачем Linux добавлять через него маршрут по умолчанию.
Используйте
show interface verbose
для вывода списка сетевых интерфейсов; найдите «Отправляет объявления маршрутизатора» или аналогичные значения.Используется
set interface "Local Area Connection forward=disable advertise=disable
для отключения пересылки IPv6 и объявлений маршрутизатора.
решение2
Вы пробовали указать машине Windows 7, где находится маршрут по умолчанию, или удалить плохой маршрут из маршрутизатора? Если у вас не включен ICS, он должен быть чисто клиентом.