Dan*_*Dan 10 networking ubuntu route interface amazon-web-services
假设我有一台机器在不同的子网上有两个网络适配器,eth0(10.0.100.5) 和eth1(10.0.200.5)。假设两个子网都有到 Internet(通过它们自己的 NAT)和到本地网络的其余部分(通过它们自己的交换机)的路由:
AWS VPC 环境,其他运行 Ubuntu 12.04 的机器,不知道我试图影响的机器正在运行(因为我无法登录)。
说明:
/24sHrv*_*jar 10
子网由网络和掩码定义,例如
网络:10.0.100.5 掩码:/8
这意味着您的子网是:10.0.100.5/8
基本上 10.xxx.xxx.xxx 系列的任何有效 IP 都属于这个子网。只能使用一个接口访问该子网中的主机。所以在你的情况下它是 eth0 或 eth1 。其他接口可以在同一子网中拥有 IP,但无法正常工作。
如果您遇到与 eth0 和 eth1 连接到同一网络且 IP 位于同一子网上的情况,则会发生以下情况。
现在只有一个接口有路由(假设它是eth0),它说to access subnet 10.0.100.0/8use eth0。所以离开这个接口的数据包会有源地址10.0.100.5
!注意 - 10.0.100.5/8 和 10.0.200.5/8 是同一个子网(因为掩码掩码最后 3 个八位字节,我们也可以写成 10.0.0.0/8)
所以现在考虑我们在这个子网上有一个主机,它试图与10.0.200.5
进入系统的数据包通信eth1但无法返回,eth1因为eth0只有一个具有到网络的路由10.0.0.0/8并且来自 eth0 的响应具有不同的 IP;因此,发起与 10.0.200.5 的连接的人将无法理解来自其他来源的响应。
编辑
要确定将使用哪个接口,您需要查看路由表。由于问题不包含路由表,我将尝试用以下路由表进行解释
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
Run Code Online (Sandbox Code Playgroud)
替代路由表输出
$ ip route show
default via 192.168.0.1 dev wlan0 proto static
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
Run Code Online (Sandbox Code Playgroud)
所以我们在上面的例子中有 2 个接口。
现在路由表告诉我们什么;逐行解释,自下而上:
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
要访问子网中的主机,请192.168.0.0/24使用 interfacewlan0和 src IP192.168.0.14
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
要访问子网中的主机,请10.0.0.0/24使用 interfaceeth0和 src IP10.0.0.5
default via 192.168.0.1 dev wlan0 proto static
要访问上述规则未涵盖的任何其他主机,请使用default路由,使用接口wlan0和网关可以访问其他网络是192.168.0.1
| 归档时间: |
|
| 查看次数: |
6565 次 |
| 最近记录: |