linux双网策略路由脚本实例

双网要比单网复杂的多。

首先安装Linux高级路由包,用里面的ip命令。

# apt-get install iproute

先创建两个表

修改

/etc/iproute2/rt_tables如下

加t1自定义编号10

加t2自定义编号20

代码:

########################################

#

# reserved values

#

255 local

254 main

253 default

0   unspec

#

# local

#

10  T1

20  T2

########################################

然后将附件里的cnc_1_net和ctc_1_net拷贝到/etc目录下,因为下面的脚本要用到。

cnc_1_net是网通的ip段

ctc_1_net是电信的ip段

我们要编辑个脚本。

########################################

#!/bin/sh

# IF1 是网通的网络接口

IF1="eth0"

# IF2 是内网的网络接口

IF2="eth2"

# IF0 是电信的网络接口

IF0="eth1"

# IP1 是网通的IP

IP1="221.8.60.54"

# IP2 是电信的IP

IP2="222.168.11.186"

# P1 是网通的网关

P1="221.8.60.53"

# P2 是电信的网关

P2="222.168.11.185"

# P1_NET 是网通的网段, 掩码30表示有分派了4个ip, 如果是8个ip就要写成29了。

P1_NET="221.8.60.52/30"

# P2_NET 为电信的网段

P2_NET="222.168.11.184/30"

# P0_NET 为内网网段

P0_NET="192.168.0.0/24"

# 设置基本的防火墙

echo "1" > /proc/sys/net/ipv4/ip_forward

echo 8000 > /proc/sys/net/ipv4/ip_conntrack_max

modprobe iptable_filter

modprobe ip_tables

modprobe iptable_nat

modprobe ip_conntrack

modprobe ip_nat_ftp

modprobe ip_conntrack_ftp

modprobe ip_nat_irc

modprobe ip_conntrack_irc

modprobe ipt_MASQUERADE

modprobe ipt_REJECT

modprobe ipt_limit

iptables -F

iptables -t nat -F

iptables -P INPUT DROP

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j MASQUERADE

iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j MASQUERADE

# 设置策略路由

ip route flush table T1

ip route flush table T2

ip rule list | grep T | while read line; do

POS4=`echo $line | awk \'{print $4}\'`

if [ "$POS4" = "to" ]

then

DST=`echo $line | awk \'{print $5}\'`

RT=`echo $line | awk \'{print $7}\'`

ip rule del to $DST table $RT

fi

if [ "$POS4" = "lookup" ]

then

SRC=`echo $line | awk \'{print $3}\'`

RT=`echo $line | awk \'{print $5}\'`

ip rule del from $SRC table $RT

fi

done

if [ ! -z $IP1 ]

then

ip route replace $P1_NET dev $IF1 src $IP1

ip route add $P1_NET dev $IF1 src $IP1 table T1

ip route add $P0_NET dev $IF0 table T1

ip route add 127.0.0.0/8 dev lo table T1

ip route add $P1_NET dev $IF1 table T2

ip route replace default via $P1 dev $IF1 table T1

ip rule add from $IP1 table T1

WAN_RT1="nexthop via $P1 dev $IF1 weight 1"

fi

if [ ! -z $IP2 ]

then

ip route replace $P2_NET dev $IF2 src $IP2

ip route add $P2_NET dev $IF2 src $IP2 table T2

ip route add $P0_NET dev $IF0 table T2

ip route add 127.0.0.0/8 dev lo table T2

ip route add $P2_NET dev $IF2 table T1

ip route replace default via $P2 dev $IF2 table T2

ip rule add from $IP2 table T2

WAN_RT2="nexthop via $P2 dev $IF2 weight 1"

fi

WAN_RT3="$WAN_RT1 $WAN_RT2"

# 把网通作为默认网关,如果是电信把$WAN_RT1修改为$WAN_RT2

ip route replace default scope global $WAN_RT1

# 用两个网关做负载均衡(一般不用)

#ip route replace default equalize scope global $WAN_RT3

ip route flush cache

if [ -s /etc/ctc_1_net ]

then

while read LINE

do

case $LINE in

\\#*) ;;

*)

ip rule add to $LINE table T2

;;

esac

done < /etc/ctc_1_net

fi

if [ -s /etc/cnc_1_net ]

then

while read LINE

do

case $LINE in

\\#*) ;;

*)

ip rule add to $LINE table T1

;;

esac

done < /etc/cnc_1_net

fi

ip route flush cache

linux策略路由配置实例,linux策略路由实例相关推荐

  1. linux字体配置要略,Linux字体配置要略.pdf

    / Linux 字体配置要略 Linux 字体配置要略 2012-02-15 我并不清楚 fontconfig . xfont . libfreetype 或某某库等等之间的界限与联系,其实作为普通用 ...

  2. arm linux 内核配置,嵌入式 Linux开发Kernel移植(二)——kernel内核配置和编译

    嵌入式 Linux开发Kernel移植(二)--kernel内核配置和编译 本文选择linux 2.6.35.7版本kernel进行实践. 一.linux kernel源码目录分析 Kbuild,Ke ...

  3. linux apache配置多线程,linux apache 日志配置

    发表于 2012-01-13 08:36:16 by 月小升 Linux系统下apache日志文件设置(每天单独生成一个日志文件) 引言: vi /etc/httpd/conf/httpd.conf ...

  4. linux vim配置c,Linux入门学习教程:GNU C及将Vim打造成C/C++的半自动化IDE

    C语言在Linux系统中的重要性自然是无与伦比.不可替代,所以我写Linux江湖系列不可能不提C语言.C语言是我的启蒙语言,感谢C语言带领我进入了程序世界.虽然现在不靠它吃饭,但是仍免不了经常和它打交 ...

  5. linux基础配置脚本,Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...

  6. zynq linux ip配置,ZYNQ+linux网口调试笔记(2)PS-GEM1

    1. 开发环境 Windows SDK 2017.4 Ubuntu Petalinux 2017.4 硬件平台:米联客ZYNQ开发板MIZ7035 2. 开发目标 在ZYNQ上使用gigE Visio ...

  7. linux最低配置版本,Linux各个版本配置要求

    桌面版的Linux越来越受到用户的欢迎, 它的画面也越来越精细.但是它所需要的配置不像windows那样来得那么夸张,到底linux的配置要求是什么样的呢?答案是:不需要太高的配置. 让我们来看看将于 ...

  8. linux配置网卡设DDNS,Linux之配置安全的DDNS实例

    基于linux的社区版本CentOS 5.5 (前提已经配置好本机器的DNS以及DHCP,并且功能都可以实现) 1.创建密匙 [root@www ~]# dnssec-keygen -a HMAC-M ...

  9. linux怎么配置日志,Linux配置日志服务器的图文教程

    Linux配置日志服务器的图文教程 前言 本文主要介绍的是关于Linux配置日志服务器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 日志服务器配置文件:/etc/rsys ...

  10. linux smb配置目录,linux基础---smb配置

    一.samba简介 1.概述: 对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议.但是Linux和Windows ...

最新文章

  1. 2分钟读懂Hadoop和Spark的异同
  2. Vuforia Android 6 Camera Error
  3. java serialization/deserialization (序列化对象自描述)
  4. OpenShift 4之实现一个基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
  5. windows部署tomcat服务自动启动,同时解决服务无法启动的问题
  6. 为系统加载右键注册控件选项【VB 注册控件】
  7. 信息图表是如何炼成的(二):图标与线条
  8. java什么是构造方法
  9. pyqt5 treewidget图标_Python基础之PyQt5写TreeWidget(二)--代码篇
  10. 计算机相关期刊,计算机相关杂志
  11. Google是如何教会机器玩Atari游戏的
  12. java中数据库修改语句_java 修改数据库中的数据
  13. OLED显示与LCD相比的优缺点都有哪些
  14. 随便看看,也是好久没更新了.....
  15. jQuery夹娃娃小游戏
  16. 单片机蓝牙烧录_怎么样蓝牙模块给单片机烧程序?
  17. 系统学习机器学习之特征工程(三)--多重共线性
  18. TCP的三次握手与四次挥手基本理解
  19. 相同和相等的区别。。。
  20. 今天分享的Java开源游戏项目是桌球游戏,初学者也可以用来练习喔~

热门文章

  1. v中国无框直驱电机行业运营态势与投资盈利预测报告2022-2027
  2. 2019年抖音粉丝养成攻略大全
  3. u盘做成了启动盘后,如何复原
  4. 云原生——动态通讯录
  5. 单片机开发-雾化器单片机方案分享
  6. CAS单点登录的实现(二)
  7. 数字广告营销中的DSP、SSP、RTB是个什么概念
  8. “营改增”真的来了 用友推解决方案让企业税负平衡
  9. MDaemon的安装入门篇
  10. 通过代码入门Spring②何为AOP