NET_ALIAS device aliasing v0.4x =============================== 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. Features -------- o ACTUAL alias devices created & inserted in dev chain o AF_ independent: net_alias_type objects. Generic aliasing engine. o AF_INET optimized o hashed alias address lookup o net_alias_type objs registration/unreg., module-ables. o /proc/net/aliases & /proc/net/alias_types entries o IP alias implementation: static or runtime module. Usage (IP aliasing) ------------------- A very first step to test if you are running a net_alias-ed kernel is to check /proc/net/aliases & /proc/net/alias_types entries: # 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. o Alias creation. Alias creation is done by 'magic' iface naming: eg. to create a 200.1.1.1 alias for eth0 ... # ifconfig eth0:0 200.1.1.1 etc,etc.... ~~ -> request alias #0 creation (if it not exists) for eth0 and routing stuff also ... # route add -host 200.1.1.1 dev eth0:0 (if same IP network as main device) # route add -net 200.1.1.0 dev eth0:0 (if completely new network wanted for eth0:0) o Alias deletion. Also done by magic naming, eg: # ifconfig eth0:0- 0 (maybe any address) ~~~ -> will delete alias (note '-' after dev name) alias device is closed before deletion, so all network stuff that points to it (routes, arp entries, ...) will be released. Alias (re-)configuring Aliases *are* devices, so you configure and refer to them as usual (ifconfig, route, etc). 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 can be aliased). eg. for IP aliasing with 1 alias configured: # cat /proc/net/alias_types type name n_attach 2 ip 1 b) /proc/net/aliases Will show aliased devices info, eg (same as above): # cat /proc/net/aliases device family address eth0:0 2 200.1.1.1 Relationship with main device ----------------------------- - On main device closing, all aliases will be closed and freed. - Each new alias created is inserted in dev_chain just before next 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 Contact ------- Please finger or e-mail me: Juan Jose Ciarlante ; local variables: ; mode: indented-text ; mode: auto-fill ; end: