virtualbox虚拟机--虚拟机的网络

墨蓝 2024-02-18 20:01 154阅读 0赞

今天要测试IP多宿主(ip multihoming),即host和guest的两个网卡分别接,host ping guest的ipv6不通。解决过程如下:

命令输出:

  1. # ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. valid_lft forever preferred_lft forever
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  9. link/ether 08:00:27:33:7e:04 brd ff:ff:ff:ff:ff:ff
  10. inet 172.18.34.202/26 brd 172.18.34.255 scope global dynamic eth0
  11. valid_lft 172228sec preferred_lft 172228sec
  12. inet6 fe80::a00:27ff:fe33:7e04/64 scope link tentative dadfailed
  13. valid_lft forever preferred_lft forever
  14. 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  15. link/ether 08:00:27:53:77:09 brd ff:ff:ff:ff:ff:ff
  16. inet 192.168.57.12/24 brd 192.168.57.255 scope global eth1
  17. valid_lft forever preferred_lft forever
  18. inet6 fe80::a00:27ff:fe53:7709/64 scope link tentative dadfailed
  19. valid_lft forever preferred_lft forever

看到tentative dadfailed, 原来dad的意思是Duplicate Address Detection,默认值是1也就是拒绝DAD。见: https://blog.tankywoo.com/linux/2013/09/27/ipv6-dadfailed-problem.html

执行完发现确实是:

  1. # sysctl -a | grep accept_dad
  2. net.ipv6.conf.all.accept_dad = 1
  3. net.ipv6.conf.default.accept_dad = 1
  4. net.ipv6.conf.eth0.accept_dad = 1
  5. net.ipv6.conf.eth1.accept_dad = 1
  6. net.ipv6.conf.lo.accept_dad = -1

将用于host和guest通信的(HOST-ONLY)接口accept_dad设置成0,并重启网络服务:

  1. sysctl -w net.ipv6.conf.eth1.accept_dad=0
  2. sysctl -w net.ipv6.conf.eth2.accept_dad=0
  3. service network restart

打印网络接口信息可以看到eth2和eth3的tentative dad消失:

  1. # ip addr
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4. inet 127.0.0.1/8 scope host lo
  5. valid_lft forever preferred_lft forever
  6. inet6 ::1/128 scope host
  7. valid_lft forever preferred_lft forever
  8. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  9. link/ether 08:00:27:33:7e:04 brd ff:ff:ff:ff:ff:ff
  10. inet 172.18.34.202/26 brd 172.18.34.255 scope global dynamic eth0
  11. valid_lft 172803sec preferred_lft 172803sec
  12. inet6 fe80::a00:27ff:fe33:7e04/64 scope link tentative dadfailed
  13. valid_lft forever preferred_lft forever
  14. 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  15. link/ether 08:00:27:53:77:09 brd ff:ff:ff:ff:ff:ff
  16. inet 192.168.57.12/24 brd 192.168.57.255 scope global eth1
  17. valid_lft forever preferred_lft forever
  18. inet6 fe80::a00:27ff:fe53:7709/64 scope link 注意到tentative dadfailed没有了。
  19. valid_lft forever preferred_lft forever

从host ping guest,首先通过ipconfig查看virtualbox的虚拟网卡VirtualBox Host-Only Network #2和VirtualBox Host-Only Network的IPV6地址后面的接口标号(百分号后面)。因为我的guest网卡配置这两个host的虚拟网卡分别对应eth1和eth2(与virtualbox的配置界面中mac地址对应。eth0做网桥用),所以结果:

ping ipv6_address_eth1%15
ping ipv6_address_eth2%16

发表评论

表情:
评论列表 (有 0 条评论,154人围观)

还没有评论,来说两句吧...

相关阅读

    相关 virtualbox 克隆虚拟

    起初我觉得直接复制一个.vdi 虚拟硬盘再挂上去就可以了,没想到Virtualbox居然提示UUID重复,看起来就是有点像com生成的那种ID,查了一下,才知道原来不能这么用