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

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:
一.网络整体框架
  网络结构如图, 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/

相关文章
|
7月前
|
存储 Linux API
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
在计算机系统的底层架构中,操作系统肩负着资源管理与任务调度的重任。当我们启动各类应用程序时,其背后复杂的运作机制便悄然展开。程序,作为静态的指令集合,如何在系统中实现动态执行?本文带你一探究竟!
【Linux进程概念】—— 操作系统中的“生命体”,计算机里的“多线程”
|
6月前
|
存储 Linux iOS开发
【Linux】冯诺依曼体系与操作系统理解
本文深入浅出地讲解了计算机体系的两大核心概念:冯诺依曼体系结构与操作系统。冯诺依曼体系作为现代计算机的基础架构,通过中央处理器、存储器和输入输出设备协同工作,解决了硬件性能瓶颈问题。操作系统则是连接硬件与用户的桥梁,管理软硬件资源,提供运行环境。文章还详细解析了操作系统的分类、意义及管理方式,并重点阐述了系统调用的作用,为学习Linux系统编程打下坚实基础。适合希望深入了解计算机原理和技术内幕的读者。
153 1
|
6月前
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
6月前
|
弹性计算 运维 安全
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
|
2月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
121 0
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
113 18
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
125 10
|
6月前
|
运维 API 开发工具
【阿里云】操作系统控制台操作体验与性能评测全解析
操作系统控制台是现代云计算环境中进行系统管理和运维的重要工具,提供系统概览、诊断、观测、管理等功能,支持API、SDK、CLI等管理方式。通过创建角色、系统配置和组件安装等操作,用户可以高效管理云端资源,提升操作系统的使用效率和稳定性。尤其适合需要高效管理操作系统的用户及学习云计算、网络管理的学生。建议增强自定义功能、优化性能报告和完善文档支持,以进一步提升用户体验。
197 21
【阿里云】操作系统控制台操作体验与性能评测全解析
|
6月前
|
监控 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) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
6月前
|
存储 机器学习/深度学习 人工智能
阿里云服务器第八代通用型g8i实例评测:性能与适用场景解析
阿里云服务器通用型g8i实例怎么样?g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。本文将深入探讨g8i实例的产品特性、优势、适用场景及规格族,以帮助您更好地了解这款产品,以供参考和选择。