ip l s dev eth1 up ip l s dev eth0.1999 up ip l add name br0 type bridge ip l s dev eth1 master br0 ip l s dev eth0.1999 master br0 ip l s dev br0 upThat's all, folks!
Показаны сообщения с ярлыком iproute2. Показать все сообщения
Показаны сообщения с ярлыком iproute2. Показать все сообщения
пятница, 1 августа 2014 г.
Bridge с помощью iproute2
Всех админов в пределах досягаемости бью по рукам за использование ifconfig/route на linux-серверах. К счастью в новых дистрибутивах эти анахронизмы даже не установлены по умолчанию и народ рано или поздно начнёт переучиваться.
Сегодня попробуем создать бридж с помощью всемогущей утилиты ip из пакета iproute2
пятница, 27 декабря 2013 г.
NAT через IPIP-туннель.
Понадобилось для определенного теста сымитировать выход в интернет из другого города. В том городе имеется небольшой сервер, доступный по внутренней сети (предположим, некие VPN от провайдера, сервер и тестовая машина находятся в локальных маршрутизируемых сетях).
У сервера есть белый ip-адрес и выход в интернет, у клиента такой роскоши нет.
Сервер
IP-адрес локалки: 192.168.1.1/24
IP-адрес белый: 1.2.3.4
Клиент
IP-адрес локалки: 192.168.2.2/24
Шлюз 192.168.2.1
Решение состоит из двух шагов: Поднятие туннеля между клиентом и сервером и настройка NAT на сервере.
На сервере:
На клиенте:
Forwarding должен быть включен, а rp_filter на всякий случай выключен.
У сервера есть белый ip-адрес и выход в интернет, у клиента такой роскоши нет.
Сервер
IP-адрес локалки: 192.168.1.1/24
IP-адрес белый: 1.2.3.4
Клиент
IP-адрес локалки: 192.168.2.2/24
Шлюз 192.168.2.1
Решение состоит из двух шагов: Поднятие туннеля между клиентом и сервером и настройка NAT на сервере.
На сервере:
ip tun add tun0 mode ipip local 192.168.1.1 remote 192.168.2.2 ttl 255 ip l s dev tun0 up iptables -I INPUT -p 4 -s 192.168.2.2 -j ACCEPT iptables -I FORWARD -s 192.168.2.2 -j ACCEPT iptables -I FORWARD -d 192.168.2.2 -j ACCEPT iptables -t nat -I POSTROUTING -s 192.168.2.2 -j MASQUERADE
На клиенте:
ip tun add tun0 mode ipip local 192.168.2.2 remote 192.168.1.1 ttl 255 ip l s dev tun0 up ip r a 192.168.1.1 via 192.168.2.1 ip r d default ip r a default dev tun0Надо помнить, что здесь не используется шифрование.
Forwarding должен быть включен, а rp_filter на всякий случай выключен.
четверг, 9 августа 2012 г.
Добавление второго ip-адреса без использования виртуальных интерфесов ( алиасов ) в Centos.
Как известно, со времен ядра 2.2 сетевая подсистема была полностью переписана. Т.е. уже долгое время пользователи систем с ядром Linux могут навешивать дополнительные ip-адреса на интерфейсы родными средствами без использования костылей в виде дополнительных виртуальных интерфейсов (некоторые называют их алиасами).
Ядро 2.2 вышло в 1999 году, поэтому странно видеть, что многие администраторы до сих пор используют архаичные ifconfig/route и создают виртуальные интерфейсы для добавления второго ip-адреса.
Под виртуальными интерфейсами я подразумеваю вот это: eth0:0, p1p5:1 и т.д.
Разницу в использовании net-tools (ifconfig/route) и iproute2 (утилита ip) хорошо описал Александр sash-kan с форума http://unixforum.org/index.php?showtopic=129712
Так как же добавить второй ip-адрес интерфейсу? Легко:
Смотрим текущее состояние интерфейса:Ядро 2.2 вышло в 1999 году, поэтому странно видеть, что многие администраторы до сих пор используют архаичные ifconfig/route и создают виртуальные интерфейсы для добавления второго ip-адреса.
Под виртуальными интерфейсами я подразумеваю вот это: eth0:0, p1p5:1 и т.д.
Разницу в использовании net-tools (ifconfig/route) и iproute2 (утилита ip) хорошо описал Александр sash-kan с форума http://unixforum.org/index.php?showtopic=129712
Так как же добавить второй ip-адрес интерфейсу? Легко:
# ip a s dev eth0 2: eth0:Добавим второй адресmtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d7:f9:6d brd ff:ff:ff:ff:ff:ff inet 192.168.4.97/24 brd 192.168.4.255 scope global eth0 inet6 fe80::a00:27ff:fed7:f96d/64 scope link valid_lft forever preferred_lft forever
# ip a a 192.168.5.98/24 dev eth0Смотрим, что получилось:
# ip a s dev eth0 2: eth0:Два полноценных равнозначных адреса без использования костылей. Поскольку ifconfig не может даже "вообразить", что у интерфейса могут быть два (три, двадцать три) адреса, то вывод этой команды будет неполным.mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d7:f9:6d brd ff:ff:ff:ff:ff:ff inet 192.168.4.97/24 brd 192.168.4.255 scope global eth0 inet 192.168.5.98/24 scope global eth0 inet6 fe80::a00:27ff:fed7:f96d/64 scope link valid_lft forever preferred_lft forever
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:D7:F9:6D
inet addr:192.168.4.97 Bcast:192.168.4.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed7:f96d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:327348 errors:0 dropped:0 overruns:0 frame:0
TX packets:488 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24684863 (23.5 MiB) TX bytes:83192 (81.2 KiB)
Поэтому на linux-машинах про команды ifconfig / route следует незамедлительно забыть.Теперь нас интересует, как в Centos задавать второй ip-адрес автоматически, при перезагрузке. В интернете полно инструкций по Centos/RedHat/Fedora, но все они используют дополнительные виртуальные интерфейсы eth0:1. Это неправильно. Как сделать правильно, написано в документации к дистрибутиву, а именно в файле /usr/share/doc/initscripts-9.03.31/sysconfig.txt.
/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE="eth0" BOOTPROTO="static" HWADDR="08:00:27:D7:F9:6D" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" UUID="27b04fd3-4291-426f-b3d7-a60c1f5f3e60" GATEWAY="192.168.4.1" IPADDR0="192.168.4.97" NETMASK0="255.255.255.0" IPADDR1="192.168.5.98" NETMASK1="255.255.255.0"
Подписаться на:
Сообщения (Atom)