⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 policy-routing.txt

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 TXT
字号:
Classes-------	"Class" is a complete routing table in common sense.	I.e. it is tree of nodes (destination prefix, tos, metric)	with attached information: gateway, device etc.	This tree is looked up as specified in RFC1812 5.2.4.3	1. Basic match	2. Longest match	3. Weak TOS.	4. Metric. (should not be in kernel space, but they are)	5. Additional pruning rules. (not in kernel space).		We have two special type of nodes:	REJECT - abort route lookup and return an error value.	THROW  - abort route lookup in this class.	Currently the number of classes is limited to 255	(0 is reserved for "not specified class")	Three classes are builtin:	RT_CLASS_LOCAL=255 - local interface addresses,	broadcasts, nat addresses.	RT_CLASS_MAIN=254  - all normal routes are put there	by default.	RT_CLASS_DEFAULT=253 - if ip_fib_model==1, then	normal default routes are put there, if ip_fib_model==2	all gateway routes are put there.Rules-----	Rule is a record of (src prefix, src interface, tos, dst prefix)	with attached information.	Rule types:	RTP_ROUTE - lookup in attached class	RTP_NAT   - lookup in attached class and if a match is found,		    translate packet source address.	RTP_MASQUERADE - lookup in attached class and if a match is found,		    masquerade packet as sourced by us.	RTP_DROP   - silently drop the packet.	RTP_REJECT - drop the packet and send ICMP NET UNREACHABLE.	RTP_PROHIBIT - drop the packet and send ICMP COMM. ADM. PROHIBITED.	Rule flags:	RTRF_LOG - log route creations.	RTRF_VALVE - One way route (used with masquerading)Default setup:root@amber:/pub/ip-routing # iproute -rKernel routing policy rulesPref Source             Destination        TOS Iface   Cl   0 default            default            00  *       255 254 default            default            00  *       254 255 default            default            00  *       253Lookup algorithm----------------	We scan rules list, and if a rule is matched, apply it.	If a route is found, return it.	If it is not found or a THROW node was matched, continue	to scan rules.Applications------------1.	Just ignore classes. All the routes are put into MAIN class	(and/or into DEFAULT class).	HOWTO:  iproute add PREFIX [ tos TOS ] [ gw GW ] [ dev DEV ]		[ metric METRIC ] [ reject ] ... (look at iproute utility)		or use route utility from current net-tools.		2.	Opposite case. Just forget all that you know about routing	tables. Every rule is supplied with its own gateway, device	info. record. This approach is not appropriate for automated	route maintenance, but it is ideal for manual configuration.	HOWTO:  iproute addrule [ from PREFIX ] [ to PREFIX ] [ tos TOS ]		[ dev INPUTDEV] [ pref PREFERENCE ] route [ gw GATEWAY ]		[ dev OUTDEV ] .....	Warning: As of now the size of the routing table in this	approach is limited to 256. If someone likes this model, I'll	relax this limitation.3.	OSPF classes (see RFC1583, RFC1812 E.3.3)	Very clean, stable and robust algorithm for OSPF routing	domains. Unfortunately, it is not widely used in the Internet.	Proposed setup:	255 local addresses	254 interface routes	253 ASE routes with external metric	252 ASE routes with internal metric	251 inter-area routes	250 intra-area routes for 1st area	249 intra-area routes for 2nd area	etc.		Rules:	iproute addrule class 253	iproute addrule class 252	iproute addrule class 251	iproute addrule to a-prefix-for-1st-area class 250	iproute addrule to another-prefix-for-1st-area class 250	...	iproute addrule to a-prefix-for-2nd-area class 249	...	Area classes must be terminated with reject record.	iproute add default reject class 250	iproute add default reject class 249	...4.	The Variant Router Requirements Algorithm (RFC1812 E.3.2)	Create 16 classes for different TOS values.	It is a funny, but pretty useless algorithm.	I listed it just to show the power of new routing code.5.	All the variety of combinations......GATED-----	Gated does not understand classes, but it will work	happily in MAIN+DEFAULT. All policy routes can be set	and maintained manually.IMPORTANT NOTE--------------	route.c has a compilation time switch CONFIG_IP_LOCAL_RT_POLICY.	If it is set, locally originated packets are routed	using all the policy list. This is not very convenient and	pretty ambiguous when used with NAT and masquerading.	I set it to FALSE by default.Alexey Kuznetovkuznet@ms2.inr.ac.ru

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -