我已经遇到过这个问题并弄清楚了它的原因。基本上问题是 GNS3 上的虚拟设备无法 ping 物理主机,物理主机也无法 ping GNS3 上的虚拟设备。原因是 GNS3 虚拟设备和主机使用相同的 MAC 地址。
现在,我打算让 GNS3 虚拟设备能够 ping 物理主机,反之亦然。有人知道怎么做吗?有可能做到bridges
吗?如果是这样,我怎样才能实现桥梁来实现我的目标?非常感谢一步一步的答案。
我已经遇到过这个问题并弄清楚了它的原因。基本上问题是 GNS3 上的虚拟设备无法 ping 物理主机,物理主机也无法 ping GNS3 上的虚拟设备。原因是 GNS3 虚拟设备和主机使用相同的 MAC 地址。
现在,我打算让 GNS3 虚拟设备能够 ping 物理主机,反之亦然。有人知道怎么做吗?有可能做到bridges
吗?如果是这样,我怎样才能实现桥梁来实现我的目标?非常感谢一步一步的答案。
我认为桥梁适用于此。1. 在您的窗口系统中创建一个环回接口。2、在GNS3中,选择一个云连接回环接口,这样虚拟设备(如路由器)就可以ping通你自己的系统了。
我在 Ubuntu 17.10 上。我做的第一件事是安装openvswitch
:
$ sudo apt install openvswitch-switch
然后,我按照本教程的前 11 分钟进行操作。
在执行教程步骤之前,我的 IP 地址是:
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global dynamic enp2s0f2
valid_lft 81401sec preferred_lft 81401sec
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
添加mybridge
:
$ sudo ovs-vsctl add-br mybridge
检查是否mybridge
添加:
$ sudo ovs-vsctl show
b6806445-d242-4102-9a58-7516aee68916
Bridge mybridge
Port mybridge
Interface mybridge
type: internal
ovs_version: "2.8.1"
再检查一遍:
$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global dynamic enp2s0f2
valid_lft 81023sec preferred_lft 81023sec
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether f6:d4:f3:64:16:42 brd ff:ff:ff:ff:ff:ff
调出mybridge
:
$ sudo ip link set mybridge up
或者你可以用 deprecated 来做老派ifconfig
:
$ sudo ifconfig mybridge up
查看:
$ sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global dynamic enp2s0f2
valid_lft 80659sec preferred_lft 80659sec
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether f6:d4:f3:64:16:42 brd ff:ff:ff:ff:ff:ff
inet6 fe80::f4d4:f3ff:fe64:1642/64 scope link
valid_lft forever preferred_lft forever
将端口添加mybridge
到enp2s0f2
:
$ sudo ovs-vsctl add-port mybridge enp2s0f2
查看:
$ sudo ovs-vsctl show
b6806445-d242-4102-9a58-7516aee68916
Bridge mybridge
Port "enp2s0f2"
Interface "enp2s0f2"
Port mybridge
Interface mybridge
type: internal
ovs_version: "2.8.1"
尝试到ping
外面的世界,不可能:
$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
From 10.10.1.122 icmp_seq=1 Destination Host Unreachable
From 10.10.1.122 icmp_seq=2 Destination Host Unreachable
From 10.10.1.122 icmp_seq=3 Destination Host Unreachable
From 10.10.1.122 icmp_seq=4 Destination Host Unreachable
^C
--- 1.1.1.1 ping statistics ---
5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4045ms
pipe 3
删除以前的 IP 地址enp2s0f2
:
$ sudo ip address del 10.10.1.122/16 dev enp2s0f2
或者你可以用 deprecated 来做老派ifconfig
:
$ sudo ifconfig enp2s0f2 0
查看:
$ sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::f4d4:f3ff:fe64:1642/64 scope link
valid_lft forever preferred_lft forever
获取 IP 地址mybridge
:
$ sudo dhclient mybridge
查看:
$ sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global mybridge
valid_lft forever preferred_lft forever
inet6 fe80::f4d4:f3ff:fe64:1642/64 scope link
valid_lft forever preferred_lft forever
检查路由,应该是通过mybridge
接口:
$ sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.10.12.12 0.0.0.0 UG 0 0 0 mybridge
10.10.0.0 0.0.0.0 255.255.0.0 U 0 0 0 mybridge
ping
现在对外界来说是可能的:
$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=50 time=89.9 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=50 time=95.2 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=50 time=82.3 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=50 time=93.3 ms
^C
--- 1.1.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 82.323/90.211/95.221/4.946 ms
也可以ping
通过名称:
$ ping google.com
PING google.com (172.217.16.206) 56(84) bytes of data.
64 bytes from fra16s08-in-f14.1e100.net (172.217.16.206): icmp_seq=1 ttl=47 time=117 ms
64 bytes from fra16s08-in-f14.1e100.net (172.217.16.206): icmp_seq=2 ttl=47 time=110 ms
64 bytes from fra16s08-in-f14.1e100.net (172.217.16.206): icmp_seq=3 ttl=47 time=115 ms
64 bytes from fra16s08-in-f14.1e100.net (172.217.16.206): icmp_seq=4 ttl=47 time=114 ms
64 bytes from fra16s08-in-f14.1e100.net (172.217.16.206): icmp_seq=5 ttl=47 time=113 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 110.344/114.344/117.319/2.308 ms
添加一个tap
以供稍后在 GNS3 中使用:
$ sudo ip tuntap add mode tap vport1
查看:
$ sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global mybridge
valid_lft forever preferred_lft forever
inet6 fe80::f4d4:f3ff:fe64:1642/64 scope link
valid_lft forever preferred_lft forever
6: vport1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 12:85:60:b7:d1:3e brd ff:ff:ff:ff:ff:ff
提出vport1
:
$ sudo ip link set vport1 up
或者用 deprecated 做老派ifconfig
:
$ sudo ifconfig vport1 up
查看:
$ sudo ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet6 fe80::f39e:90d0:970:b350/64 scope link
valid_lft forever preferred_lft forever
3: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 94:e9:79:2a:34:23 brd ff:ff:ff:ff:ff:ff
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether ae:71:01:fd:5e:0f brd ff:ff:ff:ff:ff:ff
5: mybridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 70:4d:7b:3a:6e:2c brd ff:ff:ff:ff:ff:ff
inet 10.10.1.122/16 brd 10.10.255.255 scope global mybridge
valid_lft forever preferred_lft forever
inet6 fe80::f4d4:f3ff:fe64:1642/64 scope link
valid_lft forever preferred_lft forever
6: vport1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 12:85:60:b7:d1:3e brd ff:ff:ff:ff:ff:ff
添加vport1
到mybridge
:
$ sudo ovs-vsctl add-port mybridge vport1
查看:
$ sudo ovs-vsctl show
b6806445-d242-4102-9a58-7516aee68916
Bridge mybridge
Port "enp2s0f2"
Interface "enp2s0f2"
Port mybridge
Interface mybridge
type: internal
Port "vport1"
Interface "vport1"
ovs_version: "2.8.1"
现在在 GNS3 拓扑上:
用于vport1
配置Cloud-1
:
现在可以从 GNS3 路由器内 ping 物理主机:
R1#show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 10.10.1.183 YES DHCP up up
FastEthernet0/1 172.31.0.1 YES NVRAM up up
NVI0 unassigned NO unset up up
R1#
R1#
R1#ping 10.10.1.122
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.1.122, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/10/16 ms
也可以从 GNS3 的虚拟 PC 中 ping 物理主机:
PC-1> show ip
NAME : PC-1[1]
IP/MASK : 172.31.0.2/24
GATEWAY : 172.31.0.1
DNS : 1.1.1.1
DHCP SERVER : 172.31.0.1
DHCP LEASE : 86135, 86400/43200/75600
MAC : 00:50:79:66:68:00
LPORT : 10010
RHOST:PORT : 127.0.0.1:10011
MTU: : 1500
PC-1> ping 10.10.1.122
84 bytes from 10.10.1.122 icmp_seq=1 ttl=63 time=20.278 ms
84 bytes from 10.10.1.122 icmp_seq=2 ttl=63 time=20.494 ms
84 bytes from 10.10.1.122 icmp_seq=3 ttl=63 time=19.957 ms
84 bytes from 10.10.1.122 icmp_seq=4 ttl=63 time=20.254 ms
84 bytes from 10.10.1.122 icmp_seq=5 ttl=63 time=14.312 ms
PC-1>
我的物理主机也可以 ping GNS3 上的虚拟路由器:
$ ping 10.10.1.183
PING 10.10.1.183 (10.10.1.183) 56(84) bytes of data.
64 bytes from 10.10.1.183: icmp_seq=1 ttl=255 time=5.24 ms
64 bytes from 10.10.1.183: icmp_seq=2 ttl=255 time=4.47 ms
64 bytes from 10.10.1.183: icmp_seq=3 ttl=255 time=2.58 ms
64 bytes from 10.10.1.183: icmp_seq=4 ttl=255 time=2.13 ms
64 bytes from 10.10.1.183: icmp_seq=5 ttl=255 time=10.9 ms
64 bytes from 10.10.1.183: icmp_seq=6 ttl=255 time=10.1 ms
^C
--- 10.10.1.183 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 2.130/5.921/10.967/3.446 ms
可以使用以下命令检查 MAC 地址,可以看出,enp2s0f2
共享mybridge
相同的 MAC 地址,但用于vport1
不同的 MAC 地址:
$ sudo ovs-ofctl show mybridge
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000704d7b3a6e2c
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
1(enp2s0f2): addr:70:4d:7b:3a:6e:2c
config: 0
state: 0
current: 100MB-FD AUTO_NEG
advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
speed: 100 Mbps now, 100 Mbps max
2(vport1): addr:12:85:60:b7:d1:3e
config: 0
state: 0
current: 10MB-FD COPPER
speed: 10 Mbps now, 0 Mbps max
LOCAL(mybridge): addr:70:4d:7b:3a:6e:2c
config: 0
state: 0
speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0