在多个 IPv4 地址的情况下选择的源地址

在多个 IPv4 地址的情况下选择的源地址

我配置了以下四个 IPv4 地址作为eth0接口:

# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:41:54:01:93 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.1/24 scope global eth0
    inet 192.168.2.2/30 scope global eth0
    inet 10.10.10.128/24 scope global secondary eth0
    inet 10.10.10.127/24 scope global secondary eth0
# 

现在,如果我从 IP 地址 10.10.11.1 将流量发送到这些地址中的任何一个(10.10.10.1、192.168.2.2、10.10.10.128 或 10.10.10.127),那么尽管我已将源 IP 指定为 10.10.10.127 :

# ip route show match 10.10.11.1
default via 192.168.2.1 dev eth0  src 10.10.10.127 
# 

..我的机器发送具有与用作目标IP相同的源IP的数据包,例如,如果我ping 10.10.10.128 source 10.10.11.1在远程机器中执行,则我的机器发送源地址为10.10.10.128的回复:

16:11:02.478607 00:19:e2:9e:ec:00 > 00:16:41:54:01:93, ethertype IPv4 (0x0800), length 114: 10.10.11.1 > 10.10.10.128: ICMP echo request, id 34, seq 4, length 80
16:11:02.478616 00:16:41:54:01:93 > 00:19:e2:9e:ec:00, ethertype IPv4 (0x0800), length 114: 10.10.10.128 > 10.10.11.1: ICMP echo reply, id 34, seq 4, length 80

src路由表中指定的地址在什么情况下会产生影响?

答案1

系统始终使用流量发送到的地址来响应流量。

如果您 p​​ing 10.10.10.128,然后收到来自 的响应流量10.10.10.127,您的系统将看到其他流量并丢弃它。您的系统不知道谁10.10.10.127是谁,也不知道为什么要尝试与您交谈。

10.10.10.127但是,如果同时具有和的系统10.10.10.128尝试发起与另一台主机的通信,则它将使用路由规则来确定适当的源地址。

相关内容