zoukankan      html  css  js  c++  java
  • 容器网络之 veth设备

    创建命名空间

    # ip netns add mhc

    # ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether dc:fe:07:d6:10:67 brd ff:ff:ff:ff:ff:ff
    3: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
        link/ether 2a:3d:4b:78:d6:34 brd ff:ff:ff:ff:ff:ff
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    6: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
        link/ether 02:42:f1:10:e3:bc brd ff:ff:ff:ff:ff:ff
    10: veth879059f@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT
        link/ether f2:5a:39:f5:94:63 brd ff:ff:ff:ff:ff:ff link-netnsid 0

    # ip netns exec mhc ip link show
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    添加一对veth设备

    ip link add veth0 type veth peer name veth1

    # ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether dc:fe:07:d6:10:67 brd ff:ff:ff:ff:ff:ff
    3: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
        link/ether be:6d:49:a4:79:2e brd ff:ff:ff:ff:ff:ff
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    6: docker0: <BROADCAST,MUL# ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
        link/ether dc:fe:07:d6:10:67 brd ff:ff:ff:ff:ff:ff
    3: wlp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT qlen 1000
        link/ether be:6d:49:a4:79:2e brd ff:ff:ff:ff:ff:ff
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
        link/ether 52:54:00:ea:e7:08 brd ff:ff:ff:ff:ff:ff
    6: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
        link/ether 02:42:f1:10:e3:bc brd ff:ff:ff:ff:ff:ff
    10: veth879059f@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT
        link/ether f2:5a:39:f5:94:63 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    27: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 82:72:ea:99:16:2c brd ff:ff:ff:ff:ff:ff
    28: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 56:44:ef:da:0f:42 brd ff:ff:ff:ff:ff:ff

    TICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
        link/ether 02:42:f1:10:e3:bc brd ff:ff:ff:ff:ff:ff
    10: veth879059f@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT
        link/ether f2:5a:39:f5:94:63 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    27: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 82:72:ea:99:16:2c brd ff:ff:ff:ff:ff:ff
    28: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 56:44:ef:da:0f:42 brd ff:ff:ff:ff:ff:ff

    将veht1 移到另一个namespace

    ip link set veth1 netns mhc

    # ip netns exec mhc ip link show
    1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    27: veth1@if28: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
        link/ether 82:72:ea:99:16:2c brd ff:ff:ff:ff:ff:ff link-netnsid 0

    设置ip地址

    # ip netns exec mhc ip addr add 10.1.1.1/24 dev veth1

    # ip addr add 10.1.1.2/24 dev veth0

    启用设备

    # ip netns exec mhc ip link set dev veth1 up

    # ip link set dev veth0 up

    # ping 10.1.1.1
    PING 10.1.1.1 (10.1.1.1) 56(84) bytes of data.
    64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=0.065 ms
    64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=0.076 ms

    # ip netns exec mhc ping 10.1.1.2
    PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
    64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.088 ms
    64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.040 ms

    如何查看对端

    # ethtool -S veth0
    NIC statistics:
         peer_ifindex: 27

    # ip netns exec mhc ip link|grep 27
    27: veth1@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000

    删除veth设备(同时在另一个nemespace的设备也被删除了)

    # ip link delete veth0

    删除网络命名空间

    # ip netns ls
    mhc (id: 1)
    # ip netns delete mhc

  • 相关阅读:
    mysql的binlog日志格式
    Git的基本使用
    Tomcat安装部署
    [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)]
    云盘的创建及使用
    ntp服务器配置
    如何更改mysql的密码策略?
    Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法
    Git的基本使用
    UES
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/8970766.html
Copyright © 2011-2022 走看看