Маршрутизатор Ubuntu с различными подсетями ЛВС

У меня есть маршрутизатор человечности 18.04 с несколькими интерфейсами LAN:

1-й интерфейс: 2 порта 10G NIC (интерфейсы связываются/объединяются в команду), bond1: интерфейсы: [enp5s0f0, enp5s0f1]

2-й интерфейс: 4 порта NIC enp8s0f0, enp8s0f1, enp9s0f0, enp9s0f1

Функции маршрутизатора как шлюз и сервер DHCP. В настоящее время 1-е и 2-е интерфейсы соединяются мостом вместе к 192.168.0.1 (интерфейс LAN). Моя текущая netplan конфигурация следующая:

 # This file describes the network interfaces available on your system
 # For more information, see netplan(5).
 network:
   version: 2
   renderer: networkd
   ethernets:
     enp0s8:
       dhcp4: no
       dhcp6: no
       addresses: [69.59.34.150/24]
       gateway4: 69.59.34.1
       nameservers:
       addresses: [69.60.173.84, 8.8.8.8]
       optional: true
     enp0s9:
       dhcp4: no
       dhcp6: no
     enp2s0f0:
  dhcp4: no
  dhcp6: no
     enp2s0f1:
       dhcp4: no
       dhcp6: no
     enp5s0f0:
       dhcp4: no
       dhcp6: no
     enp5s0f1:
       dhcp4: no
       dhcp6: no
     enp8s0f0:
       dhcp4: no
       dhcp6: no
     enp8s0f1:
       dhcp4: no
       dhcp6: no
     enp9s0f0:
       dhcp4: no
       dhcp6: no
     enp9s0f1:
       dhcp4: no
       dhcp6: no
   bonds:
     bond0:
       interfaces: [enp2s0f0, enp2s0f1]
       parameters:
             mode: 802.3ad
             lacp-rate: fast
             mii-monitor-interval: 100
     bond1:
       interfaces: [enp5s0f0, enp5s0f1]
       parameters:
             mode: 802.3ad
             lacp-rate: fast
             mii-monitor-interval: 100
   bridges:
     br0:
       addresses: [192.168.0.1/24]
       gateway4: 192.168.0.254
       routes:
       - to: 10.10.10.0/24
         via: 192.168.0.254
       - to: 20.20.20.0/24
         via: 192.168.0.254
       interfaces: [enp8s0f0, enp8s0f1, enp9s0f0, enp9s0f1, bond1]
       parameters:
            stp: false
            forward-delay: 0

Обратите внимание, что существует несколько других интерфейсов, но мой вопрос касается br0, который соединяет мостом 4 порта NIC и 2 порта 10G NIC - они - все на той же подсети 192.168.0.x. Я указал шлюз (переключатель в 192.168.0.254) для статической маршрутизации VLAN.

Я хотел бы разбить 4 порта NIC и 2 порта 10G NIC в различные подсети (т.е. 2 различных моста). Новая схема:

2 порта 10G NIC на подсети 192.168.0.x 4 порта NIC на подсети 192.168.1.x

Я должен был бы сохранить функциональность DHCP также на обеих подсетях (предоставленный тем же полем).

Мой dhcpd.conf следующие:

 subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.240;
         option routers 192.168.0.1;
    option domain-name "xxxxxx.org yyyyyyy.com";
    option domain-name-servers 192.168.0.1;
    option broadcast-address 192.168.0.255;
 }


 host DELL_PowerConnect_6248P {
         hardware ethernet aa:bb:cc:dd:ee:ff;
         fixed-address 192.168.0.254;
         option host-name "DELL_Powerconnect_6248P";
 }

Мой вопрос - конкретно это: я могу разделить два NICs путем создания другого моста только с 4 портами NIC на подсети 192.168.1.x и затем просто добавить другую подсеть в файле конфигурации DHCP и иметь все работа?

Мое обоснование для того, чтобы сделать это просто. 10G NIC подключен к Коммутатору уровня 3 (выделенному), и я хотел бы использовать другие 4 порта для функционирования точно так же, как домашний маршрутизатор. В теории это кажется, что она работала бы, но мое беспокойство сохраняет функциональность DHCP через обе подсети. Заранее спасибо за любую помощь можно обеспечить.

0
задан 22 June 2018 в 22:40

1 ответ

После того, как много проблемы тяжелого труда и шесть упаковывают, я выяснил ответ на свой запрос.

Сначала повторить: у Меня есть домашние созданные 18,04 маршрутизаторов UBUNTU с 3 NICS - я отправляю это, потому что 18,04 использования netplan и я не нашел подходящий ответ на форумах для netplan.

NIC 1: созданный в gigagbit Ethernet - WAN

NIC 2: 2 порта 10G NIC - Связанный и подключенный к коммутатору уровня 3 (расположенный в 192.168.0.254) - подсеть 192.168.0.x

NIC 3: 4 NIC гигабита порта использовали для локального доступа в Интернет (отделитесь от переключателя) - подсеть 192.168.1.x

Как Вы видите, я хотел создать 2 подсети - 192.168.0.x для переключателя и 192.168.1.x для 4 портов NIC (для использования, даже когда переключатель был разъединен).

Поскольку эта машина является маршрутизатором, она должна и направить, присвоить IP-адреса (DHCP) и обеспечить DNS. Ниже, Вы найдете мою конфигурацию для netplan и DHCP. DHCP происходит на обеих подсетях, и NIC 3 имеет доступ в Интернет, даже если переключатель разъединяется от NIC 2 (т.е. он обходит переключатель и использует маршрутизатор в качестве шлюза),

Поскольку Вы смотрите на конфигурацию, Вы заметите 2 моста:

  • br0 является 2 портами 10G NIC, подключенный к переключателю
  • br1 является 4 гигабитами порта NIC, используемый для доступа в Интернет даже без переключателя, по существу функционирующего как домашний маршрутизатор с 4 портами),

Это/etc/netplan/01-netcfg.yaml файл:

 # This file describes the network interfaces available on your system
 # For more information, see netplan(5).
 network:
   version: 2
   renderer: networkd
   ethernets:
     enp0s8:  #WAN interface
       dhcp4: no
       dhcp6: no
        addresses: [xxx.xxx.xxx.xxx/24] #Static IP assigned by ISP
        gateway4: xxx.xxx.xxx.xxx       #Gateway Assigned by ISP
       nameservers:
        addresses: [xxx.xxx.xxx.xxx, 8.8.8.8] #DNS assigned by ISP
  optional: true
enp0s9:  #Internal gigabit NIC Interface not used
  dhcp4: no
  dhcp6: no
enp2s0f0:  #10G NIC Not used
  dhcp4: no
  dhcp6: no
enp2s0f1:  #10G NIC not used
  dhcp4: no
  dhcp6: no
enp5s0f0:  #port 1 NIC2 (10G NIC Bonded connected to switch)
  dhcp4: no
  dhcp6: no
enp5s0f1:  #port 2 NIC2 (10G NIC Bonded connected to switch)
  dhcp4: no
  dhcp6: no
enp8s0f0:  #port1 NIC3 (gigabit NIC acting as home router)
  dhcp4: no
  dhcp6: no
enp8s0f1:  #port2 NIC3 (gigabit NIC acting as home router)
  dhcp4: no
  dhcp6: no
enp9s0f0:  #port3 NIC3 (gigabit NIC acting as home router)
  dhcp4: no
  dhcp6: no
enp9s0f1:  #port3 NIC3 (gigabit NIC acting as home router)
  dhcp4: no
  dhcp6: no
bonds:
  bond0: #first 10G NIC, not used
   interfaces: [enp2s0f0, enp2s0f1]
   parameters:
     mode: 802.3ad
     lacp-rate: fast
     mii-monitor-interval: 100
  bond1: #second 10G NIC, bonded and connected to switch
   interfaces: [enp5s0f0, enp5s0f1]
   parameters:
     mode: 802.3ad
     lacp-rate: fast
     mii-monitor-interval: 100
bridges:
  br0: #this is the 10G nic connected to switch on 192.168.0.x subnet
   dhcp4: no
   dhcp6: no
   addresses: [192.168.0.1/24] #router IP address
   interfaces: [bond1]
   gateway4: 192.168.0.254
   routes:
   - to: 192.168.1.1 #router IP address (gateway/DNS) for the 4 port NIC subnet
   via: 192.168.0.1 #This allows the br1 to access the internet via the main router IP (located at 192.168.0.1), bypassing the switch
   parameters:
     stp: false
     forward-delay: 0
  br1: #home router 4 port gigabit bridge
   dhcp4: no
   dhcp6: no
   addresses: [192.168.1.1/24]
   gateway: 192.168.1.1
   interfaces: [enp8s0f0, enp8s0f1, enp9s0f0, enp9s0f1]
   parameters:
     stp: false
     forward-delay: 0

Примечание: мост был сформирован для связи 0, потому что мне была нужна подсеть 192.168.0.x на этом NIC.

Мост br0 позволяет мост br1, который находится на подсети 192.168.1.x для соединения с Интернетом через маршрутизатор (192.168.0.1)

Затем мы должны настроить DHCP на ОБЕИХ подсетях. Вот, iptables:

 # Allow LAN to access internet enp0s8 is WAN interface - mask the LAN IP with that of the WAN interface
 iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

 #Allow all subnet access to the internet, The IP address is the WAN IP Address
 iptables -t nat -A POSTROUTING -o enp0s8 -j SNAT --to-source 69.59.44.75
 # Service rules

 # basic global accept rules - ICMP, loopback, traceroute, established all accepted
 iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
 iptables -A INPUT -p icmp -j ACCEPT
 iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

 # enable traceroute rejections to get sent out
 iptables -A INPUT -p udp -m udp --dport 33434:33523 -j REJECT --reject-with icmp-port-unreachable

 # DNS - accept from LAN
 iptables -A INPUT -i br0 -p tcp --dport 53 -j ACCEPT
 iptables -A INPUT -i br0 -p udp --dport 53 -j ACCEPT
 iptables -A INPUT -i br1 -p tcp --dport 53 -j ACCEPT
 iptables -A INPUT -i br1 -p udp --dport 53 -j ACCEPT

 # SSH - accept from LAN
 iptables -A INPUT -i br0 -p tcp --dport 8880 -j ACCEPT
 iptables -A INPUT -i br1 -p tcp --dport 8880 -j ACCEPT

 # DHCP client requests - accept from LAN
 iptables -A INPUT -i br0 -p udp --dport 67:68 -j ACCEPT
 iptables -A INPUT -i br1 -p udp --dport 67:68 -j ACCEPT

 # drop all other inbound traffic
 iptables -A INPUT -j DROP

 # Forwarding rules
 # forward packets along established/related connections
 iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

 # forward from LAN (br0, br1) to WAN (enp0s8)
 iptables -A FORWARD -i br0 -o enp0s8 -j ACCEPT
 iptables -A FORWARD -i br1 -o enp0s8 -j ACCEPT

 # allow traffic from our NAT pinhole (PORT FORWARDING)
 iptables -A FORWARD -p tcp -d 192.168.0.100 --dport 8888 -j ACCEPT
 iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 8888 -j ACCEPT

 # drop all other forwarded traffic
 iptables -A FORWARD -j DROP

Самая важная вещь отметить вот состоит в том, что независимо от того, что я перечислил для br0, я копировал для br1

Наконец мы должны установить DHCP и удостовериться, что он работает над обеими подсетями. Это/etc/default/isc-dhcp-server файл:

 # On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
 # Separate multiple interfaces with spaces, e.g. "eth0 eth1".
 INTERFACESv4="br0 br1"
 INTERFACESv6="br0 br1"

Наконец мы должны изменить/etc/dhcp/dhcpd.conf файл:

 .......
 subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.10 192.168.0.240;
    option routers 192.168.0.1;
    option domain-name "yourdomain.com";
    option domain-name-servers 192.168.0.1;
    option broadcast-address 192.168.0.255;
 }

 subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.240;
    option routers 192.168.1.1;
    option domain-name "yourdomain2.org";
    option domain-name-servers 192.168.1.1;
    option broadcast-address 192.168.1.255;
 }
 # Add a section to reserve static IPs --------  This must be done for the network switch to enable static routing if needed

 host DELL_PowerConnect_6248P {
         hardware ethernet XX:XX:XX:XX:XX:XX;
         fixed-address 192.168.0.254; #this is the layer 3 switch connected to NIC2 which serves as the gateway for the 192.168.0.x subnet
         option host-name "DELL_Powerconnect_6248P";  
 }

Это работало на меня. Теперь я могу использовать маршрутизатор как домашний маршрутизатор даже с разъединенным переключателем.Пожалуйста, примите во внимание: Это ни в коем случае не список какой потребности быть сделанным для создания собственного маршрутизатора человечности. Существует много других включенных шагов. Это может легко быть погуглено в Интернете. Хотелось бы надеяться, это маленькое учебное руководство помогает кому-то в будущем. Netplan является болью, а скорее простой. Если идиот как я может сделать это, любой может. Счастливый луг Ubuntu.

Обновление статуса. Приблизительно после одного часа интерфейс глобальной сети понизился на маршрутизаторе. После некоторого чтения кажется, что мой выше конфигурации был не совсем корректен. Посмотрите исправление ниже. Я включал комментарии (и для меня и для других) в коде.

 ................
   bridges:
    br0:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.0.1/24]
 #   gateway4: 192.168.0.254 # because we are using static routes, this option is not needed
     interfaces: [bond1]
     routes:
     - to: 0.0.0.0/0
     via: 192.168.0.254
     metric: 100
 #   Here, we have routed ALL subnets and all netmasks. Metric must be supplied if the gateway is not specified.
     - to: 192.168.1.1/24
     via: 192.168.0.1
     metric: 100
 #   Note: Even though we are specifying ALL subnets above, we can still have routing for a particular subnet so that all routes go to 192.168.0.254, but only 192.168.1.x subnet routes through 192.168.0.1
     parameters:
       stp: false
       forward-delay: 0   
    br1:
     dhcp4: no
     dhcp6: no
     addresses: [192.168.1.1/24]
     gateway: 192.168.1.1
 #   Here a gateway is specified, because there are no static routes
     interfaces: [enp8s0f0, enp8s0f1, enp9s0f0, enp9s0f1]
     parameters:
       stp: false
       forward-delay: 0

Как Вы видите, я настроил конфигурацию для подтверждения точки зрения. Даже со ВСЕМИ подсетями, направляемыми к 192.168.0.254 по умолчанию, 192.168.1.x, исключение и конкретно направляется к 192.168.0.1. Таким образом, я могу все еще получить доступ к Интернету на 4 портах nic, даже если переключатель разъединяется.

Теперь работы маршрутизатора и не понижались в течение нескольких часов. На конфигурировании связывают, OpenVPN и вся другая польза материал.

Я смог узнать, что все это путем рассмотрения netplan примеров указало в https://netplan.io/examples

Хотелось бы надеяться, это докажет использования с конфигурированием netplan.

0
ответ дан 22 June 2018 в 22:40

Другие вопросы по тегам:

Похожие вопросы: