iptables

iptables:

定义:命令行工具,用来和内核的netfilter模块通信;

作用:用来管理网络,做一个流量转发;

DNAT:目标地址映射

应用场景:内网做对外服务器;

电脑(外部用户):10.10.10.10(src)

公网服务器:22.22.22.22(dst)

此时,一条TCP(src - >dst:80);

内网服务器:均摊请求流量

192.168.1.1:

192.168.1.2

源端口随机分配,外部的人想请求内部的服务;

公网服务器两张网卡,对内,对外

公网网卡PPPOE拨号上网22.22.22.22   内网网卡:交换机(基于MAC地址的转发,来自于公网服务器网线+内网服务器网线,共属于一个lan)

ARP广播:谁的IP是192.168.1.1  请告诉我你的MAC地址  局域网通讯的原理

公网服务器(路由器):22.22.22.22  内网服务器:192.168.1.1   192.168.1.2  (由路由器分配,接入交换机,DHCP获取IP地址)

ps aux | grep dhcp

arp -a  (类似于吆喝一声,告诉我你们的MAC地址)

内网电脑如何上网:只能通过路由器

百度网站:10.10.10.10(dst)

内网服务器:192.168.1.2(src)

网关:Linux路由表  route -n

 目标地址与掩码&之后的IP是否是Destnation,从Iface网卡送出去UG表示网关,gateway

src_mac:自己的MAC  

dst_mac:网关的MAC(ARP广播所得);

数据包会被192.168.100.1收到;

路由器角度:

MAC地址的确是路由器,但是目标IP地址不是我,

linux内核:首先MAC地址必须是我,否则和我没关,但是目标IP不是我,Linux内核会查看自己的路由表,即路由器查看自己的路由表

路由器默认网关:运营商节点;数据一定可以送到百度;dst_mac变成了运营商的网络节点

路由规则:192.168.2.X  lan0  (192.168.2.110)

路由器发到公网前:源地址改写 22.22.22.22  目标地址保持不变10.10.10.10(地址转化SNAT源地址映射)

数据回来:

从百度角度来看:

数据包来源IP:(192.168.1.2)    22.22.22.22  目标IP确实是我

百度回包:

src_ip:101.10.10.10   dst_ip:192.168.2.2(回程丢包)   22.22.22.22(路由器收到报文了) 

路由器:的确是我,但这个包我没用啊,路由器能找到当初的转换关系,将包还原,源地址保持不变,目标地址改成当初的192.168.1.2   扔包到lan上

内网服务器视角:源ip:10.10.10.10    目标地址:192.168.1.2

各司其职

iptables规则:

开关:cat proc/sys/net/ipv4/ip_forward

 客户端  ->   (目标MAC地址改写) -路由器  --> (查询路由表,把流量送给了公网)   -->百度

路由器行为:1、mac  是不是我   2、ip是不是我(如果不是,默认丢弃) 

iptables -t nat -nvl查看规则

例子1:目标地址改写

访问本机IP地址端口     修改为访问另一台设备IP地址端口

本机:(原始请求目标)192.168.2.101  55            另外一台():192.168.2.100  53

iptables -t nat -A (append)  OUTPUT(链,内核的钩子) -p(协议,匹配)tcp -d 192.168.2.101  --dport 55  -j(行为,动作) DNAT --to-destination  192.168.2.100:53

DNAT:在回复报文的时候不需要再次加入iptables规则,只执行一次即可

删除iptables规则:iptabes -t nat -D  OUTPUT 1

dig @114.114.114.114  baidu.com(备注:解析域名)

例子2:丢掉发往114.114.114.114的包

iptables  -t filter -A OUTPUT -p udp -d 114.114.114.114  -j DROP 

网桥:linux  bridge   虚拟交换机

cat proc/net/nf_conntrack内核跟踪连接装态,内核对每一条TCP连接都有记录

iptables  -t  nat  -nvL (n:用数字表示  v:详情  L:list)

原文地址:https://www.cnblogs.com/anitaguangzi/p/13401395.html