1
我已经通过设置一些虚拟IP工作:蟒蛇socket.connect似乎并不在一个虚拟的IP
~# ip link add link eth0 name eth0.1 address 11:22:33:44:55:66 type macvlan
~# ifconfig eth0.1 10.10.0.0/24
我使用下面的代码从它连接:
sTCP = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sTCP.setsockopt(socket.SOL_SOCKET, IN.SO_BINDTODEVICE, IFACE)
print "PORT s_TCP:" + str(HOST) +":" +str(TCP_PORT)
sTCP.connect((HOST, TCP_PORT))
print "Connected"
如果IFACE是eth0,这可以正常工作,但它不会从eth0.1通过sTCP.connect,并且在eth0.2上无法通过bindtodevice(与预期的一样)。
为什么eth0.1不起作用?这是一个python问题,还是在linux网络实现中的东西?