我有一个Linux系统,它有两个以太网接口,eth0和eth1,它们使用在同一个子网上。有时,我看到,即使当其中一个接口断开(电缆断开),Linux继续使用它的IP地址。
例如,如果eth0在插入eth1时断开连接,则可以看到“plugged”命令将eth0报告为默认接口。
~ $ ip ro get 192.168.1.1
192.168.1.1 dev eth0 src 192.168.1.5
因此,scp和ping等工具最终使用了断开连接的接口&失败。
我的问题是,为什么Linux继续使用断开连接的接口?它不应该自动检测和停止使用它们吗?
如果Linux机器中的两个NIC使用外部电缆直接连接,那么是否有可能通过该电缆在这两个NIC之间启动IP连接?
我用IP地址eth2和eth3分别配置了10.10.123.2/24和10.10.123.3/24两个NIC。然后,我从local表中删除了与这两个接口关联的所有规则:
# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
# ip route show table local | grep -E "eth2|eth3
我想用不同的ip创建1000个macvlan。并使用ip rule路由不同的公共ip到多个接口的互联网。
首先创建1000 macvlan:
ip link add link eth0 address %02x:%02x:%02x:%02x:%02x:%02x eth0_%d type macvlan
%02x是mac地址,%d是0-999.
然后使用ifconfig设置每个macvlan不同的公共ip。最后,使用ip规则:
ip route add default via ${router} dev ${interface} src ${ip} table ${interfaceidx}
i
我在openVPN机器上运行pfSense服务器,这台机器也是网络的路由器。这个网络有几个VLAN,其中只有一个是感兴趣的- 10.0.100.0/22。openVPN隧道网络使用10.0.101.0/24,并相应地设置所有规则。在我的例子中,我有机器A (10.0.100.2,linux),机器B (10.0.100.3)运行Windows和机器C (10.0.100.4),也运行linux。当我使用机器D (Windows,外部)建立VPN连接时,我得到了IP 10.0.101.2。
我能做的是:
来自D的Ping/SSH A
来自D的Ping B
来自A的Ping C
来自B的Ping/
我有一个带有一个实数的Linux盒(与虚拟的,即.a相反)。我可以使用的以太网接口(eth0用于其他用途--不能使用它,也不能添加更多的NIC)。说是eth1
我需要通过SNMP来控制一些对象/实体,所以我为每个对象设置了一个虚拟以太网接口,并设置了其适当的MAC地址。我是这样做的(例如vif1):
ip -family inet link add link eth1 name vif1 address <the MAC addr> type macvlan
ip link set vif1 up multicast on
ip route del default dev vif1
因此,如果我想通过SSH连接到网络上的所有设备,使用ARP表确切地知道在哪里连接,我能做什么?
代码应该是这样的:
#!/bin/bash
for a in $([ARP Table here?])
do
ssh user@$a true
echo "Connected to $a"
done
我不知道如何在变量中存储dinamic。另外,我也不确定我是否可以在之后使用这个变量通过ssh进行连接,因为IP不会是int,但更可能是字符串。
编辑:安德鲁让我注意到,我的网络上并不是每个设备都在我的ARP表中,我想知道:
从0开始到当前网络掩码的最大值还是在ARP表