AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 751020
Accepted
Halfgaar
Halfgaar
Asked: 2016-01-23 03:29:38 +0800 CST2016-01-23 03:29:38 +0800 CST 2016-01-23 03:29:38 +0800 CST

一些 IPv6 主机将所有流量(即使在同一子网中)发送到路由器

  • 772

我注意到我们 LAN 的 IPv6 路由问题。大多数客户端 PC 都是 LTSP 瘦客户端。他们通过 SLAAC 获得一个地址。Tracepath6到同一子网上的主机显示所有流量都是直接的。但是,我正在使用的笔记本电脑(Linux Mint 17,标准网络管理器)为自己提供了两个 IPv6 地址,并设置了所有流量首先进入路由器的路由,包括同一子网中的流量:

tracepath6 xxxx:1b0:5256:1337:10:50:0:8
 1?: [LOCALHOST]                        0.183ms pmtu 1500
 1:  xxxx:1b0:5256:1337:10:50:0:1                          1.217ms

问题:

1) 为什么有些主机得到一个地址而有些主机得到更多地址?我经常看到这种情况发生。

2)为什么这台机器选择通过路由器路由所有流量?

路由器是dnsmasq,确实只有SLAAC:

Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: IPv6 router advertisement enabled
Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: DHCP, IP range 10.102.20.1 -- 10.102.20.254, lease time 12h
Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: DHCP, IP range 10.101.20.1 -- 10.101.20.254, lease time 12h
Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: DHCP, IP range 10.100.0.100 -- 10.100.0.254, lease time 12h
Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: DHCP, IP range 10.50.20.1 -- 10.50.20.254, lease time 12h
Jan 22 11:34:36 gatekeeper dnsmasq-dhcp[9796]: SLAAC on xxxx:1b0:5256:1337:: prefix valid 2h

这是我的 eth0:

eth0      Link encap:Ethernet  HWaddr 18:67:b0:34:2d:dd
          inet addr:10.50.20.158  Bcast:10.50.255.255  Mask:255.255.0.0
          inet6 addr: fe80::1a67:b0ff:fe34:2ddd/64 Scope:Link
          inet6 addr: xxxx:1b0:5256:1337:2532:eb1a:1151:d2f0/64 Scope:Global
          inet6 addr: xxxx:1b0:5256:1337:1a67:b0ff:fe34:2ddd/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12094 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17250 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2848542 (2.8 MB)  TX bytes:3002689 (3.0 MB)

这些是 IPv4 路由:

> route -n 
Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.50.0.1       0.0.0.0         UG    0      0        0 eth0
10.50.0.0       0.0.0.0         255.255.0.0     U     1      0        0 eth0

这些是 IPv6 路由:

Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 1     0 eth0
::/0                           fe80::213:3bff:fe0f:c02c   UG   1   0     0 eth0
::/0                           fe80::213:3bff:fe0f:c02c   UGDAe 1024 0     0 eth0
::/0                           ::                         !n   -1  1   261 lo
::1/128                        ::                         Un   0   3   243 lo
xxxx:1b0:5256:1337:1a67:b0ff:fe34:2ddd/128 ::                         Un   0   1     0 lo
xxxx:1b0:5256:1337:2532:eb1a:1151:d2f0/128 ::                         Un   0   1    86 lo
fe80::1a67:b0ff:fe34:2ddd/128  ::                         Un   0   1   178 lo
ff00::/8                       ::                         U    256 1     0 eth0
::/0                           ::                         !n   -1  1   261 lo

直接到达其他主机的主机上不存在以下行:

::/0                           fe80::213:3bff:fe0f:c02c   UG   1   2     0 eth0

fe80::213:3bff:fe0f:c02c确实是 LAN 端路由器的链路本地地址。

编辑:我看到的行为可能是随机的。我多次重新启动其中一个瘦客户端,tracepath6 有时会显示通过路由器的流量,有时会直接流向主机。似乎每次重新启动都不同。路由表每次都完全相同,如果我启用/禁用 dnsmasqoff-link选项也是如此。

Edit2:例如,IPv4 始终有一条路由表明,对于您自己的子网,它应该只通过 eth0 发送。因此,当我在 IPv6 中添加此路由时,流量不再通过路由器:

/sbin/route -A inet6 add xxxx:1b0:5256:1337::/64 dev eth0

那么,为什么xxxx:1b0:5256:1337::/64默认不包括在内(在此处的任何机器上)?不应该存在一条告诉内核对于当前子网,只需通过以太网(或 wlan,等等)发送出去的路由吗?

Edit3:我刚刚查看了 tcpdump+wireshark,发现L路由器广告中未设置标志 On-Link,尽管未设置离线链接:

dhcp-range=xxxx:1b0:5256:1337::, ra-only, inifite
ipv6
  • 2 2 个回答
  • 967 Views

2 个回答

  • Voted
  1. Sander Steffann
    2016-01-23T04:06:35+08:002016-01-23T04:06:35+08:00

    1) 为什么有些主机得到一个地址而有些主机得到更多地址?我经常看到这种情况发生。

    IPv6 主机始终获得链路本地地址。其他地址取决于 RA 中的标志和主机设置的组合。RA 可以向主机发出信号,表明 DHCPv6 服务器可能会分发地址,主机可以根据这些地址进行操作。如果 RA 包含允许自动配置的前缀并且主机没有禁用自动配置,则使用 SLAAC。

    最初的规范说 interface-id(IPv6 地址的最后 64 位)是从链路层地址(通常是 MAC 地址)构造的。但这样就可以通过互联网跟踪设备。想象一个经常联系的服务 Google 或 Dropbox:无论您将笔记本电脑或手机连接到何种网络,子网都会发生变化,但 interface-id 将始终保持不变。因此,如今操作系统提供了隐私扩展。

    隐私扩展使您的 interface-id 定期更改。确切的计时器取决于实现,但我们假设它每小时更改一次。您的设备每小时都会为自己配置一个新的 IPv6 地址。旧地址已被弃用,一旦您的软件停止使用它们,它们就会被删除。这样你就可以得到多个地址。

    另外:当 RA 包含多个设置了自动配置标志的前缀时,您的设备将在每个前缀中配置地址。

    2)为什么这台机器选择通过路由器路由所有流量?

    这通常取决于 RA 前缀中的 On-Link 标志。如果设置了 on-link 标志,则设备可以创建/64到接口的路由。如果未设置该标志,则设备无法知道前缀中的其他地址是否处于链接状态,并将所有这些数据包发送到默认网关。

    当然,您的设备始终可以选择(有意或由于错误)忽略 on-link 标志并将所有内容发送到默认网关。

    • 2
  2. Best Answer
    Halfgaar
    2016-01-23T07:04:05+08:002016-01-23T07:04:05+08:00

    显然,DNSMasq 没有设置 on-link 是 2.63 中修复的错误,对于 Debian 7 来说太新了。无论如何都需要升级到 Debian 8,所以今天就这样做。

    编辑,升级完成。DNSmasq 配置行更改为:

    dhcp-range=::,ra-only,constructor:eth1,infinite
    

    现在添加了本地子网的路由。

    • 2

相关问题

  • IPv6 有哪些好的 IP 地址管理解决方案?[关闭]

  • 连接到 NAT 后启用 Teredo 的服务器

  • IPv4管理员的IPv6介绍[关闭]

  • 什么是支持 IPv6 胶水的又好又便宜的注册商?

  • 使用多少 IP V6 寻址?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve