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網絡實現中的東西?