하나의 물리적 네트워크 카드가 있는 Ubuntu 시스템을 사용하여 내 시스템에 두 개 이상의 시스템이 있는 것처럼 보이게 하고 싶습니다.진짜네트워크는 모두 이 Ubuntu 시스템에 의해 제어됩니다.
예를 들어, 192.168.1.x 네트워크가 있습니다. 내 Ubuntu 컴퓨터의 IP는 192.168.1.10이고 mac 주소는 00:11:22:33:44:55입니다. IP 주소가 192.168.1.11이고 Mac 주소가 55:44:33:22:11인 또 다른 "머신"을 배포하고 싶습니다.
따라서 192.168.1.9에서 로컬 네트워크를 arp 스캔하면 다음이 표시되어야 합니다.
...
192.168.1.10 00:11:22:33:44:55
192.168.1.11 55:44:33:22:11:00
...
두 시스템 모두 실제 네트워크에 있는 다른 실제 시스템의 ping에 응답해야 합니다.아이디어는 192.168.1.9가 .10 및 .11을 갖는 것처럼 보이게 만드는 것입니다.두 개의 별도 기계실제 네트워크에서.
추가 가상 머신이나 Docker 컨테이너를 생성하지 않고 이 "머신"을 생성하기 위한 비교적 간단한 명령 세트를 찾고 있습니다.
도움을 주셔서 미리 감사드립니다!
답변1
주소가 192.168.1.175인 시스템이 있습니다.
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 2c:f0:5d:c9:12:a9 brd ff:ff:ff:ff:ff:ff
altname eno2
altname enp0s31f6
inet 192.168.1.175/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 80184sec preferred_lft 80184sec
inet6 fe80::ed9c:756f:92a:ef21/64 scope link noprefixroute
valid_lft forever preferred_lft forever
주소가 192.168.1.190인 macvlan 인터페이스를 추가하고 해당 인터페이스가 다른 MAC 주소를 가지고 있음을 증명하겠습니다.
네트워크 네임스페이스를 만듭니다.
ip netns add ns0
기본 NIC에 연결된 macvlan 장치를 생성하고 이를 ns0
네임스페이스에 배치합니다.
ip link add macvlan0 netns ns0 link eth0 type macvlan mode bridge
이로 인해 우리는 다음과 같은 결과를 얻게 됩니다.
# ip -n ns0 link show macvlan0
6386: macvlan0@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether c2:f9:01:dd:eb:95 brd ff:ff:ff:ff:ff:ff
새 인터페이스에 주소를 할당합니다.
ip -n ns0 addr add 192.168.1.190/24 dev macvlan0
그리고 인터페이스를 불러옵니다.
ip -n ns0 link set macvlan0 up
네트워크의 다른 시스템에서:
pi@retropie:~ $ sudo arp-scan 192.168.1.175 192.168.1.190
Interface: wlan0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 2 hosts (https://github.com/royhills/arp-scan)
192.168.1.175 2c:f0:5d:c9:12:a9 (Unknown)
192.168.1.190 c2:f9:01:dd:eb:95 (Unknown)
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.5: 2 hosts scanned in 4.221 seconds (0.47 hosts/sec). 2 responded
새 주소로 ping을 보낼 수도 있습니다.
pi@retropie:~ $ ping 192.168.1.190
PING 192.168.1.190 (192.168.1.190) 56(84) bytes of data.
64 bytes from 192.168.1.190: icmp_seq=1 ttl=64 time=25.3 ms
64 bytes from 192.168.1.190: icmp_seq=2 ttl=64 time=13.5 ms
64 bytes from 192.168.1.190: icmp_seq=3 ttl=64 time=10.5 ms
^C
--- 192.168.1.190 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 6ms
rtt min/avg/max/mdev = 10.520/16.424/25.270/6.371 ms