FreeBSD i zabawy z ifconfig

Podstawowym zadaniem serwerow jest komunikacja wszelkiego rodzaju. Zwykle przez interface sieciowy. Interface to najniższa warstwa sprzętowa służąca do kumunikacji. Dlatego warto zainteresować się podstawowymi i nie tylko poleceniami i operacjami na interfacach (oczywiście mowa będzie o FreeBSD ). Skupię się tutaj na typach mediów bo właśnie ostatnio z nimi miałem problem.

Zobaczmy najpierw listę dostępnych interfaców:

diablo# ifconfig -a
fxp0: flags=8843 metric 0 mtu 1500
        options=8
        ether 00:d0:b7:65:dd:64
        inet 192.168.1.111 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX )
        status: active
lo0: flags=8049 metric 0 mtu 16384
        inet 127.0.0.1 netmask 0xff000000

Jak widać mamy jeden interface fizyczny (fxp0) który ma adres 192.168.1.111 oraz pracuje w trybie 100baseTX który został wybrany automatycznie. Popatrzmy zatem na inną maszynę

szaka# ifconfig -a
bge0: flags=8843 mtu 1500
        options=1b
        inet 195.242.117.16 netmask 0xffffff00 broadcast 195.242.117.255
        inet 195.242.117.17 netmask 0xffffffff broadcast 195.242.117.17
        ether 00:06:5b:38:fc:b3
        media: Ethernet 100baseTX
        status: active
fxp0: flags=8802 mtu 1500
        options=8
        ether 00:06:5b:38:fc:b2
        media: Ethernet autoselect (none)
        status: no carrier
plip0: flags=108810
 mtu 1500
lo0: flags=8049 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000

Druga maszyna wygląda ciekawiej, ma dwa interface sieciowe (bge0, fxp0) oraz jak widać pojawia się tutaj coś związanego z ipv6. Wcześniejszy system miał przekompilowane jądro bez obsługi ipv6.

Ok, tyle teorii a teraz trochę praktyki:

ifconfig -m bge0

– wyświetli nam listę typów mediów jakie są obsługiwane

bge0: flags=8843 mtu 1500
        options=1b
        capabilities=1b
        inet 195.242.117.16 netmask 0xffffff00 broadcast 195.242.117.255
        inet 195.242.117.17 netmask 0xffffffff broadcast 195.242.117.17
        ether 00:06:5b:38:fc:b3
        media: Ethernet 100baseTX
        status: active
        supported media:
                media autoselect
                media 1000baseTX mediaopt full-duplex
                media 1000baseTX
                media 100baseTX mediaopt full-duplex
                media 100baseTX
                media 10baseT/UTP mediaopt full-duplex
                media 10baseT/UTP
                media none

Czyli jak widać mamy tutaj wszystko co dusza zapragnie 🙂 Teraz możemy zmienić typ:

ifconfig bge0 media 100baseTX mediaopt full-duplex

tak aby nasza karta sieciowa nie wybierała sobie sama typu połączenia, tylko na sztywno.

Jeżeli ta operacja rozwiąże nasze problemy z kartą sieciową, to warto dodać sobie ten wpis na stałe do /etc/rc.conf

 ifconfig_bge0="inet 195.242.117.16  netmask 255.255.255.0 media 100baseTX mediaopt full-duplex"

Więcej informacji można znaleźć na tej stronie