/3/15 1, linux. linux,,. : 1.NAT ; 2. (load balance, virtual server);; 3. ; 4. ; 5. 6.VPN; 7. ; 8. ; 9.. (,

Similar documents
文件1

Chapter #

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

Simulator By SunLingxi 2003

CC213

<4D F736F F D20D2F8D0D043444D41CEDECFDFBDD3C8EB41544DBBFAC1AACDF8D3A6D3C3BDE2BEF6B7BDB0B82DD0DEB8C4B0E62E646F63>

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

IP505SM_manual_cn.doc

嵌入式Linux块设备驱动开发解析

Microsoft Word - XN30Chap3.doc

財金資訊-80期.indd

R3105+ ADSL

SL2511 SR Plus 操作手冊_單面.doc

ebook140-8

C6_ppt.PDF

untitled

NSC-161

ebook140-9

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

D E 答 案 :C 3. 工 作 站 A 配 置 的 IP 地 址 为 /28. 工 作 站 B 配 置 的 IP 地 址 为 /28. 两 个 工 作 站 之 间 有 直 通 线 连 接, 两 台

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

DOS下常用的网络命令.PDF

ebook

C 1

第 7 章 下 一 代 网 际 协 议 IPv6 141 足 的 措 施 只 能 是 权 宜 之 计 (3) 路 由 表 膨 胀 早 期 IPv4 的 地 址 结 构 也 造 成 了 路 由 表 的 容 量 过 大 IPv4 地 址 早 期 为 网 络 号 + 主 机 号 结 构, 后 来 引 入

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

经华名家讲堂

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

C/C++ - 文件IO

赣州市三年主攻工业推进计划(2016—2018年)

KL DSC DEMO 使用说明

IP Access Lists IP Access Lists IP Access Lists

穨CAS1042中文手冊.doc

计算机网络概论

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word htm

...31 (POTS) Internet VPN VPN VPN ATM ( ) CPE VPN L2TP PPTP ( ) IPSec ( ) VPN (PP-VPNs) MPLS VPN BGP/MPLS VPN RFC2547bis ( ) RFC 2547bis VPN RFC 2547b

一.NETGEAR VPN防火墙产品介绍

SEC-220

untitled

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

自由軟體教學平台

epub 61-2

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

提问袁小兵:

NSC-282

穨control.PDF

RUN_PC連載_10_.doc

一、选择题

Microsoft PowerPoint - 数据通信-ch1.ppt

QL1880new2.PDF

A9RF716.tmp

PS PS GMM SM.zte.com.

第3章 计算机网络体系结构

目 录(目录名)

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

目录 简介... 3 BGP 重发布进 OSPF 环境拓扑图... 3 BGP 重发布进 OSPF 路由过滤... 4 FGT200B 关键配置... 4 接口 IP 配置... 4 Route-Map... 4 BGP 的配置... 5 FGT100E 关键配置... 5 接口 IP 及 BGP

飞鱼星多WAN防火墙路由器用户手册

穨CAS1042快速安速說明.doc

untitled

untitled

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

自由軟體教學平台

SAPIDO GR-1733 無線寬頻分享器

FreeRouter V2 完全手册

untitled

工程师培训

1 QoS... 1 QoS... 1 QoS QoS... 5 Class DSCP... 7 CoS... 7 IP QoS... 8 IP / /... 9 Cl

穨IC-1000

D-link用户手册.doc

自由軟體教學平台

NetST 2300系列防火墙产品白皮书

ebook2-1

C/C++ - 函数

Quidway S3526系列交换机R0028P01版本发布

untitled

untitled

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>

RAQMON Context Setting MG PDA Applications RTP / FTP/ HTTP TCP/UDP S ignaling control plane (e.g. RS VP, NS IS) Streaming Media, Transaction, Bulk dat

untitled

(UTM???U_935_938_955_958_959 V )

Transcription:

Yawl(yawl@docshownet) wwwdocshownet 2000/3/15 1, linux linux,, 1NAT ; 2 (load balance,virtual server);; 3 ; 4 ; 5 6VPN; 7 ; 8 ; 9 (,, )IP, (VPN,, ) IP, (call_in_firewall(),call_fw_firewall(),call_out_firewall(), 2 linux ( 22 linux, ) Linux skbuff(include/skbuffh),, skbuff, skbuff skbuff Skbuff, ; ( ), ( TCP/IP )

IP ip_rcv()ip_forward()ip_output(), IP 3 31 NAT, (NAT) ( )IP ( )IP, IP (RFC 1918), internet, IP NAT, IP,NAT NAT (static address translation) NAT(dynamic address translation) NAT ----------- IP IP, IP IP, linux,224, ipnatadm, 2213 ( ), /ipv4/ip_nat_dumbc, ip_do_nat() ip_forward(),ip_output() ( ) ( CONFIG_IP_ROUTE_NAT CONFIG_IP_MULYIPLE_TABLE) NAT -------------- IP IP, linux IP ( ), IP, TCP/UDP

多台主机共用一个地址此时防火墙必须维持一个动态的映射表,且随时要对此表进行更新 原理如下图所示 伪装功能相关文件有(均在 /ipv4 目录) ip_masqc ip_masq_appc ip_masq_cuseemec ip_masq_ftpc ip_masq_mfwc ip_masq_modc ip_masq_quakec ip_masq_raudioc ip_masq_vdolivec 头文件有 ip_masq_autofwc ip_masq_ircc ip_masq_portfwc ip_masq_userc #include <net/ip_masqh> #include <linux/ip_masqh> #ifdef CONFIG_IP_MASQUERADE_MOD #include <net/ip_masq_modh> #endif 其中最主要的文件是 ip_masqc,它定义了对应用层的接口和实际的地址伪装处理过程其余 文件大多是根据专门应用的扩展 流程为(没有结合包过滤)

当 IP 层接受到信息(ip_rcv)以后,在确定信息准确无误后,查路由,伪装的包和去往防火墙本身 的包的目的地址均是防火墙的对外地址,IP 层将用 ip_local_deliver()进行处理,其中便调用了 ip_fw_demasquerade() 解伪装会将真正的目的地址和端口恢复出来 经过再次查路由 如 果是发往本地的包,则交给相应的上层去处理(tcp_ipv4_rcv, udp_rcv, raw_rcv 等),否则调用 ip_forward() ip_fw_masquerade()则在 ip_forward()中被调用 具体算法 公开地址与内部地址的映射表采用的数据结构是ip masq 在 include net ip masq h中定 义 其格式为 struct ip masq struct list head m list s list d list hashed d linked list heads atomic t refcnt reference count struct timer list timer Expiration timer 以下几个是最重要的参数 分别为所用的协议 protocol 源 目的地址 saddr daddr 源 目的端口 sport dport 经伪装后的地址 端口 maddr mport u16 protocol Which protocol are we talking u16 sport dport mport src dst masq ports u32 saddr daddr maddr src dst masq addresses struct ip masq seq out seq in seq struct ip masq app app bound ip masq app object void app data Application private data struct ip masq control Master control connection atomic t n control Number of controlled masqs unsigned flags status flags unsigned timeout timeout unsigned state state info

, setsocket int setsocket (int socket, IPPRPTO_IP, int command, void *data, int length) (MASQ) MASQ, ( ) (, ),,

linux 32 (load balance, virtual server) (, IP ) NAT, NAT IP, IP ( ) ( ) IP,,, (NAT),, *Random, *Round Robin *, server *, ping,,,checkpoint, linux, Linux Virtual Server Project( proxyiinchinanet/~wensong/ippfvs/) ip_vsc ip_vs_rrc ip_vs_wrrc ip_vs_wlsc ip_vsc, Round Robin, Weighted Round Robin, Weighted Least Connection ( ) 33

IP,,,SYN, Linux (input chain, forward chain, output chain),, ( ), chain * *, (ACCEPT, REJECT, DENY, MASQ,REDICT, RETURN) * a ; b packet byte,, (ipchains L v ) c, *, ipfwc, ipfwh(ip ),firewallc, firewallh( ) ip_rcv()ip, a ; b (4? 6?); c if (skb->len < sizeof(struct iphdr)) goto inhdr_error; if (iph->ihl < 5 iph->version!= 4 ip_fast_csum((u8 *)iph, iph->ihl)!= 0) goto inhdr_error;, fwres = call_in_firewall(pf_inet, dev, iph, &rport, &skb); fwres,

f (fwres < FW_ACCEPT && fwres!= FW_REJECT) goto drop; ip_route_input(skb, iph->daddr, iph->saddr, iph->tos, dev) IP (iph->ihl > 5), () skbuff dst, skb->dst->input(skb), ip_local_deliver(),, ip_forward(),, IP IP,, ip_local_deliver(),ip_local_deliver(),,,, ip_forward() ip_forward() call_fw_firewall() (ip_output, ip_queue_xmit), call_out_firewall() ip_fwc ip_fw_init() call_in_firewall, call_fw_firewall, call_out_firewall, ip_fw_check(), ip_fw_check() ip_chain (ip_fwc), ip_fwkernel (ip_fwc), ip_fw (ip_fwh) struct ip_fw { }; struct in_addr fw_src, fw_dst; /* Source and destination IP addr */ struct in_addr fw_smsk, fw_dmsk; / * Mask for src and dest IP addr */ u32 fw_mark; /* ID to stamp on packet */ u16 fw_proto; /* Protocol, 0 = ANY */ u16 fw_flg; /* Flags word */ u16 fw_invflg; /* Inverse flags */ u16 fw_spts[2]; /* Source port range */ u16 fw_dpts[2]; /* Destination port range */ u16 fw_redirpt; /* Port to redirect to */ u16 fw_outputsize; /* Max amount to output to NETLINK */ char fw_vianame[ifnamsiz]; /* name of interface "via" */ u8 fw_tosand, fw_tosxor; /* Revised packet priority */

( flag ) ip_fw_check() ( ip_fw ), setsockopt man man ipfw 34 linux, printk(), printf() printk <0><2> <7>, <0>,, klogd syslog(), proc (cat /proc/kmsg) printk ( ) syslogd klogd, /etc/syslogconf,/var/log/messages ipchains (-l ), ip_fwc static void dump_packet( ), printk() klogd, cat /proc/kmsg,, <6> Packet log input DENY etho PROTO=17 1921682153 19218168111025 L=34 S=0x00 I=18 F=0x0000 T=254 <6> (KERN_INFO) /var/log/messages, syslogd, dump_packet( ) 35 linux (ipchains L v ) IP IP (, ),,, ( ), 36 VPN VPN linux

FreeS/WAN project, IPSEC & IKE, VPN 13 wwwfreeswanorg freeswan, (ifconfig), ipsec0,, ipsecn ppp0 ssh ssh telnet X11, VPN VPN mini HOWTO, PPTP linux pptp server client pptp