Если существуют поля, которые содержат символы-разделители в кавычках (не работает с Ruby 1.8):
$ ruby -rcsv -e 'puts CSV.parse($<).uniq{|l|l[1]}.map(&:to_csv)' <<< $'"1,9",3\n4,8\n7,3'
"1,9",3
4,8
Вам не нужно устанавливать ip_forward = 1
, если интерфейс не действует как NAT для других устройств, что не должно Это не тот случай, если вы настроили их как мост.
Вот моя установка KVM-сервера, которая имеет мостовое устройство, br0
, с физическим устройством Ethernet, eth0
+ все интерфейсы для гостевых KVM.
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.bcaec123c1e2 no eth0
vnet0
vnet1
vnet2
vnet3
vnet4
vnet5
virbr0 8000.52540003f256 yes virbr0-nic
Судя по вашему описанию, похоже, что у вас нет правил маршрутизации для маршрутизации пакетов от одного интерфейса к другому.
Хост с мостом$ ip route show
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.200
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev br0 scope link metric 1008
default via 192.168.1.1 dev br0
Хост с сетевой картой, которая является членом моста
$ ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.218
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.1 dev eth0
Однако вы, вероятно, столкнетесь с проблемой при смешивании устройства tap0
и физического устройства Ethernet, eth0
, в мост.
Если вы используете TAP-устройство, tap0
, вам, вероятно, потребуется настроить брандмауэр, чтобы разрешить этим пакетам проходить туда и обратно через мост.
Теперь настройте брандмауэр Linux, чтобы разрешить пакетам беспрепятственно проходить через вновь созданные интерфейсы tap0 и br0:
$ sudo iptables -A INPUT -i tap0 -j ACCEPT
$ sudo iptables -A INPUT -i br0 -j ACCEPT
$ sudo iptables -A FORWARD -i br0 -j ACCEPT