Команды ниже должны быть довольно понятны. Обратите внимание, что маршрут, по которому я получаю сбой, получен RA и срок его действия очень мал (флаг e
в UDAe
).
@vm:~$ ip -6 route
2001:4860:4001:800::1002 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1003 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1005 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:803::100e via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
fd00:ffff:ffff:fff1::/64 dev eth1 proto kernel metric 256 expires 2592300sec
fe80::/64 dev eth1 proto kernel metric 256
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto kernel metric 1024 expires 1776sec
@vm:~$
@vm:~$
@vm:~$
@vm:~$ sudo route -6 delete default gw fe80::20c:29ff:fe87:f9e7
@vm:~$ ip -6 route
2001:4860:4001:800::1002 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1003 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:800::1005 via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
2001:4860:4001:803::100e via fe80::20c:29ff:fe87:f9e7 dev eth1 proto static metric 1024
fd00:ffff:ffff:fff1::/64 dev eth1 proto kernel metric 256 expires 2592279sec
fe80::/64 dev eth1 proto kernel metric 256
default via fe80::20c:29ff:fe87:f9e7 dev eth1 proto kernel metric 1024 expires 1755sec
@vm:~$
@vm:~$
@vm:~$ sudo route -6 delete ::/0 gw fe80::20c:29ff:fe87:f9e7 dev eth1
SIOCDELRT: No such process
@vm:~$
@vm:~$
@vm:~$ route -n6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2001:4860:4001:800::1002/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:800::1003/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:800::1005/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
2001:4860:4001:803::100e/128 fe80::20c:29ff:fe87:f9e7 UG 1024 0 0 eth1
fd00:ffff:ffff:fff1::/64 :: UAe 256 0 0 eth1
fe80::/64 :: U 256 0 0 eth1
::/0 fe80::20c:29ff:fe87:f9e7 UGDAe 1024 0 0 eth1
::/0 :: !n -1 1 349 lo
::1/128 :: Un 0 1 3 lo
fd00:ffff:ffff:fff1:a00:27ff:fe7f:7245/128 :: Un 0 1 0 lo
fd00:ffff:ffff:fff1:fce8:ce07:b9ea:389f/128 :: Un 0 1 0 lo
fe80::a00:27ff:fe7f:7245/128 :: Un 0 1 0 lo
ff00::/8 :: U 256 0 0 eth1
::/0 :: !n -1 1 349 lo
@vm:~$
ОБНОВЛЕНИЕ: Другой вопрос, что такое использование локального адреса ссылки в качестве маршрута по умолчанию?
Маршрут, который вы пытаетесь удалить, похож на маршрут, который был автоматически добавлен ядром в ответ на объявление маршрутизатора (RA). Имейте в виду, что если вы удалите его, то он, вероятно, вернется сам по себе в течение 5 минут, когда маршрутизатор отправит другое объявление, как это обычно происходит периодически. Если вы не хотите, чтобы ваша машина прослушивала рекламу маршрутизатора, то вам, вероятно, нужно сделать следующее:
echo 0 >/proc/sys/net/ipv6/conf/eth1/accept_ra
Если вы это сделаете, вам даже не придется беспокоиться об удалении его вручную: исчезнет в течение нескольких минут, когда он истечет естественным образом.
Тем не менее, если вы хотите, вы можете удалить его вручную. Просто похоже, что команда route
не в состоянии это сделать. Вместо этого используйте команду ip
:
ip route del ::/0 via fe80::20c:29ff:fe87:f9e7 dev eth1
На самом деле, если вы работаете только под Linux, я рекомендую всегда использовать команду ip
в качестве современной замены для всех . ] из следующих команд: route
, ifconfig
и netstat
. Его синтаксис гораздо проще обрабатывать, чем любую из этих других команд, он объединяет их все вместе, и есть функции (такие как ip rule
и ip tunnel
), которые доступны только через него.