美文网首页
linux.network.route

linux.network.route

作者: 余带盐 | 来源:发表于2018-12-26 17:44 被阅读0次
    • 如何ping

    要求的是从源地址发出的包能够到达目的地址;从目的地址返回的包能够到达源地址

    • 网关

    意思是下一跳地址

    1. ip route
    • 查看路由表
    1. ip route |column -t
    • 添加路由
    1. 默认路由
      ip route add 0.0.0.0/0 via 0.0.0.0 dev ens3
      意思是目的ip任意的数据包都发给ens3via是网关的意思
    2. 普通路由
      ip route add 10.10.0.0/24 via 0.0.0.0 dev ens3
      目的ip10.10.10.x的数据包都会发给ens3

    1. route
    • 查看路由表
    1. route -n
    • 添加路由表项
    1. 默认路由
      route add -net 0.0.0.0 netmask 0.0.0.0 gateway 192.168.122.1 dev eth1
      意思就是目的ip任意的数据包都发给eth1,网关是192.168.122.1
    2. 普通路由
      route add -net 10.0.0.0/24 dev br0
      意思是目的ip10.0.0.x的数据包会发给br0
    3. 可以接收域名的路由
      route add -net 0.0.0.0 gateway 192.168.122.1 dev eth1
    • 下面是一个使用路由表ping通不同网段的实例
    #1.    主机
    #1.1   添加桥
    ovs-vsctl add-br br1
    
    #1.2   创建veth pair,并添加到br1 上
    ip link add veth0 type veth peer name veth1
    ovs-vsctl add-port br1 veth0
    ip li set veth0 up
    
    ovs-vsctl set port veth0 tag=1
    
    #1.3   创建ns1,veth1加进去
    ip netns add ns1
    ip li set veth1 netns ns1
    ip netns exec ns1 ifconfig lo 127.0.0.1 up
    ip netns exec ns1 ip li set veth1 up
    ip netns exec ns1 ip a add 10.10.0.6/24 dev veth1
    ip netns exec ns1 route add -net 10.0.0.0/24 dev veth1
    
    #1.4   创建虚拟机
    tunctl -t tap1
    ovs-vsctl add-port br1 tap1
    ovs-vsctl set port tap1 tag=1
    ip li set tap1 up
    mac1=`echo "$(hexdump -n3 -e'/3 "00:60:2F" 3/1 ":%02X"' /dev/random)"`
    qemu-system-x86_64  centos1804_200G.qcow2 -m  1024  -net  nic,macaddr=$mac1  -net tap,ifname=tap1,script=no,downscript=no   -enable-kvm &
    
    #2.    虚拟机
    ip li set ens3 up
    ip a add 10.0.0.6/24 dev ens3
    ip route add 10.10.0.0/24 via 0.0.0.0 dev ens3
    
    #3.    测试
    #3.1   虚拟机ping主机
    ping 10.10.0.6
    #3.2   主机ping虚拟机
    ip netns exec ns1 ping 10.0.0.6
    

    注:1.2 1.3中的veth pair可用vlan代替

    #1.2   创建ns1,创建br1的端口并添加进去
    ip netns add ns1
    ovs-vsctl add-port br1 tap2 tag=1 -- set interface tap2 type=internal
    ip li set tap2 netns ns1
    ip netns exec ns1 ifconfig lo 127.0.0.1 up
    ip netns exec ns1 ip li set tap2 up
    ip netns exec ns1 ip a add 10.10.0.6/24 dev tap2
    ip netns exec ns1 route add -net 10.0.0.0/24 dev tap2
    

    相关文章

      网友评论

          本文标题:linux.network.route

          本文链接:https://www.haomeiwen.com/subject/tdhrfqtx.html