Я использую 3 сетевые карты на моем компьютере с Ubuntu 14.04.Я пытаюсь одновременно общаться с 3 разными сетями, используя три разные сетевые карты.Я хочу использовать IPv6 Global address.Ниже приведена структура сети.
Interface_A (8003::2) <-----> Get0 (8003::1)
Interface_B (8001::2) <-----> Get1 (8001::1)
Interface_C (8002::2) <-----> Get2 (8002::1)
Когда я работаю с адресами канального уровня IPv6, одновременная связь работает.то есть приведенный ниже код работает успешно.
dst_a="FE80::C1:4160" # get0
dst_c="FE80::3617:EBFF:FEAE:DEB4" # get2
src_a="FE80::3617:EBFF:FEAE:DEB5" # my_pc_interfac_A
src_c="FE80::523E:AAFF:FE08:8AAF" # my_pc_interface_C
IFACE_A = "eth0"
IFACE_C = "eth2"
echo_a = IPv6(src=src_a, dst=dst_a, nh=58) / ICMPv6EchoRequest(data='aaaa')
echo_c = IPv6(src=src_c, dst=dst_c, nh=58) / ICMPv6EchoRequest(data='cccc')
conf.iface = IFACE_A
a = sr1(echo_a)
a.display()
conf.iface = IFACE_C
c = sr1(echo_C)
c.display()
Пока приведенный ниже код не работает, успешен только 1-й пинг (echo_a).На следующий я не получаю никакого ответа.Когда я работаю только с interface_C (echo_c) с глобальными адресами ipv6, echo_c также работает.
dst_a_global="8003::1" # get0
dst_c_global="8002::1" # get2
src_a_global="8003::2" # my_pc_interfac_A
src_c_global="8002::2" # my_pc_interface_C
IFACE_A = "eth0"
IFACE_C = "eth2"
echo_a = IPv6(src=src_a_global, dst=dst_a_global, nh=58) / ICMPv6EchoRequest(data='aaaa')
echo_c = IPv6(src=src_c_global, dst=dst_c_global, nh=58) / ICMPv6EchoRequest(data='cccc')
conf.iface = IFACE_A
a = sr1(echo_a)
a.display()
conf.iface = IFACE_C
c = sr1(echo_C)
c.display()
Я получаю только вывод echo_a, для echo_c ответа нет.Если я сначала запускаю echo_c, я не получаю ответ для echo_a.
Я ожидаю, что для обоих эхо-запросов должен быть ответ эха.Я могу ping6 на всех интерфейсах.