linux-networking – Linux:如何在一个linux机器中模拟几个用于网络测试的IP和MAC地址

前端之家收集整理的这篇文章主要介绍了linux-networking – Linux:如何在一个linux机器中模拟几个用于网络测试的IP和MAC地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想测试一个带有一个 linux-Box的网络,它应该有100个不同的IP地址,每个IP地址都有一个自己的MAC,在与其他设备通信时应该用作源MAC地址.

我编写了这个脚本:

#!/bin/bash
for i in `seq 0 10 `; do 
    hex=`perl -e "printf ('%02X',$i)"`
    echo tap$i / $hex
    ip link add link eth0 address 00:00:13:37:00:$hex eth0-$i type macvlan
done
sleep 2
for i in `seq 0 10 `; do
    echo eth0-$i ip
    while ! ifconfig eth0-$i &>/dev/null; do
        sleep 1
    done
    ii=`expr $i + 100`
    ip addr add 10.254.251.$ii/24 dev eth0-$i
    ifconfig eth0-$i up
done

然后我用自己的IP和自己的MAC地址获取我的设备.

但是,当我从外面的任何一个IP地址的ARPs到linux主机通过eth0与我的所有虚拟地址多次回答时,另一个设备然后在其ARP表中插入最后一个.

23:43:22.764080 00:24:43:8f:e5:39 > ff:ff:ff:ff:ff:ff,ethertype ARP (0x0806),length 60: Request who-has 10.254.251.100 tell 10.254.251.1,length 46
23:43:22.764340 b8:27:eb:b3:e1:36 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at b8:27:eb:b3:e1:36,length 28
23:43:22.764442 00:00:13:37:00:00 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:00,length 28
23:43:22.764642 00:00:13:37:00:01 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:01,length 28
23:43:22.764733 00:00:13:37:00:02 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:02,length 28
23:43:22.764929 00:00:13:37:00:03 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:03,length 28
23:43:22.765071 00:00:13:37:00:04 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:04,length 28
23:43:22.765208 00:00:13:37:00:05 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:05,length 28
23:43:22.765342 00:00:13:37:00:06 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:06,length 28
23:43:22.765476 00:00:13:37:00:07 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:07,length 28
23:43:22.765560 00:00:13:37:00:08 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:08,length 28
23:43:22.765713 00:00:13:37:00:09 > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:09,length 28
23:43:22.765845 00:00:13:37:00:0a > 00:24:43:8f:e5:39,length 42: Reply 10.254.251.100 is-at 00:00:13:37:00:0a,length 28
23:43:22.767375 00:24:43:8f:e5:39 > b8:27:eb:b3:e1:36,ethertype IPv4 (0x0800),length 98: 10.254.251.1 > 10.254.251.100: ICMP echo request,id 2984,seq 0,length 64
23:43:22.767561 b8:27:eb:b3:e1:36 > 00:24:43:8f:e5:39,length 98: 10.254.251.100 > 10.254.251.1: ICMP echo reply,length 64

谁有任何想法让我如何设置?我的macvlan错误的方式?

使用linux brige我可以进行类似的设置,但是主机会使用传出接口的物理MAC来回复所有IP.

解决方法

Have a look at arp_filter and arp_ignore.

/ proc / sys / net / ipv4 / conf / * / arp_filter,/ proc / sys / net / ipv4 / conf / * / arp_ignore

猜你在找的Linux相关文章