实例解析—用Linux操作系统构建的路由器

简介:
一.网络整体框架
  网络结构如图, Linux路由器这台计算机标识为A,它与三个网段相连,192.168.1.0/24,10.0.0.0/8,172.16.0.0/16.
  A计算机必须拥有三块网卡,分别与三个网段相连。
  假设:
  eth0与172.16.0.0相连,
  eth1与10.0.0.0相连,
  eth2与192.168.1.0相连。
   二.具体网络设置
  2.1配置eth0
  首先来配置eth0.给这个网络接口分配地址172.16.1.1,运行下列命令:
  # ifconfig eth0 172.16.1.1 netmask 255.255.0.0
  为了使这个地址不再计算机重新启动后消失,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,修改为如下格式:
DEVICE = eth0
ONBOOT = yes
BROADCAST = 172.16.255.255
NETWORK = 172.16.0.0
NETMASK = 255.255.0.0
IPADDR = 172.16.1.1
  增加一条静态路由:
  # route add -net 172.16.0.0 netmask 255.255.0.0
  这样系统中就增加了一条静态路由:
  # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
  172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
   2.2配置eth1
  接下来,配置eth1,eth1与10.0.0.0网段相连,分配给它的地址是10.254.254.254,使用ifconfig命令为它配置参数:
  # ifconfig eth1 10.254.254.254 netmask 255.0.0.0
  同样编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth1文件,内容如下:
DEVICE = eth1
ONBOOT = yes
BROADCAST = 10.255.255.255
NETWORK = 10.0.0.0
NETMASK = 255.0.0.0
IPADDR = 10.254.254.254
  再增加一条静态路由:
  # route add -net 10.0.0.0 netmask 255.0.0.0
  网络中当前的路由表为
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 * 255.255.0.0 U 0 0 0 et
  2.3配置eth3
  最后配置eth3,它连接192.168.1.0网段,分配的IP地址是192.168.1.254,执行下列命令:
  # ifconfig eth2 192.168.1.254 netmask 255.255.255.0
  编辑/etc/sysconfig/network-scripts目录下的ifcfg-eth2文件,内容如下:
DEVICE = eth2
ONBOOT = yes
BROADCAST = 192.168.1.255
NETWORK = 192.168.1.0
NETMASK = 255.255.255.0
IPADDR = 192.168.1.254
  再增加一条静态路由:
  # route add -net 192.168.1.0 netmask 255.255.255.0
  这样网络中就有三条静态路由记录了:
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth2
   2.4配置缺省路由和系统转发
  2.4.1建立缺省路由
  还要为系统增加一条缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关(假设地址是172.16.1.100,这个地址依赖于使用的网络而定,由网络管理员分配),因此增加如下的缺省路由记录:
  # route add default gw 172.16.1.100
  或者
  #ip route add default via 172.16.1.100 dev eth0
  这样系统的静态路由表建立完成,它的内容是
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 * 255.255.0.0 U 0 0 0 eth0
10.0.0.0 * 255.0.0.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth2
default 172.16.1.100 0.0.0.0 UG 0 0 0 eth0
   2.4.2建立路由转发
  最后一步,要增加系统的IP转发功能。这个功能由/proc/sys/net/ipv4目录下的ip_forward文件控制,执行如下命令打开ip转发功能:
  echo 1 > /proc/sys/net/ipv4/ip_forward
  或者
  /etc/sysctl.conf文件,让包转发功能在系统启动时自动生效:
  # Controls IP packet forwarding
  net.ipv4.ip_forward = 1
  iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
  #iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth1 -j MASQUERADE
  参数说明:
  -t nat:调用NAT表,调用这个说明遇到了产生新的连接的包。
  -A POSTROUTIN:指定信息包打算离开防火墙时改变它们的规则,意即使用NAT。
  -s 192.168.1.0/255.255.255.0:要进行NAT转换的源地址,也就是内网地址。
  -o eht0:输出接口为eth0。
  -j MASQUERADE:指定进行地址伪装,意即将内网地址伪装成外接口eth0的地址进行传输。
  整条语句的意思就是将内网向外连接的数据包的地址转换为外网接口的地址并从外接口转发,同时外
  网访问内网的连接将被映射到相应的内网地址。
  Iptables上的设置可用命令iptables -t nat –nvL查看。
  保存iptables配置。
  /etc/rc.d/init.d/iptables save
  使用这条命令就可以将iptables配置写入到文件/etc/sysconfig/iptables中去了。
  重启iptables使配置生效。
  service iptables restart
   2.4.3 常用命令
ip route del default
iptables -t filter –nvL
iptables -t nat -nvL
ip route ls
ip route delete 169.254.0.0/16
service iptables save
watch iptables -nvL
   三.测试路由器的工作情况。
  在linux路由器上测试:
  第一步,测试自身网络是否工作正常,执行如下命令
  ping 172.16.1.1
  ping 192.168.1.254
  ping 10.254.254.254
  如果这些地址都能ping通,则第一步通过,否则查找原因,排除错误。
  第二步,测试与上一级网关之间是否连通
  ping 172.16.1.100
  如果通畅,则正常;否则查找错误原因。
  在192.168.1.0网络内测试,假设它的地址是192.168.1.1,
  第一步,测试自身是否工作正常, ping 192.168.1.1
  第二步,测试与网关是否连通, ping 192.168.1.254
  第三步,测试与10.254.254.99是否连通,这是10.0.0.0网段内的一台计算机 ping 10.254.254.99
  第四步,测试与外网地址是否连通 ping 172.16.1.100 如果连通了,表示路由器配置正确,否则,查找原因,并排除之。


最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
Unix Linux
对于Linux的进程概念以及进程状态的理解和解析
现在,我们已经了解了Linux进程的基础知识和进程状态的理解了。这就像我们理解了城市中行人的行走和行为模式!希望这个形象的例子能帮助我们更好地理解这个重要的概念,并在实际应用中发挥作用。
252 20
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
3299 12
|
运维 API 开发工具
【阿里云】操作系统控制台操作体验与性能评测全解析
操作系统控制台是现代云计算环境中进行系统管理和运维的重要工具,提供系统概览、诊断、观测、管理等功能,支持API、SDK、CLI等管理方式。通过创建角色、系统配置和组件安装等操作,用户可以高效管理云端资源,提升操作系统的使用效率和稳定性。尤其适合需要高效管理操作系统的用户及学习云计算、网络管理的学生。建议增强自定义功能、优化性能报告和完善文档支持,以进一步提升用户体验。
448 21
【阿里云】操作系统控制台操作体验与性能评测全解析
|
Linux
Linux命令的基本格式解析
总的来说,Linux命令的基本格式就像一个食谱,它可以指导你如何使用你的计算机。通过学习和实践,你可以成为一个真正的“计算机厨师”,创造出各种“美味”的命令。
364 15
|
存储 Linux
Linux内核中的current机制解析
总的来说,current机制是Linux内核中进程管理的基础,它通过获取当前进程的task_struct结构的地址,可以方便地获取和修改进程的信息。这个机制在内核中的使用非常广泛,对于理解Linux内核的工作原理有着重要的意义。
633 11
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10240 2
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
985 9
|
云安全 人工智能 安全
阿里云网络安全体系解析:如何构建数字时代的"安全盾牌"
在数字经济时代,阿里云作为亚太地区最大的云服务提供商,构建了行业领先的网络安全体系。本文解析其网络安全架构的三大核心维度:基础架构安全、核心技术防护和安全管理体系。通过技术创新与体系化防御,阿里云为企业数字化转型提供坚实的安全屏障,确保数据安全与业务连续性。案例显示,某金融客户借助阿里云成功拦截3200万次攻击,降低运维成本40%,响应时间缩短至8分钟。未来,阿里云将继续推进自适应安全架构,助力企业提升核心竞争力。