用iptable来实现调度

本文详细介绍了如何使用iptables实现端口映射和网络地址转换(NAT),包括如何允许特定端口连接、端口转发规则设置、以及在不同场景下NAT的应用与配置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最简单的iptables
iptables -F INPUT
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -P INPUT DROP
这样就只允许通过tcp和这台服务器的80来建立链接了。web服务器用这个就够用了

添加内部端口转发
1.将12344端口的请求转发到80上
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12344 -j REDIRECT --to-port 80
这样有什么用呢?一是方便管理,二是可以隐藏真实的服务端口
2.下面继续,将本机8000端口的请求,转发到192.168.1.20的80端口上
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.20:80
iptables -nL -t nat
查看本机的nat
要利用iptables来实现NAT,还需要以下命令来允许服务器转发数据包
echo 1>/proc/sys/net/ipv4/ip_forward
此时并没有完成,还必须到实际服务器上,把实际服务器的网管修改成nat服务器的ip,不然数据包去了就回不来了
到实际服务器192.168.1.20上执行route add default gw nat服务器的ip
/sbin/iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.20:80
/sbin/iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 12344 -j REDIRECT --to-port 80

基于以上,就可以把对一个服务器的端口映射到另外一个实际服务器上了。

iptables -t nat -D PREROUTING 2
删除第二条转发

对于lvs来说,有三种模式,lvs-nat、lvs-dr、lvs-tun
lvs-nat由于所有的数据都要经过调度器,所以数据包较多的情况下,会受限于网卡
lvs-dr返回的数据并不经过调度器,而且在web应用中,返回的数据会大于请求的数据,这样就非常有利于使用lvs-dr,但是这需要额外的真实ip,因为你要直接返回数据
lvs-tun解决了机器必须在局域网的问题,但仅linux支持IP Tunneling

参考网址:
http://www.uml.org.cn/zjjs/201211124.asp
系统软件层级架构 本人主要是基于Gualcoom平台软件架构开发,Gualcoom平台是以QNX为Host OS,并且其中包含Hypervisor 功能,Type 2软件架构方案。 Android Automotive OS为guest OS, 对Type 2软件架构分级进一步详细,再加上MCU 软件部分。 先从SOC部分开始介绍,QNX启动GVM进程加载Android,Android主要分为APP、Framework、Native service、HAL 、BSP layer。 Android特别解释: Native Service:主要包含system分区除了framework 核心服务之外的一些外设服务,比如MDNSD(Multicast DNS daemon)、logcat、ADBD、Iptable、Radio Service、Factory Reset。还有和Vendor厂商相关的Native Service,比如:Thermal Engine、CNSS(Compass Navigation Satellite System)-Daemon、Power Daemon 、IPACM(IP Access Control Manager)。 Extend Service:主要是Vendor 厂商定制化的system Service,比如Speech Service、OMS(Occupation Monitor Service)、Car Audio Service。 Android Runtime:Ueventd 、VOLD、LMKD、 Tombstone、Zygote、Service Manager,这都是标准组件。 IPC OS:这个都是主机厂为了SOA Service所使用的模块,Android OS可以直接和外域OS通信。 QNX特别解释: Infrastructure Service:在QNX系统中提供核心服务的模块:收集QNX Log Service(一般会同时收集MCU log,然后通过UFS映射到Android 分区,直接通过ADB就可以查看,非常方便,不是需要通过MCU厂商提供的软件来导出MCU Log,很麻烦)、管理QNX power Service、接收Android系统界面信号vehicle Signal Service、接收整车车控信号的IPC Service、OMS、DMS、管理CSD屏幕和仪表屏幕的Display Service。 Cluster Service:主要是为仪控HMI APP提供基础服务能力,比如:接收IPC Service发送过来的车控信号,在仪表界面显示的各种状态灯提供处理分析逻辑;在多屏互动过程中提取Android map的图像数据和设置显示图层的基础Service;接收ADAS传输过来的自动驾驶感知数据Service。 APP:主要指HMI 模块,这个layer一般都会使用Unity或者Unreal Engine提供的解决方案和产品,让仪表屏幕能够显示各种图像和数据。再包括一些数据消息缓存队列 MCU软件架构主要是以AUTOSAR为标准进行搭建的,主要是处理总线信号的功能(包括各种车控信号和整车电源信号),主机厂能够开发的应该是SWC Layer,其他部分都是买的定制化AUTOSAR系统组件。 AUTOSAR(Automotive Open System Architecture)是一个全球性的汽车行业合作组织,同时也是一个开放的标准化软件架构,旨在为汽车电子系统提供一个标准化的开发框架。框架就相当于是把接口定义好,但是实现是需要自己写代码的,所以主机厂的AUTOSAR都是买的供应商的。 结合这篇文章的这些部分 展开描述一下智能座舱系统架构师的工作和所需要的技能?以一种科普笔记的视角和方式?
最新发布
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值