Created
June 3, 2018 13:34
-
-
Save rwngwn/6b15a69d29b14da9c96cdfdf5d3a0588 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pyroute2 import IPDB, IPRoute | |
import os | |
def create_veth_path(fd): | |
ip = IPDB() | |
# create interface pair | |
ip.create(ifname='pycoz0', kind='veth', peer='pycoz1').commit() | |
ip.release() | |
setup_ip('pycoz0', '10.0.0.1/24') | |
# move peer to netns | |
ip = IPDB() | |
with ip.interfaces.pycoz1 as veth: | |
veth.net_ns_fd = os.open(fd, os.O_RDONLY) | |
# don't forget to release before exit | |
return ip | |
def setup_ip(interface, ip): | |
with IPDB() as ipdb: | |
with ipdb.interfaces[interface] as i: | |
i.add_ip(ip) | |
i.up() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment