Несколько виртуальных интерфейсов через netgraph

Допустим, вам необходимо создать несколько виртуальных интерфейсов, которые будут работать как обычные, не зависимые друг от друга. Это очень легко делается через netgraph. Приведу лишь скрипт, который создаст 3 виртуальных интерфейса, не трогая при этом физический:

#!/bin/sh
 ngctl mkpeer em0: bridge lower link0
 ngctl connect em0: em0:lower upper link1
 ngctl name em0:lower em0Bridge
 ngctl mkpeer em0:lower eiface link3 ether
 ngctl mkpeer em0:lower eiface link4 ether
 ngctl mkpeer em0:lower eiface link5 ether

где em0 – наш физический интерфейс. Теперь вывод ifconfig выглядит так:

# ifconfig
em0: flags=8843 metric 0 mtu 1500
        options=9b
        ether 08:00:27:e3:37:ae
        inet 10.10.10.94 netmask 0xffffff00 broadcast 10.10.10.255
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active
lo0: flags=8049 metric 0 mtu 16384
        options=3
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=21
ngeth0: flags=8843 metric 0 mtu 1500
        options=28
        ether 00:00:00:00:00:00
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active
ngeth1: flags=8802 metric 0 mtu 1500
        options=28
        ether 00:00:00:00:00:00
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active
ngeth2: flags=8802 metric 0 mtu 1500
        options=28
        ether 00:00:00:00:00:00
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active

Но как видим MAC-адреса у нас пустые. Присвоим IP и MAC адреса на ngeth0:

#ifconfig ngeth0 link 00:11:22:33:44:01
#ifconfig ngeth0 inet 192.168.1.254 netmask 255.255.255.0
#ngeth0: flags=8843 metric 0 mtu 1500
        options=28
        ether 00:11:22:33:44:01
        inet 192.168.1.254 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29
        media: Ethernet autoselect (1000baseT )
        status: active

Оригинал: skeletor.org.ua/?p=3007

Запись опубликована в рубрике *CentOS, *Lan&Wan, *Unix,*Linux, *Сети, FreeBSD. Добавьте в закладки постоянную ссылку.

Один ответ на “Несколько виртуальных интерфейсов через netgraph

  1. Eugen говорит:

    mail# cat start_if.re0
    if=re0
    ifconfig $if inet 192.168.205.4 netmask 255.255.255.0
    ngctl mkpeer $if: bridge lower link1
    ngctl mkpeer $if: bridge lower link10
    ngctl mkpeer $if: bridge lower link11
    ngctl mkpeer $if: bridge lower link12
    ngctl mkpeer $if: bridge lower link13
    ngctl name $if:lower bnet10
    ngctl connect $if: bnet10: upper link1
    ngctl mkpeer bnet10: eiface link20 ether
    ngctl mkpeer bnet10: eiface link22 ether
    ngctl mkpeer bnet10: eiface link23 ether
    ngctl mkpeer bnet10: eiface link24 ether
    ngctl mkpeer bnet10: eiface link25 ether

    ifconfig ngeth0 ether 00:0d:86:aa:f3:2b
    ifconfig ngeth1 ether 00:0d:86:aa:f3:3b
    ifconfig ngeth2 ether 00:0d:86:aa:f3:4b
    ifconfig ngeth3 ether 00:0d:86:aa:f3:5b
    ifconfig ngeth4 ether 00:0d:86:aa:f3:6b

    ngctl msg $if: setpromisc 1
    ngctl msg $if: setautosrc 0
    ifconfig ngeth0 inet 192.168.201.4/24
    ifconfig ngeth1 inet 192.168.202.4/24
    ifconfig ngeth2 inet 192.168.203.4/24
    ifconfig ngeth3 inet 192.168.204.4/24
    ifconfig ngeth4 inet 192.168.210.4/24
    #ifconfig re1 ether 00:20:ed:7:78:9b

Добавить комментарий для Eugen Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91