I fixed some issues in yast2-network-2.17.16 and did some tests and the result is : it works fine!
1 - Boot into any already installed linux, download kernel & initrd, create /boot/grub/menu.lst entry - some documentation here, also possible to use miniISO
2 - Into bootloader pass install=$custom_or_public_NETWORK_repository option
3 - Unplug your wired card
4 - With this setup will Linuxrc try to use your wireless network card to connect network repository. There are some dialogs to specify ESSID, WEP/WPA and sharedkey
5 - In case of connection succeed, do installation as usual (via wireless ;-))
6 - Before first reboot this network setup will be saved as persistent (into /etc/sysconfig/network/ifcfg-wlan0)
7 - During next boot (2nd stage of installation) wireless network is automatically up and you can finish installation
Thursday, August 7, 2008
Monday, August 4, 2008
YaST network and Tunnels
From version yast2-network-2.17.14 YaST has support for creating tunnels. This is good for virtual networking, VPN and virtualization.
But theory you can read on many places (including wikipedia), so here is practical example of configuration:
My previous "usual" configuration

In YaST, remove configuration from eth0 (because this configuration belongs to bridge - see later)

Create new TAP device, click Next

Leave default "Persistent Tunnel" and set owner and/or group to access this device from user account

Configuration overview

Create new network interface type bridge

Put eth0 and tap0 into bridge and configure bridge with DHCP (as eth0 before)

Configuration overview

Using TAP device with VirtualBox.

Virtualized machine through tunnel connected into bridge is accessible from outside network!
But theory you can read on many places (including wikipedia), so here is practical example of configuration:
My previous "usual" configuration
urchin:/home/mzugec/svn/trunk/network # ip a
1: lo: <loopback,up,lower_up> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <broadcast,multicast,promisc,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
inet 10.20.1.28/21 brd 10.20.7.255 scope global eth0
3: eth1: <broadcast,multicast> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:5c:e4 brd ff:ff:ff:ff:ff:ff

In YaST, remove configuration from eth0 (because this configuration belongs to bridge - see later)

Create new TAP device, click Next

Leave default "Persistent Tunnel" and set owner and/or group to access this device from user account

Configuration overview

Create new network interface type bridge

Put eth0 and tap0 into bridge and configure bridge with DHCP (as eth0 before)

Configuration overview

urchin:/home/mzugec/svn/trunk/network/src # ip a
1: lo: <loopback,up,lower_up> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
2: eth0: <broadcast,multicast,promisc,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
3: eth1: <broadcast,multicast> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:11:d8:39:5c:e4 brd ff:ff:ff:ff:ff:ff
24: tap0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast qlen 500
link/ether 00:ff:1c:00:23:8b brd ff:ff:ff:ff:ff:ff
25: br0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc noqueue
link/ether 00:11:d8:39:4e:d0 brd ff:ff:ff:ff:ff:ff
inet 10.20.1.28/21 brd 10.20.7.255 scope global br0
urchin:/home/mzugec/svn/trunk/network/src # brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0011d8394ed0 no eth0
tap0
Using TAP device with VirtualBox.
Virtualized machine through tunnel connected into bridge is accessible from outside network!
Monday, July 21, 2008
AutoYaST, network device names
Everybody probably knows YaST. You should use it, at least for installation. And what about AutoYaST? AutoYaST is a great tool for automatic installation and configuration. I did some work regarding automatic installation & network setup during installation. Documented here
I did 4 tests:
1 - When installation starts, udev will create configuration file for persistent naming (based on MAC address). At the end of 1st stage (before first reboot) YaST will copy this file into installed system, so after reboot all network devices will have same device names.
2 - Same as 1, but during AutoYaST installation. That means when no rule in AutoYaST profile about this file, keep it, not replace by empty file.
3 - Use AutoYaST profile. When there is defined some rule about this file, use it and replace the original one. This example from networking section creates corresponded udev rule to keep eth0 name for interface with 08:00:27:07:a2:2d MAC address (and replaces udev rule file from 1):
part of AY.xml
/etc/udev/rules.d/70-persistent-net.rules file as a result:
4 - Migration from SLES10-style syntax. When you use your old profile (from <=SLES10x), it's something like:
YaST will convert device name eth-id-08:00:27:07:a2:2d into rule for udev:
and rename configuration name into eth0
And that's all for now ...
... have a lot of fun
Bye,
Michal
I did 4 tests:
1 - When installation starts, udev will create configuration file for persistent naming (based on MAC address). At the end of 1st stage (before first reboot) YaST will copy this file into installed system, so after reboot all network devices will have same device names.
2 - Same as 1, but during AutoYaST installation. That means when no rule in AutoYaST profile about this file, keep it, not replace by empty file.
3 - Use AutoYaST profile. When there is defined some rule about this file, use it and replace the original one. This example from networking section creates corresponded udev rule to keep eth0 name for interface with 08:00:27:07:a2:2d MAC address (and replaces udev rule file from 1):
part of AY.xml
<networking>
...
<net-udev type=list>
<rule>
<rule>ATTR{address}</rule>
<value>08:00:27:07:a2:2d</value>
<name>eth0</name>
</rule>
</net-udev>
...
</networking>
/etc/udev/rules.d/70-persistent-net.rules file as a result:
# Generated by autoyast
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:07:a2:2d", NAME="eth0"
4 - Migration from SLES10-style syntax. When you use your old profile (from <=SLES10x), it's something like:
<networking>
...
<interfaces config:type=list>
<interface>
<bootproto>dhcp</bootproto>
<device>eth-id-08:00:27:07:a2:2d</device>
<name>79c970 [PCnet32 LANCE]</name>
<startmode>auto</startmode>
<usercontrol>no</usercontrol>
</interface>
</interfaces>
...
</networking>
YaST will convert device name eth-id-08:00:27:07:a2:2d into rule for udev:
# Generated by autoyast
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:07:a2:2d", NAME="eth0"
and rename configuration name into eth0
And that's all for now ...
... have a lot of fun
Bye,
Michal
Wednesday, July 9, 2008
Network Documentation
I started to document some exceptions or special cases of network during installation. But this is I already know (I don't know what users don't know or wants to know ;-)) so if anybody wants to some parts be more detailed or something is missing there, your feedback is welcome.
Thursday, July 3, 2008
IPv6 - network, applications, ...
As I already wrote, there is support in YaST network module to configure IPv6 addresses (one or more), possibly mixed with IPv4:

But what is really new - support to configure apache2 server for IPv6 environment:

Setup on which addresses apache listen

Detail of virtual host (based on IP)
And test that it works:

This is in version yast2-http-server-2.17.2

But what is really new - support to configure apache2 server for IPv6 environment:

Setup on which addresses apache listen

Detail of virtual host (based on IP)
And test that it works:

This is in version yast2-http-server-2.17.2
Sunday, June 22, 2008
web UI for YaST
With python-bindings we can slowly move our wishes from impossible into possible group.One of our wishes is web UI. Today before lunch I did some research, and it works!
Fist of all enable mod_python in apache2, then configure Handler for Python.
Then write index.py with this code:
def getDescription():
import ycp
ycp.import_module('Lan')
ycp.import_module('LanItems')
ycp.Lan.Read(ycp.Term('nocache'))
interfaces=ycp.LanItems.Overview()
descr="<table>"
for interface in interfaces:
descr+="<tr><td>"+interface['table_descr'][0]+"</td>"
descr+="<td>"+interface['rich_descr']+"</td></tr>"
descr+="</table>"
return descr
def index():
s = """\
<html>
<body>
"""+getDescription()+"""
</body>
</html>
"""
return s
It needs some hack - disable check if YaST code is running as root. I commented one line in Lan::Read() function. And result is here:
It's just summary of network devices configuration. I know it's very simple example, but as I wrote - the plan was to do it before lunch, not instead of ;-)
Fist of all enable mod_python in apache2, then configure Handler for Python.
Then write index.py with this code:
def getDescription():
import ycp
ycp.import_module('Lan')
ycp.import_module('LanItems')
ycp.Lan.Read(ycp.Term('nocache'))
interfaces=ycp.LanItems.Overview()
descr="<table>"
for interface in interfaces:
descr+="<tr><td>"+interface['table_descr'][0]+"</td>"
descr+="<td>"+interface['rich_descr']+"</td></tr>"
descr+="</table>"
return descr
def index():
s = """\
<html>
<body>
"""+getDescription()+"""
</body>
</html>
"""
return s
It needs some hack - disable check if YaST code is running as root. I commented one line in Lan::Read() function. And result is here:
| PRO/Wireless 3945ABG Network Connection | PRO/Wireless 3945ABG Network Connection (Not connected) MAC : 00:18:de:64:b8:0d The device is not configured. Press Edit |
| 82573L Gigabit Ethernet Controller | 82573L Gigabit Ethernet Controller MAC : 00:16:41:aa:74:56
|
It's just summary of network devices configuration. I know it's very simple example, but as I wrote - the plan was to do it before lunch, not instead of ;-)
Wednesday, June 18, 2008
IPv6, prefixlen
This story started when I discussed with our openSUSE member Marek Stopka and he told me that he is running IPv6 network but because of really bad support in YaST2 he needs to configure that manually.
Oh, what a shame! So we made a deal that he'll test my patches and I'll try to implement initial support.
So now we have initial support for IPv6 in YaST. Initial means that you're able to configure "primary" address IPv6 type. Nothing more, nothing less.
Because of this I add new parameter to configure prefixlen (in v6 there is no netmask as we know from v4). In UI you can configure prefix with a little trick - instead of 255.255.255.0 you can write "/24".
Ok, example of CLI:
And some screenshots from ncurses UI:


Of course there's still much work to implement full support, routing, network services support, test all possible cases, AutoYaST, etc.
Implemented in yast2-network-2.17.1
Oh, what a shame! So we made a deal that he'll test my patches and I'll try to implement initial support.
So now we have initial support for IPv6 in YaST. Initial means that you're able to configure "primary" address IPv6 type. Nothing more, nothing less.
Because of this I add new parameter to configure prefixlen (in v6 there is no netmask as we know from v4). In UI you can configure prefix with a little trick - instead of 255.255.255.0 you can write "/24".
Ok, example of CLI:
linux-1pi7:~ # yast lan list
0 79c970 [PCnet32 LANCE], Not configured
1 79c970 [PCnet32 LANCE], Not configured
linux-1pi7:~ # yast lan edit id=0 ip=2001:15c0:668e::5 prefix=48
Ethernet Network Card
MAC : 08:00:27:80:b5:07
Device Name: eth1
Started automatically at boot
IP address: 2001:15c0:668e::5/48
linux-1pi7:~ # yast lan list
0 Ethernet Network Card, 2001:15c0:668e::5
1 79c970 [PCnet32 LANCE], Not configured
linux-1pi7:~ #
And some screenshots from ncurses UI:


Of course there's still much work to implement full support, routing, network services support, test all possible cases, AutoYaST, etc.
Implemented in yast2-network-2.17.1
Subscribe to:
Posts (Atom)