patch-2.0.31 linux/Documentation/networking/alias.txt
Next file: linux/Documentation/networking/ip_dynaddr.txt
Previous file: linux/Documentation/memory-tuning.txt
Back to the patch index
Back to the overall index
- Lines: 179
- Date:
Wed Sep 17 12:00:48 1997
- Orig file:
v2.0.30/linux/Documentation/networking/alias.txt
- Orig date:
Wed Jan 3 10:36:23 1996
diff -u --recursive --new-file v2.0.30/linux/Documentation/networking/alias.txt linux/Documentation/networking/alias.txt
@@ -1,9 +1,12 @@
-NET_ALIAS device aliasing v0.4x
+NET_ALIAS device aliasing v0.5x
===============================
The main step taken in versions 0.40+ is the implementation of a
device aliasing mechanism that creates *actual* devices.
This development includes NET_ALIAS (generic aliasing) plus IP_ALIAS
(specific IP) support.
+ From version 0.50, dynamic configuration of max alias per device and
+ tx/rx stats for aliases added.
+ Also fixed inter-alias routing and arping problems.
Features
--------
@@ -13,6 +16,10 @@
o hashed alias address lookup
o net_alias_type objs registration/unreg., module-ables.
o /proc/net/aliases & /proc/net/alias_types entries
+o /proc/sys/net/core/net_alias_max entry (affects hash table size
+ also)
+o tx/rx stats
+
o IP alias implementation: static or runtime module.
@@ -23,10 +30,43 @@
# cat /proc/net/alias*
For IP aliasing you must have IP_ALIAS support included by
- static linking ('y' to 2nd question above), or runtime module
- insertion ('m' to 2nd q. above):
- # insmod /usr/src/linux/modules/ip_alias.o (1.3.xx)
- # insmod /usr/src/ip_alias/ip_alias.o (1.2.xx) see above.
+ static linking ('y' to CONFIG_IP_ALIAS? question), or runtime module
+ insertion ('m'):
+ # insmod /usr/src/linux/modules/ip_alias.o (2.0.xx) or
+ # modprobe ip_alias.o
+
+ Also, dynamic loading is supported (kerneld).
+ You should have the following line in /etc/conf.modules (not needed
+ for newer modutils):
+ alias net_alias-2 ip_alias
+
+ Module options
+ --------------
+ From 0.5x ip_alias module supports a new option ("no_sel" symbol).
+ If no_sel is set (default is 0), alias association (device selection) with
+ foreign addresses will be disabled.
+
+ You will get:
+ - Faster operation by avoiding completely routing lookups.
+ Due to the "logical nature" of aliasing, netdevice SELection can only be
+ done based on info from network layer. When packet dst address isn't
+ one of my addresses, I query the routing table to see which netdevice
+ would be selected for packet _source_ address. This option avoids
+ doing so, and you must consider using it if you *only* have same-net
+ aliases (common usage).
+
+ You will loose:
+ - Inter-alias routing
+ - Proxyarp over aliases
+
+ To activate:
+ # insmod ip_alias.o no_sel=1
+ or
+ # modprobe ip_alias.o no_sel=1
+ or
+ add the following line to /etc/conf.modules:
+ options ip_alias no_sel=1
+
o Alias creation.
Alias creation is done by 'magic' iface naming: eg. to create a
@@ -49,11 +89,11 @@
alias device is closed before deletion, so all network stuff that
points to it (routes, arp entries, ...) will be released.
-Alias (re-)configuring
+o Alias (re-)configuring
Aliases *are* devices, so you configure and refer to them as usual (ifconfig,
route, etc).
-o Procfs entries
+o PROCfs entries
2 entries are added to help fetching alias runtime configuration:
a) /proc/net/alias_types
Will show you alias_types registered (ie. address families that
@@ -70,7 +110,66 @@
# cat /proc/net/aliases
device family address
eth0:0 2 200.1.1.1
-
+
+o PROCfs dynamic configuration (from v0.50)
+ You can now change the max aliases per device limit via
+ /proc/sys/net/core/net_alias_max entry (default=256)
+ # cat /proc/sys/net/core/net_alias_max
+ 256
+ # echo 1000 > /proc/sys/net/core/net_alias_max
+ # cat /proc/sys/net/core/net_alias_max
+ 1000
+ # _
+
+ With this funcionality you can disable net_alias creation from now on
+ # echo 0 > /proc/sys/net/core/net_alias_max
+
+ The new aliasing limit is considered (grabbed) when creating the
+ FIRST alias for the main device.
+ Eg:
+ # echo 10 > /proc/sys/net/core/net_alias_max
+ # ifconfig eth0:0 xx.xx.xx.xx (first alias creation for eth0,
+ eth0 will 'remember' max==10)
+ # echo 1000 > /proc/sys/net/core/net_alias_max
+ # ifconfig eth0:999 xx.xx.xx.xx
+ SIOCIFSADDR: No such device
+ Of course these semantics can be changed, please let me know.
+
+ Configuration changes get logged as usual (klogd -> /var/log/messages)
+
+o Alias devices rx/tx stats
+ Fake rx/tx stats are accounted:
+ - TX
+ When the packet is ``switched'' from logical alias device to
+ physical device, tx counter gets incremented.
+ - RX
+ When an incoming packet's address equals alias network device's addr it
+ gets ``switched'' from physical to logical device, rx counter gets
+ incr.
+
+ Please NOTE that for ``same'' network alias devices you usually have
+ one net-route through physical device (eg. eth0), so output pkts
+ will NOT pass down via alias device (so, no tx++ will occur).
+
+ Also NOTE that currently ifconfig does not handle the ``:'' of alias devices
+ names, a little patch solves the problem:
+--- ifconfig.c.dist Tue Apr 4 17:58:32 1995
++++ ifconfig.c Fri Oct 25 13:11:23 1996
+@@ -243,7 +243,12 @@
+ bp++;
+ if(strncmp(bp,ifname,strlen(ifname))==0 && bp[strlen(ifname)]==':')
+ {
+- bp=strchr(bp,':');
++ /*
++ * start bp at ifname end to prevent ':' ambiguity
++ * with alias devices (eg. eth0:0)
++ *
++ */
++ bp+=strlen(ifname);
+ bp++;
+ sscanf(bp,"%d %d %d %d %d %d %d %d %d %d %d",
+ &ife->stats.rx_packets,
+
Relationship with main device
-----------------------------
- On main device closing, all aliases will be closed and freed.
@@ -78,14 +177,19 @@
main device (aliases get 'stacked' after main_dev), eg:
lo->eth0->eth0:0->eth0:2->eth1->0
If eth0 is unregistered, all it aliases will also be:
- lo->eth1->0
+ lo->eth1->0
Contact
-------
-Please finger or e-mail me:
- Juan Jose Ciarlante <jjciarla@raiz.uncu.edu.ar>
+Please e-mail me:
+ Juan Jose Ciarlante <irriga@impsat1.com.ar> or <jjciarla@raiz.uncu.edu.ar>
-
+Acknowledments
+--------------
+Special thanks to Claudia for all her love an patience.
+Also thanks to Antonio Trevi~o <antonio@ecord.gov.ar> great human being
+and un*x guru.
+
; local variables:
; mode: indented-text
; mode: auto-fill
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov