LXC পাত্রে এথ0 হোস্ট করার জন্য ব্রিজিং করা হচ্ছে যাতে তাদের একটি সার্বজনীন আইপি থাকতে পারে


8

হালনাগাদ:

আমি সেখানে সমাধানটি পেয়েছি: http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge# No_traffic_gets_trough_.28except_ARP_andGPP.29

 # cd /proc/sys/net/bridge
 # ls
 bridge-nf-call-arptables  bridge-nf-call-iptables
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged
 # for f in bridge-nf-*; do echo 0 > $f; done

তবে আমি এই সম্পর্কে বিশেষজ্ঞের মতামত রাখতে চাই: সমস্ত ব্রিজ-এনএফ- * অক্ষম করা কি নিরাপদ? তারা এখানে কিসের জন্য?

আপডেট শেষ

বিষয়টিতে অসংখ্য টিউটোরিয়াল, ডকুমেন্ট এবং ব্লগ পোস্ট পড়ে আমার হোস্টের শারীরিক ইন্টারফেসে (এথ0) এলএক্সসি পাত্রে ব্রিজ করা দরকার।

আমার পাত্রে তাদের নিজস্ব সার্বজনীন আইপি রাখতে হবে (যা আমি আগে কেভিএম / লিবিভার্ট করেছি)।

দু'দিন অনুসন্ধান এবং চেষ্টা করার পরেও আমি এখনও এটিকে এলএক্সসি পাত্রে দিয়ে কাজ করতে পারি না।

হোস্টটি কেবলমাত্র লিবারভিট (যা আমি এখানে ব্যবহার করছি না) এবং lxc ইনস্টল করে একটি নতুনভাবে ইনস্টল করা উবুন্টু সার্ভার কোয়ান্টাল (12.10) চালায়।

আমি এটি দিয়ে পাত্রে তৈরি করেছি:

lxc-create -t ubuntu -n mycontainer

সুতরাং তারা উবুন্টুও 12.10 চালায়।

/ Var / lib / lxc / mycontainer / config এর সামগ্রী:


lxc.utsname = mycontainer
lxc.mount = /var/lib/lxc/test/fstab
lxc.rootfs = /var/lib/lxc/test/rootfs


lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.veth.pair = vethmycontainer
lxc.network.ipv4 = 179.43.46.233
lxc.network.hwaddr= 02:00:00:86:5b:11

lxc.devttydir = lxc
lxc.tty = 4
lxc.pts = 1024
lxc.arch = amd64
lxc.cap.drop = sys_module mac_admin mac_override
lxc.pivotdir = lxc_putold

# uncomment the next line to run the container unconfined:
#lxc.aa_profile = unconfined

lxc.cgroup.devices.deny = a
# Allow any mknod (but not using the node)
lxc.cgroup.devices.allow = c *:* m
lxc.cgroup.devices.allow = b *:* m
# /dev/null and zero
lxc.cgroup.devices.allow = c 1:3 rwm
lxc.cgroup.devices.allow = c 1:5 rwm
# consoles
lxc.cgroup.devices.allow = c 5:1 rwm
lxc.cgroup.devices.allow = c 5:0 rwm
#lxc.cgroup.devices.allow = c 4:0 rwm
#lxc.cgroup.devices.allow = c 4:1 rwm
# /dev/{,u}random
lxc.cgroup.devices.allow = c 1:9 rwm
lxc.cgroup.devices.allow = c 1:8 rwm
lxc.cgroup.devices.allow = c 136:* rwm
lxc.cgroup.devices.allow = c 5:2 rwm
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm
#fuse
lxc.cgroup.devices.allow = c 10:229 rwm
#tun
lxc.cgroup.devices.allow = c 10:200 rwm
#full
lxc.cgroup.devices.allow = c 1:7 rwm
#hpet
lxc.cgroup.devices.allow = c 10:228 rwm
#kvm
lxc.cgroup.devices.allow = c 10:232 rwm

তারপরে আমি আমার হোস্ট / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেসগুলিকে এতে পরিবর্তন করেছি:


auto lo
iface lo inet loopback

auto br0
iface br0 inet static
        bridge_ports eth0
        bridge_fd 0
        address 92.281.86.226
        netmask 255.255.255.0
        network 92.281.86.0
        broadcast 92.281.86.255
        gateway 92.281.86.254
        dns-nameservers 213.186.33.99
        dns-search ovh.net

আমি যখন কমান্ড লাইন কনফিগারেশন ("brctl addif", "ifconfig eth0", ইত্যাদি) চেষ্টা করি তখন আমার দূরবর্তী হোস্টটি অ্যাক্সেসযোগ্য হয়ে যায় এবং আমাকে এটি পুনরায় বুট করতে হবে।

আমি / var / lib / lxc / mycontainer / rootfs / etc / নেটওয়ার্ক / ইন্টারফেসের সামগ্রী এতে পরিবর্তন করেছি:


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 179.43.46.233
        netmask 255.255.255.255
        broadcast 178.33.40.233
        gateway 92.281.86.254

মাইকন্টেইনারটি শুরু হতে বেশ কয়েক মিনিট সময় লাগে (lxc-start -n mycontainer)।

আমি প্রতিস্থাপন করার চেষ্টা করেছি

        gateway 92.281.86.254
দ্বারা :

        post-up route add 92.281.86.254 dev eth0
        post-up route add default gw 92.281.86.254
        post-down route del 92.281.86.254 dev eth0
        post-down route del default gw 92.281.86.254

আমার ধারকটি তাত্ক্ষণিকভাবে শুরু হয়।

তবে আমি / var / lib / lxc / mycontainer / rootfs / etc / নেটওয়ার্ক / ইন্টারফেসে যা কিছু কনফিগারেশন সেট করি না কেন, আমি মাইকন্টেইনার থেকে কোনও আইপিতে (হোস্টের সাথে) পিং করতে পারি না:


ubuntu@mycontainer:~$ ping 92.281.86.226 
PING 92.281.86.226 (92.281.86.226) 56(84) bytes of data.
^C
--- 92.281.86.226 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5031ms

এবং আমার হোস্ট কনটেইনারটি পিং করতে পারে না:


root@host:~# ping 179.43.46.233
PING 179.43.46.233 (179.43.46.233) 56(84) bytes of data.
^C
--- 179.43.46.233 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4000ms

আমার ধারকটির ইফকনফিগ:


ubuntu@mycontainer:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 02:00:00:86:5b:11  
          inet addr:179.43.46.233  Bcast:255.255.255.255  Mask:0.0.0.0
          inet6 addr: fe80::ff:fe79:5a31/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:64 errors:0 dropped:6 overruns:0 frame:0
          TX packets:54 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4070 (4.0 KB)  TX bytes:4168 (4.1 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2496 (2.4 KB)  TX bytes:2496 (2.4 KB)

আমার হোস্টের ইফকনফিগ:


root@host:~# ifconfig
br0       Link encap:Ethernet  HWaddr 4c:72:b9:43:65:2b  
          inet addr:92.281.86.226  Bcast:91.121.67.255  Mask:255.255.255.0
          inet6 addr: fe80::4e72:b9ff:fe43:652b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1453 errors:0 dropped:18 overruns:0 frame:0
          TX packets:1630 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:145125 (145.1 KB)  TX bytes:299943 (299.9 KB)

eth0      Link encap:Ethernet  HWaddr 4c:72:b9:43:65:2b  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3178 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1637 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:298263 (298.2 KB)  TX bytes:309167 (309.1 KB)
          Interrupt:20 Memory:fe500000-fe520000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:300 (300.0 B)  TX bytes:300 (300.0 B)

vethtest  Link encap:Ethernet  HWaddr fe:0d:7f:3e:70:88  
          inet6 addr: fe80::fc0d:7fff:fe3e:7088/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4168 (4.1 KB)  TX bytes:4250 (4.2 KB)

virbr0    Link encap:Ethernet  HWaddr de:49:c5:66:cf:84  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

আমি lxcbr0 অক্ষম করেছি (USE_LXC_BRIDGE = / মিথ্যা "ইন / ইত্যাদি / ডিফল্ট / lxc)।


root@host:~# brctl show
bridge name     bridge id               STP enabled     interfaces                                                                                                 
br0             8000.4c72b943652b       no              eth0                                                                                                       
                                                        vethtest        

আমি আমার হোস্টিং সরবরাহকারী (ওভিএইচ) কনফিগার প্যানেলে আইপি 179.43.46.233 কে কনফিগার করেছি।
(এই পোস্টের আইপিগুলি আসল নয়))

এই দীর্ঘ প্রশ্নটি পড়ার জন্য ধন্যবাদ! :-)

Vianney

উত্তর:


6

আপনার পরিবর্তন স্থায়ী করার আরও ভাল উপায় হ'ল রান / টাইমে কার্নেল প্যারামিটারগুলি কনফিগার করার জন্য স্ট্যান্ডার্ড উপায় যেহেতু পরের বুটে সঠিকভাবে সেট করা থাকে:

# cat >> /etc/sysctl.d/99-bridge-nf-dont-pass.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0
EOF
# service procps start

আপনার আপডেটে প্রশ্নের উত্তর হিসাবে ...

ব্রিজ-নেটফিল্টার (বা ব্রিজ-এনএফ) আইপিভি 4 / আইপিভি 6 / এআরপি প্যাকেটের (এমনকি 802.1Q ভিএলএএন বা পিপিপিওই শিরোনামে) একটি খুব সাধারণ সেতু যা একটি স্বতন্ত্র ফায়ারওয়ালের জন্য কার্যকারিতা সরবরাহ করে, তবে স্বচ্ছ আইপি NAT এর মতো আরও উন্নত কার্যকারিতা আরও প্রসেসিংয়ের জন্য সেই প্যাকেটগুলি আর্টেবল / আইপটেবলগুলিতে পাস করার মাধ্যমে সরবরাহ করা হয়েছে - তবে আর্টেবল / আইপটিবলের আরও উন্নত বৈশিষ্ট্যগুলির প্রয়োজন না থাকলেও, সেই প্রোগ্রামগুলিতে প্যাকেটগুলি পাস্নেলগুলি এখনও কার্নেল মডিউলে ডিফল্টভাবে চালু করা হয় এবং অবশ্যই স্পষ্টভাবে বন্ধ করতে হবে sysctl ব্যবহার করে।

তারা এখানে কিসের জন্য? এই কার্নেল কনফিগারেশন বিকল্পগুলি ব্রিজ- এনএফ এফএকিউতে বর্ণিত হিসাবে (1) বা আর্টেবল / আইপটেবলগুলিতে (0) প্যাকেটগুলি পাস করার জন্য নয় :

As of kernel version 2.6.1, there are three sysctl entries for bridge-nf behavioral control (they can be found under /proc/sys/net/bridge/):
bridge-nf-call-arptables - pass (1) or don't pass (0) bridged ARP traffic to arptables' FORWARD chain.
bridge-nf-call-iptables - pass (1) or don't pass (0) bridged IPv4 traffic to iptables' chains.
bridge-nf-call-ip6tables - pass (1) or don't pass (0) bridged IPv6 traffic to ip6tables' chains.
bridge-nf-filter-vlan-tagged - pass (1) or don't pass (0) bridged vlan-tagged ARP/IP traffic to arptables/iptables.

সমস্ত ব্রিজ-এনএফ- * অক্ষম করা কি নিরাপদ? হ্যাঁ, এটি করা কেবল নিরাপদই নয়, তবে আপনার যে ধরণের সমস্যার মুখোমুখি হয়েছে তাতে মানুষকে বিভ্রান্তি এড়াতে সহায়তা করার জন্য ডিফল্টরূপে বিতরণগুলি বন্ধ করার জন্য একটি প্রস্তাবনা রয়েছে :

অনুশীলনে, এটি গুরুতর বিভ্রান্তির দিকে নিয়ে যেতে পারে যেখানে কেউ একটি সেতু তৈরি করে এবং দেখেন যে পুরো ব্রিজের ওপারে কিছু ট্র্যাফিক ফরওয়ার্ড করা হচ্ছে না। কারণ এটি এতটাই অপ্রত্যাশিত যে আইপি ফায়ারওয়াল বিধিগুলি একটি ব্রিজের ফ্রেমগুলিতে প্রযোজ্য, কী চলছে তা নির্ধারণ করতে বেশ কিছুটা সময় নিতে পারে।

এবং সুরক্ষা বাড়ানোর জন্য :

আমি এখনও মনে করি ব্রিজিংয়ের সাথে ঝুঁকি বেশি, বিশেষত ভার্চুয়ালাইজেশনের উপস্থিতিতে। এক হোস্টে আপনার দু'জন ভিএম রয়েছে এমন দৃশ্যের বিষয়টি বিবেচনা করুন, প্রত্যেকে একটি উত্সর্গীকৃত সেতু এই উদ্দেশ্য নিয়ে যে অন্যটির ট্রাফিক সম্পর্কে কোনও কিছু জানতে না পারে with

ব্রিজিংয়ের অংশ হিসাবে কনট্র্যাক চলার সাথে সাথে ট্র্যাফিক এখন পার হয়ে যেতে পারে যা একটি গুরুতর সুরক্ষা গর্ত।

আপডেট: মে 2015

যদি আপনি ৩.১৮ এর চেয়ে পুরানো কার্নেল চালাচ্ছেন, তবে আপনি পূর্বনির্ধারিতভাবে ব্রিজ ফিল্টারিংয়ের পুরানো আচরণের অধীন হতে পারেন; আপনি যদি 3.18 এর চেয়েও নতুন হন, তবে আপনি যদি সেতু মডিউলটি লোড করে থাকেন এবং সেতু ফিল্টারিং অক্ষম না করে থাকেন তবে আপনি এখনও এটি দ্বারা কামড়াতে পারেন। দেখা:

https://bugzilla.redhat.com/show_bug.cgi?id=634736#c44

ব্রিজ ফিল্টারিংয়ের ডিফল্টটিকে "অক্ষম" করার জন্য এবং কর্নেল রক্ষণাবেক্ষণকারীদের দ্বারা পরিবর্তন অস্বীকার করার এত বছর পরও ফিল্টারিংটি একটি পৃথক মডিউলে স্থানান্তরিত করা হয়েছে যা সেতু মডিউলটি লোড হয় না (ডিফল্টরূপে) লোড হয়, কার্যকরভাবে ডিফল্ট "অক্ষম" করে তোলে making হ্যাঁ!

আমি মনে করি এটি 3.17 হিসাবে কার্নেলের মধ্যে রয়েছে (এটি অবশ্যই কার্নেলের মধ্যে রয়েছে 3.18.7-200.fc21, এবং "v3.17-rc4" ট্যাগটির আগে গিটের মধ্যে রয়েছে)


0

আমি একটি ডেবিয়ান হুইজি হাইপারভাইজারের সাথে চলমান অনুরূপ সেট আপ পেয়েছি। আমাকে ধারকটির মূলগুলির মধ্যে / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেসগুলি সংশোধন করতে হবে না; এলএক্সসি নেটওয়ার্ক রয়েছে having এলএক্সসির কনফিগারেশনে কনফিগার করা যথেষ্ট।

আপনি কোনও ধারক চালাচ্ছেন কিনা তা নির্বিশেষে আপনার ব্রিজিংয়ের কাজ করতে সক্ষম হওয়া উচিত। আমি হোস্টে / etc / নেটওয়ার্ক / ইন্টারফেসে br0 এর অধীনে নিম্নলিখিত সেটিংসটি কনফিগার করেছি:

% grep bridge /etc/network/interfaces
  bridge_ports eth0
  bridge_fd 0
  bridge_stp off
  bridge_waitport 0
  bridge_maxwait 0

এটি কনফিগার করার পরে এবং আমার আইপি ঠিকানা কনফিগারেশনটি এথ0 থেকে বিআর-তে স্থানান্তরিত করার পরে, sudo service networking restartআমার এসএসএইচ সেশনটি বাদ না দিয়ে আমার হোস্ট মেশিনে স্বচ্ছভাবে ইন্টারফেসগুলি পুনরায় কনফিগার করা হয়েছে।

এটি হয়ে গেলে, / etc / নেটওয়ার্ক / ইন্টারফেসগুলিতে 'eth0' কনফিগারেশনটি সরানোর চেষ্টা করুন এবং আপনার ধারকটি আবার চালু করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.