#Linux advanced router
ip link show #显示链路
ip addr show #显示地址(或ifconfig)
ip route show #显示路由(route -n)
ip neigh show #显示arp表(ping 192.168.95.50,如果主机在同一局域网内,直接加到arp表)
ip neigh delete 192.168.95.50 dev eth0 #删除arp条目,条目仍然存在状态为stale,下次通信需要确认
ip rule show #显示缺省规则
ip route del default dev eth0 #删除接口路由
ip route show table local #查看本地静态路由
ip route show table main #查看直连路由 ###########
未测
###########
echo John >>/etc/iproute2/rt_tables #设置名字对于数值
ip rule add from 10.0.0.10 table John #指定源地址
ip route add default via 192.168.44.128 dev ppp2 table John #将数据指向该表网关
ip route flush cache #################################################################
#测试双线上网,负载均衡
#################################################################
#Local environment:
#Output interface:
#eth0:192.168.222.128 gateway:192.168.222.2
#eth2:192.168.1.109 gateway:192.168.1.109 #Input interface:
#eth1:192.168.95.2 netmaks 255.255.255.0 ip rule add from 192.168.222.128 table
ip rule add from 192.168.1.109 table ip route add default via 192.168.222.2 table
ip route add default via 192.168.1.1 table #ip route add 192.168.222.0/ dev eth0 src 192.168.222.128 table
#ip route add 192.168.1.0/ dev eth2 src 192.168.1.109 table ip route replace default scope global nexthop via 192.168.222.2 dev eth0 weight nexthop via 192.168.1.1 dev eth2 weight
ip route flush cache iptables -t nat -A POSTROUTING -o eth0 -s 192.168.95.0/ -j SNAT --to-source 192.168.222.128
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.95.0/ -j SNAT --to-source 192.168.1.109 echo "nameserver 210.21.4.130" >/etc/resole.conf ##################################################
#测试双线上网,负载均衡,跟上面一样的,写法稍微好点
##################################################
#Local environment:
#Output interface:
#eth0:192.168.222.128 gateway:192.168.222.2
#eth2:192.168.1.109 gateway:192.168.1.109 #Input interface:
#eth1:192.168.95.2 netmaks 255.255.255.0 ip rule add pref from 192.168.222.128 table
ip rule add pref from 192.168.1.109 table ip route replace default via 192.168.222.2 dev eth0 table
ip route replace default via 192.168.1.1 dev eth2 table #下面两句主要增加
#物理机通过nat接口(与eth0在同一网段)访问需要在网关加一条路由,通过bridged接口(与eth2在同一网段)访问正常
#ip route add 192.168.222.0/ dev eth0 src 192.168.222.128 table
#ip route add 192.168.1.0/ dev eth2 src 192.168.1.109 table ip route replace default nexthop via 192.168.222.2 dev eth0 weight nexthop via 192.168.1.1 dev eth2 weight
ip route flush cache iptables -t nat -A POSTROUTING -o eth0 -s 192.168.95.0/ -j SNAT --to-source 192.168.222.128
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.95.0/ -j SNAT --to-source 192.168.1.109 #iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.22.3-192.168.22.255 -j SNAT --to-source 192.168.1.254
#iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.22.3-192.168.22.255 -j SNAT --to-source 192.168.233.2 echo "nameserver 210.21.4.130" >/etc/resole.conf #########################################################
#网络上个一个例子
#########################################################
#Link: http://www.study-area.org/tips/multipath.htm
#實作指令 5.1 獲取當前各界面之 ip :
# ip address show
: lo: <LOOPBACK,UP> mtu qdisc noqueue
link/loopback ::::: brd :::::
inet 127.0.0.1/ brd 127.255.255.255 scope host lo
: eth0: <BROADCAST,MULTICAST,UP> mtu qdisc pfifo_fast qlen
link/ether :::::4f brd ff:ff:ff:ff:ff:ff
inet 220.130.96.21/ brd 220.130.96.255 scope global eth0
: eth1: <BROADCAST,MULTICAST,UP> mtu qdisc pfifo_fast qlen
link/ether ::ed::f9: brd ff:ff:ff:ff:ff:ff
inet 192.168.100.2/ brd 192.168.100.255 scope global eth1
: eth2: <BROADCAST,MULTICAST,UP> mtu qdisc pfifo_fast qlen
link/ether ::b3:4b:: brd ff:ff:ff:ff:ff:ff
inet 10.1.2.3/ brd 10.1.2.255 scope global eth2
: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP> mtu qdisc pfifo_fast qlen
link/ppp
inet 210.64.33.27 peer 210.64.33.1/ scope global ppp0 5.2 設定 ip rule :
# ip rule add pref from 220.130.96.21 table
# ip rule add pref from 192.168.100.2 table
# ip rule add pref from 210.64.33.27 table 5.3 設定 ip route 各 table :
# ip route replace default via 220.130.96.254 dev eth0 table
# ip route replace default via 192.168.100.1 dev eth1 table
# ip route replace default via 210.64.33.1 dev ppp0 table 5.4 設定 ip route main table:
# ip route replace default \
> nexthop via 220.130.96.254 dev eth0 weight \
> nexthop via 192.168.100.1 dev eth1 weight \
> nexthop via 210.64.33.1 dev ppp0 weight 5.5 檢視 main table 規則:
# ip route show
210.64.33.1 dev ppp0 proto kernel scope link src 210.64.33.27
192.168.100.0/ dev eth1 scope link
220.130.96.0/ dev eth0 scope link
10.1.2.0/ dev eth2 scope link
169.254.0.0/ dev eth2 scope link
127.0.0.0/ dev lo scope link
default
nexthop via 220.130.96.254 dev eth0 weight
nexthop via 192.168.100.1 dev eth1 weight
nexthop via 210.64.33.1 dev ppp0 weight 5.6 刷新 route cache:
# ip route flush cache 5.7 測試及確認連線生效:
基本上,若在輸入上述命令中沒遇到 error ,那設定就已完成。
接下來可起用多個對外連線(或用 ping),
然後使用 tcpdump -i any 來查看封包是否能分攤在每一條連線上。
################################################################# ######################################### ################################################################
tc 流量控制:
#测试环境
Output: eth0 192.168.222.128
Input: eth1 192.168.95.2
################################################################
#限制单个地址已测 #队列规定 qdisc(queueing discipline) ,类(class)和分类器(Classifiers) #清除接口所有规则
tc qdisc del dev eth1 root >/dev/null
tc -s qdisc show dev eth1 #查看总的流量 #限制单个ip流量
tc qdisc add dev eth1 root handle : htb r2q
tc class add dev eth1 parent : classid : htb rate 100kbit ceil 200kbit
tc filter add dev eth1 parent : protocol ip prio u32 match ip dst 192.168.95.50 flowid : ##################################################
#实际流量是这里6倍
tc qdisc del dev eth1 root >/dev/null
tc qdisc add dev eth1 root handle : htb default
tc class add dev eth1 parent : classid : htb rate 15kbit ceil 15kbit
tc class add dev eth1 parent : classid : htb rate 10kbit ceil 10kbit
tc class add dev eth1 parent : classid : htb rate 5kbit ceil 5kbit tc qdisc add dev eth1 parent : handle : sfq perturb
tc qdisc add dev eth1 parent : handle : sfq perturb tc filter add dev eth1 parent : protocol ip prio u32 match ip dst 192.168.95.50 flowid :
tc filter add dev eth1 parent : protocol ip prio u32 match ip dst 192.168.95.51 flowid : tc class show dev eth1 classid :
tc class show dev eth1 classid :
tc class show dev eth1 classid : tc -s filter show dev eth1
tc -s class show dev eth1
tc -s class show dev eth1 classid :
tc -s class show dev eth1 classid :
tc -s class show dev eth1 classid : ################################################## iptables -t filter -F
iptables -t filter -X
iptables -t filter -Z iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z tc qdisc del dev eth1 root >/dev/null
tc qdisc add dev eth1 root handle : htb default
tc class add dev eth1 parent : classid : htb rate 15kbit ceil 15kbits
tc class add dev eth1 parent : classid : htb rate 10kbit ceil 10kbit
tc class add dev eth1 parent : classid : htb rate 5kbit ceil 5kbit tc qdisc add dev eth1 parent : handle : sfq perturb
tc qdisc add dev eth1 parent : handle : sfq perturb tc filter add dev eth1 parent : protocol ip prio handle fw flowid :
tc filter add dev eth1 parent : protocol ip prio handle fw flowid : #对路由到本地的包有效速度控制
iptables -t mangle -A OUTPUT -o eth1 --destination 192.168.95.50 -j MARK --set-mark 0x6
iptables -t mangle -A OUTPUT -o eth1 --destination 192.168.95.51 -j MARK --set-mark 0x7 #对转发包速度控制
iptables -t mangle -A PREROUTING -i eth1 --source 192.168.95.50 -j MARK --set-mark 0x6
iptables -t mangle -A PREROUTING -i eth1 --source 192.168.95.51 -j MARK --set-mark 0x7 iptables -t filter -nvL
iptables -t mangle -nvL

iproute2和tc的高级路由用法的更多相关文章

  1. ip route rule 路由策略 高级路由 捆绑 网桥

    http://lwfs.net/2005/11/28/10/ #!/bin/bash IP0= IP1= GW0= GW1= NET0= NET1= DEV0=eth0 DEV1=eth1 # com ...

  2. linux 高级路由

    1. 什么是高级路由? 是把信息从源穿过网络到达目的地的行为. 有两个动作:确定最佳路径,传输信息 确定最佳路径:手工指定,自动学习. 传输信息:隧道传输,流量整形 高级路由(策略路由)是根据一定的需 ...

  3. 16、基于状态的iptable+高级路由(重点)

    --   基于状态的iptables   如果按照tcp/ip来划分连接状态,有12种之多 但iptables里只有4种状态:ESTABLISHED.NEW.RELATED及INVALID   这两个 ...

  4. DDGScreenShot--iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的用法

    写在前面 我们肯定做过这样的需求,给一个图片切圆角, 当然我们大多采用简单粗暴的方法 myIcon.layer.cornerRadius = 16.5 myIcon.layer.masksToBoun ...

  5. element-ui使用导航栏跳转路由用法

    element-ui使用导航栏跳转路由用法 最近初学vue,试着做一个小项目熟悉语法与思想,其中使用elemen-ui的导航栏做路由跳转切换页面.下面记录一下学习过程 element-ui引入vue项 ...

  6. nmap 高级扫描用法

    nmap提供了四项基本功能(主机发现.端口扫描.服务与版本侦测.OS侦测)及丰富的脚本库.Nmap既能应用于简单的网络信息扫描,也能用在高级.复杂.特定的环境中:例如扫描互联网上大量的主机:绕开防火墙 ...

  7. MongoDB高级查询用法大全

    转载 http://blog.163.com/lgh_2002/blog/static/440175262012052116455/ 详见官方的手册: http://www.mongodb.org/d ...

  8. saltstack:使用教程之二高级模块用法Grains、Pillar

    1.grains用法: 在客户端服务启动的时候收集客户的基础信息,在配置发生变化后也可以通过master重新同步 显示一个客户端的所有项目: [root@node5 ~]# salt "no ...

  9. 使用属性创建区域 (Creating Areas with Attributes) | 使用区域 | 高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼

随机推荐

  1. Django——11 状态保持 form表单 登陆注册样例

    Django 状态保持 用户状态例子 实现注册登陆实例 django forms 表单的使用 注册功能 登陆功能   状态保持cookie和session 1.http协议是无状态的:每次请求都是一次 ...

  2. BUPT2017 springtraining(16) #2 ——基础数据结构

    题目在这里 A.似乎是个并查集+??? B.10W的范围,似乎可以暴力来一发二分+sort? 但我猜正解可以O(nlogn)? C.单调队列入门题目 #include <cstdio> ] ...

  3. CODEVS3147 矩阵乘法2

    ...怎么优化都是90分,最后一个点一直T掉,有谁过了请告诉我. Program CODEVS3147; ; ..maxn,-..maxn] of longint; n,q,i,j,k,k1,k2,k ...

  4. NandFlash、NorFlash、DataFlash

    1. NandFlash和NorFlash        Flash存储芯片,俗称闪存,因其具有非易失性.可擦除性.可重复编程及高密度.低功耗等特点,广泛地应用于手机.数码相机.笔记本电脑等产品.   ...

  5. N天学习一个linux命令之xz

    前言 最近使用gitbook写接口文档,gitbook需要nodejs执行环境.安装nodejs时,发现安装包使用的是xz后缀,它是使用LZMA无损数据压缩算法生成的文件,压缩率很高.GNU已经内置了 ...

  6. 新的HTML5语义元素

    先看一个传统的HTML4的文档: <div class="header"> <h1>My Site Name</h1> <h2>My ...

  7. 【线段树I:母题】hdu 1166 敌兵布阵

    [线段树I:母题]hdu 1166 敌兵布阵 题目链接:hdu 1166 敌兵布阵 题目大意 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又開始忙乎了.A国在海 ...

  8. POJ 1128 Frame Stacking(拓扑排序&#183;打印字典序)

    题意  给你一些矩形框堆叠后的鸟瞰图  推断这些矩形框的堆叠顺序  每一个矩形框满足每边都至少有一个点可见  输入保证至少有一个解 按字典序输出全部可行解 和上一题有点像  仅仅是这个要打印全部的可行 ...

  9. SQL LEN() 函数 ,case when,聚合函数的使用方法

    SELECT aa.[User_Id],cc.[User_Name],dd.Name AS DepName,aa.Module_Id,aa.Module_Name, SUM(CASE aa.Opera ...

  10. oracle Plsql 运行update或者delete时卡死问题解决的方法

    oracle Plsql 运行update或者delete时 遇到过Plsql卡死问题或者导致代码运行sql的时候就卡死. 在开发中遇到此问题的时候,本来把sql复制出来,在plsql中运行,Sql本 ...