virtualbox虚拟机--虚拟机的网络
今天要测试IP多宿主(ip multihoming),即host和guest的两个网卡分别接,host ping guest的ipv6不通。解决过程如下:
命令输出:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:33:7e:04 brd ff:ff:ff:ff:ff:ff
inet 172.18.34.202/26 brd 172.18.34.255 scope global dynamic eth0
valid_lft 172228sec preferred_lft 172228sec
inet6 fe80::a00:27ff:fe33:7e04/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:53:77:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.57.12/24 brd 192.168.57.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe53:7709/64 scope link tentative dadfailed
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
执行完发现确实是:
# sysctl -a | grep accept_dad
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth1.accept_dad = 1
net.ipv6.conf.lo.accept_dad = -1
将用于host和guest通信的(HOST-ONLY)接口accept_dad设置成0,并重启网络服务:
sysctl -w net.ipv6.conf.eth1.accept_dad=0
sysctl -w net.ipv6.conf.eth2.accept_dad=0
service network restart
打印网络接口信息可以看到eth2和eth3的tentative dad消失:
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:33:7e:04 brd ff:ff:ff:ff:ff:ff
inet 172.18.34.202/26 brd 172.18.34.255 scope global dynamic eth0
valid_lft 172803sec preferred_lft 172803sec
inet6 fe80::a00:27ff:fe33:7e04/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:53:77:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.57.12/24 brd 192.168.57.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe53:7709/64 scope link 注意到tentative dadfailed没有了。
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
还没有评论,来说两句吧...